]> git.sesse.net Git - vlc/commitdiff
Remove module_hold and module_release
authorRémi Denis-Courmont <remi@remlab.net>
Mon, 15 Aug 2011 16:35:51 +0000 (19:35 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Mon, 15 Aug 2011 17:42:37 +0000 (20:42 +0300)
Modules are created at initialization and destroyed at exit (after all
VLC threads are terminated) There is no need to count references.

13 files changed:
include/vlc_modules.h
modules/gui/macosx/intf.m
modules/gui/macosx/simple_prefs.m
modules/gui/qt4/components/complete_preferences.cpp
modules/gui/qt4/components/extended_panels.cpp
modules/gui/qt4/components/open_panels.cpp
modules/gui/qt4/components/preferences_widgets.cpp
src/libvlccore.sym
src/misc/xml.c
src/modules/entry.c
src/modules/modules.c
src/modules/modules.h
src/video_output/vout_intf.c

index 6249d15f914cf20bba8d4335d2cbc5d127635e1a..06aefc01edd09dcfbf53afb468b3dfaae4aea960 100644 (file)
@@ -53,8 +53,6 @@ void module_stop(vlc_object_t *, const module_t *);
 VLC_API module_config_t * module_config_get( const module_t *, unsigned * ) VLC_USED;
 VLC_API void module_config_free( module_config_t * );
 
-VLC_API module_t * module_hold(module_t *module);
-VLC_API void module_release(module_t *module);
 VLC_API void module_list_free(module_t **);
 VLC_API module_t ** module_list_get(size_t *n) VLC_USED;
 
index 9e66893d7f52a8c4277815ca1103d81fa63f43b0..54ae70f347b146c4ff9a783c11fa1801c1a099ed 100644 (file)
@@ -1222,7 +1222,6 @@ unsigned int CocoaKeyToVLC( unichar i_key )
         }
     }
     module_config_free (p_config);
-    module_release (p_main);
     o_usedHotkeys = [[NSArray alloc] initWithArray: o_usedHotkeys copyItems: YES];
 }
 
index 25464ff65f1721f3cb5af3ace89dae926e952923..cd5b4dbb20752b75852a5b3f76d00985c4397eaa 100644 (file)
@@ -632,8 +632,7 @@ static inline char * __config_GetLabel( vlc_object_t *p_this, const char *psz_na
         }
     }
     module_config_free (p_config);
-    module_release (p_main);
-                  
+
     [o_hotkeyDescriptions release];
     o_hotkeyDescriptions = [[NSArray alloc] initWithArray: o_tempArray_desc copyItems: YES];
     [o_tempArray_desc release];
index 798b4bb7207afef8573fb32a5bd38852566fcd18..5db1bba099768eef71ba3af056427ef1976020f2 100644 (file)
@@ -187,7 +187,6 @@ PrefsTree::PrefsTree( intf_thread_t *_p_intf, QWidget *_parent ) :
         }
     }
     module_config_free( p_config );
-    module_release( p_module );
 
 
     module_t **p_list = module_list_get( NULL );
@@ -464,10 +463,7 @@ bool PrefsItemData::contains( const QString &text, Qt::CaseSensitivity cs )
     }
 
     if (name.contains( text, cs ) || head.contains( text, cs ) || help.contains( text, cs ))
-    {
-        module_release( p_module );
         return true;
-    }
 
     if( p_item ) do
     {
@@ -483,10 +479,7 @@ bool PrefsItemData::contains( const QString &text, Qt::CaseSensitivity cs )
         if( p_item->b_internal ) continue;
 
         if ( p_item->psz_text && qtr( p_item->psz_text ).contains( text, cs ) )
-        {
-            module_release( p_module );
             return true;
-        }
     }
     while (
             !(
@@ -497,8 +490,6 @@ bool PrefsItemData::contains( const QString &text, Qt::CaseSensitivity cs )
              && ( ++p_item < p_end )
           );
 
-
-    module_release( p_module );
     return false;
 }
 
@@ -648,8 +639,6 @@ AdvPrefsPanel::AdvPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
         layout->addWidget( box, i_line, 0, 1, -1 );
     }
 
-    module_release (p_module);
-
     scrolled_area->setSizePolicy( QSizePolicy::Preferred,QSizePolicy::Fixed );
     scrolled_area->setLayout( layout );
     scroller->setWidget( scrolled_area );
index fdb9a37da848ec1691da2a3daa0881fbcf966e26..6ece0b684de6806187d22e4935d96488125f63f0 100644 (file)
@@ -317,11 +317,9 @@ static void ChangeVFiltersString( struct intf_thread_t *p_intf, const char *psz_
     }
     else
     {
-        module_release (p_obj);
         msg_Err( p_intf, "Unknown video filter type." );
         return;
     }
-    module_release (p_obj);
 
     psz_string = config_GetPsz( p_intf, psz_filter_type );
 
