]> git.sesse.net Git - vlc/commitdiff
modules: Fix const char * usage and memory management.
authorPierre d'Herbemont <pdherbemont@videolan.org>
Wed, 16 Apr 2008 12:32:15 +0000 (14:32 +0200)
committerPierre d'Herbemont <pdherbemont@videolan.org>
Wed, 16 Apr 2008 12:32:33 +0000 (14:32 +0200)
src/modules/modules.c
src/modules/modules.h

index cb2930e6f761eccf0a1a042c5fab5d48170d1bfe..332eafffbb3cff52a19518a8f50dc229a5f1f64f 100644 (file)
@@ -1301,7 +1301,7 @@ static module_t * AllocatePlugin( vlc_object_t * p_this, char * psz_file )
  *****************************************************************************/
 static void DupModule( module_t *p_module )
 {
-    const char **pp_shortcut;
+    char **pp_shortcut;
     int i_submodule;
 
     for( pp_shortcut = p_module->pp_shortcuts ; *pp_shortcut ; pp_shortcut++ )
@@ -1311,7 +1311,8 @@ static void DupModule( module_t *p_module )
 
     /* We strdup() these entries so that they are still valid when the
      * module is unloaded. */
-    p_module->psz_object_name = strdup( p_module->psz_object_name );
+    /* This one is a (const char *) that will never get freed. */
+    p_module->psz_object_name = p_module->psz_object_name;
     p_module->psz_capability = strdup( p_module->psz_capability );
     p_module->psz_shortname = p_module->psz_shortname ?
                                  strdup( p_module->psz_shortname ) : NULL;
@@ -1332,7 +1333,7 @@ static void DupModule( module_t *p_module )
  *****************************************************************************/
 static void UndupModule( module_t *p_module )
 {
-    const char **pp_shortcut;
+    char **pp_shortcut;
     int i_submodule;
 
     for( i_submodule = 0; i_submodule < p_module->i_children; i_submodule++ )
@@ -1345,7 +1346,6 @@ static void UndupModule( module_t *p_module )
         free( *pp_shortcut );
     }
 
-    free( p_module->psz_object_name );
     free( p_module->psz_capability );
     free( p_module->psz_shortname );
     free( p_module->psz_longname );
index 156be832adf3d7c326e1a4e73aa241988ea11e63..db8e2a53c2d587c0525bb5ae08e1e6be9c2d3433 100644 (file)
@@ -103,12 +103,12 @@ struct module_t
     /*
      * Variables set by the module to identify itself
      */
-    const char *psz_shortname;                              /**< Module name */
-    const char *psz_longname;                   /**< Module descriptive name */
-    const char *psz_help;        /**< Long help string for "special" modules */
+    char *psz_shortname;                              /**< Module name */
+    char *psz_longname;                   /**< Module descriptive name */
+    char *psz_help;        /**< Long help string for "special" modules */
 
     /** Shortcuts to the module */
-    const char *pp_shortcuts[ MODULE_SHORTCUT_MAX ];
+    char *pp_shortcuts[ MODULE_SHORTCUT_MAX ];
 
     char    *psz_capability;                                 /**< Capability */
     int      i_score;                          /**< Score for the capability */