index 6e10465549ab9496528e9d0527bcd380c8a0a98f..d8ec051a64996bd4ae8125908d37cde16dd2463d 100644 (file)
@@ -1339,6 +1339,5 @@ void CaptureOpenPanel::advancedDialog()
     qDeleteAll( controls );
     delete adv;
     module_config_free( p_config );
-    module_release (p_module);
 }
 
index 4ef44ea8f9cd5a95d7157d92e07d986784c01d68..4f1a5deb91907c2c32d06be8c88a0e4b80b4743f 100644 (file)
@@ -1294,7 +1294,6 @@ void KeySelectorControl::finish()
         }
     }
     module_config_free (p_config);
-    module_release (p_main);
 
     table->resizeColumnToContents( 0 );
 
index f6216c945ffd66d81438a1610de87421a9ada5d7..fe7d66708d0618654ac2ca3cfd6f56d25356f426 100644 (file)
@@ -268,12 +268,10 @@ module_get_name
 module_get_object
 module_get_score
 module_gettext
-module_hold
 module_list_free
 module_list_get
 module_need
 module_provides
-module_release
 module_unneed
 vlc_module_load
 vlc_module_unload
index 2dbfa9f9a2f356153b33a609e696b56dd0bcfa1a..1b9dd8d164d958a6a1c33a4a4e7ca2ad3c17bfb9 100644 (file)
@@ -96,7 +96,6 @@ void xml_ReaderDelete(xml_reader_t *reader)
 {
     if (reader->p_stream)
         module_stop(reader, reader->p_module);
-    module_release(reader->p_module);
     vlc_object_release(reader);
 }
 
@@ -121,7 +120,6 @@ xml_reader_t *xml_ReaderReset(xml_reader_t *reader, stream_t *stream)
     reader->p_stream = stream;
     if ((stream != NULL) && module_start(reader, reader->p_module))
     {
-        module_release(reader->p_module);
         vlc_object_release(reader);
         return NULL;
     }
index 861a07944b39a7443ce1cdd19cca33001e9ee945..3f46a253996a99c1b35655430be942c2a552091e 100644 (file)
 #include "config/configuration.h"
 #include "libvlc.h"
 
-static void vlc_module_destruct (gc_object_t *obj)
-{
-    module_t *module = vlc_priv (obj, module_t);
-
-    free (module->pp_shortcuts);
-    free (module);
-}
-
 module_t *vlc_module_create (void)
 {
     module_t *module = malloc (sizeof (*module));
@@ -52,7 +44,6 @@ module_t *vlc_module_create (void)
     module->submodule = NULL;
     module->parent = NULL;
     module->submodule_count = 0;
-    vlc_gc_init (module, vlc_module_destruct);
 
     module->psz_shortname = NULL;
     module->psz_longname = NULL;
@@ -76,11 +67,8 @@ module_t *vlc_module_create (void)
     return module;
 }
 
-
-static void vlc_submodule_destruct (gc_object_t *obj)
+void vlc_module_destroy (module_t *module)
 {
-    module_t *module = vlc_priv (obj, module_t);
-
     free (module->pp_shortcuts);
     free (module);
 }
@@ -94,8 +82,6 @@ module_t *vlc_submodule_create (module_t *module)
         return NULL;
 
     /* TODO: replace module/submodules with plugin/modules */
-    vlc_gc_init (submodule, vlc_submodule_destruct);
-
     submodule->next = module->submodule;
     module->submodule = submodule;
     module->submodule_count++;
index 7ea3965aa3e268cdf80a8c83663cdea5fd6ac772..22bdda4fabe9942ccba0d27c7fa6d2a14d6d2cec 100644 (file)
@@ -280,17 +280,6 @@ const char *module_gettext (const module_t *m, const char *str)
 #endif
 }
 
-module_t *module_hold (module_t *m)
-{
-    vlc_hold (&m->vlc_gc_data);
-    return m;
-}
-
-void module_release (module_t *m)
-{
-    vlc_release (&m->vlc_gc_data);
-}
-
 #undef module_start
 int module_start (vlc_object_t *obj, const module_t *m)
 {
@@ -316,11 +305,6 @@ void module_stop (vlc_object_t *obj, const module_t *m)
  */
 void module_list_free (module_t **list)
 {
-    if (list == NULL)
-        return;
-
-    for (size_t i = 0; list[i] != NULL; i++)
-         module_release (list[i]);
     free (list);
 }
 
@@ -348,9 +332,9 @@ module_t **module_list_get (size_t *n)
          }
 
          tab = nt;
-         tab[i++] = module_hold (mod);
+         tab[i++] = mod;
          for (module_t *subm = mod->submodule; subm; subm = subm->next)
-             tab[i++] = module_hold (subm);
+             tab[i++] = subm;
          tab[i] = NULL;
     }
     if (n != NULL)
@@ -508,7 +492,7 @@ module_t *vlc_module_load(vlc_object_t *p_this, const char *psz_capability,
 
 found_shortcut:
         /* Store this new module */
-        p_list[count].p_module = module_hold (p_module);
+        p_list[count].p_module = p_module;
         p_list[count].i_score = p_module->i_score + i_shortcut_bonus;
         p_list[count].b_force = i_shortcut_bonus && b_strict;
         count++;
@@ -542,7 +526,6 @@ found_shortcut:
             if( p_new_module == NULL )
             {   /* Corrupted module */
                 msg_Err( p_this, "possibly corrupt module cache" );
-                module_release( p_cand );
                 continue;
             }
             CacheMerge( p_this, p_real, p_new_module );
@@ -573,17 +556,11 @@ found_shortcut:
 
         case VLC_ETIMEOUT:
             /* good module, but aborted */
-            module_release( p_cand );
             break;
 
         default: /* bad module */
-            module_release( p_cand );
             continue;
         }
-
-        /* Release the remaining modules */
-        while (++i < count)
-            module_release (p_list[i].p_module);
     }
 
     va_end (args);
@@ -631,7 +608,6 @@ void vlc_module_unload(module_t *module, vlc_deactivate_t deinit, ...)
         deinit(module->pf_deactivate, ap);
         va_end(ap);
     }
-    module_release(module);
 }
 
 
@@ -685,10 +661,7 @@ module_t *module_find (const char *name)
         if (unlikely(module->i_shortcuts == 0))
             continue;
         if (!strcmp (module->pp_shortcuts[0], name))
-        {
-            module_hold (module);
             break;
-        }
     }
     module_list_free (list);
     return module;
@@ -702,10 +675,7 @@ module_t *module_find (const char *name)
  */
 bool module_exists (const char * psz_name)
 {
-    module_t *p_module = module_find (psz_name);
-    if( p_module )
-        module_release (p_module);
-    return p_module != NULL;
+    return module_find (psz_name) != NULL;
 }
 
 /**
@@ -726,16 +696,9 @@ module_t *module_find_by_shortcut (const char *psz_shortcut)
         return NULL;
 
     for (size_t i = 0; (module = list[i]) != NULL; i++)
-    {
         for (size_t j = 0; j < module->i_shortcuts; j++)
-        {
             if (!strcmp (module->pp_shortcuts[j], psz_shortcut))
-            {
-                module_hold (module);
                 goto out;
-             }
-        }
-    }
 out:
     module_list_free (list);
     return module;
@@ -1059,7 +1022,7 @@ static module_t *AllocatePlugin( vlc_object_t * p_this, const char *psz_file,
     return p_module;
 error:
     free( p_module->psz_filename );
-    module_release( p_module );
+    vlc_module_destroy (p_module);
     module_Unload( handle );
     return NULL;
 }
@@ -1139,7 +1102,7 @@ static int AllocateBuiltinModule( vlc_object_t * p_this,
         /* With a well-written module we shouldn't have to print an
          * additional error message here, but just make sure. */
         msg_Err( p_this, "failed calling entry point in builtin module" );
-        module_release( p_module );
+        vlc_module_destroy (p_module);
         return -1;
     }
 
@@ -1187,9 +1150,9 @@ static void DeleteModule (module_t **head, module_t *p_module)
     {
         module_t *submodule = p_module->submodule;
         p_module->submodule = submodule->next;
-        module_release (submodule);
+        vlc_module_destroy (submodule);
     }
 
     config_Free( p_module );
-    module_release( p_module );
+    vlc_module_destroy (p_module);
 }
index 3e068570cce9615aafb91a74afb0ad3c2a9371d5..12b7dd3344f689562a62f2fb294a8ea68de40882 100644 (file)
@@ -62,8 +62,6 @@ typedef void * module_handle_t;
  */
 struct module_t
 {
-    gc_object_t vlc_gc_data;
-
     module_t   *next;
     module_t   *parent;
     module_t   *submodule;
@@ -110,6 +108,7 @@ struct module_t
 
 module_t *vlc_module_create (void);
 module_t *vlc_submodule_create (module_t *module);
+void vlc_module_destroy (module_t *);
 
 void  module_InitBank( vlc_object_t * );
 #define module_InitBank(a) module_InitBank(VLC_OBJECT(a))
index 43c11db6cbd1734cde0afad3eb40f11ded74881d..e0630d348bc62e4729911252f53b1e2ac53eb418 100644 (file)
@@ -484,11 +484,9 @@ void vout_EnableFilter( vout_thread_t *p_vout, const char *psz_name,
     }
     else
     {
-        module_release( p_obj );
         msg_Err( p_vout, "Unknown video filter type." );
         return;
     }
-    module_release( p_obj );
 
     psz_string = var_GetString( p_vout, psz_filter_type );