Re-enabled -Wcast-qual warning (which maybe was disabled because of const char* whoes...
authorSven-Ola Tuecke <sven-ola@gmx.de>
Fri, 21 Aug 2009 16:27:23 +0000 (18:27 +0200)
committerSven-Ola Tuecke <sven-ola@gmx.de>
Fri, 21 Aug 2009 16:27:23 +0000 (18:27 +0200)
Makefile.inc
src/plugin_loader.c
src/plugin_loader.h

index 252d0ea..60a3e3b 100644 (file)
@@ -98,7 +98,7 @@ ifndef CFLAGS
     ALL_WARNINGS +=    -Wwrite-strings
     ALL_WARNINGS +=    -Wbad-function-cast
     ALL_WARNINGS +=    -Wpointer-arith
-    # ALL_WARNINGS +=  -Wcast-qual
+    ALL_WARNINGS +=    -Wcast-qual
     ALL_WARNINGS +=    -Wshadow
     ALL_WARNINGS +=    -Wformat-2
     ALL_WARNINGS +=    -Wsequence-point
index d847304..7af9970 100644 (file)
@@ -54,7 +54,7 @@
 #include <stdlib.h>
 
 /* Local functions */
-static struct olsr_plugin *olsr_load_legacy_plugin(char *, void *);
+static struct olsr_plugin *olsr_load_legacy_plugin(const char *, void *);
 
 struct avl_tree plugin_tree;
 static bool plugin_tree_initialized = false;
@@ -75,7 +75,7 @@ olsr_hookup_plugin(struct olsr_plugin *pl_def) {
     avl_init(&plugin_tree, avl_comp_strcasecmp);
     plugin_tree_initialized = true;
   }
-  pl_def->p_node.key = pl_def->p_name;
+  pl_def->p_node.key = strdup(pl_def->p_name);
   avl_insert(&plugin_tree, &pl_def->p_node, AVL_DUP_NO);
 }
 
@@ -89,7 +89,7 @@ olsr_unhookup_plugin(struct olsr_plugin *pl_def) {
   avl_delete(&plugin_tree, &pl_def->p_node);
 }
 
-struct olsr_plugin *olsr_get_plugin(char *libname) {
+struct olsr_plugin *olsr_get_plugin(const char *libname) {
   struct avl_node *node;
   if ((node = avl_find(&plugin_tree, libname)) != NULL) {
     return plugin_node2tree(node);
@@ -161,7 +161,7 @@ olsr_destroy_pluginsystem(void) {
 }
 
 static struct olsr_plugin *
-olsr_load_legacy_plugin(char *libname, void *dlhandle) {
+olsr_load_legacy_plugin(const char *libname, void *dlhandle) {
   get_interface_version_func get_interface_version;
   get_plugin_parameters_func get_plugin_parameters;
   plugin_init_func init_plugin;
@@ -202,11 +202,11 @@ olsr_load_legacy_plugin(char *libname, void *dlhandle) {
 
   /* initialize plugin structure */
   plugin = (struct olsr_plugin *)olsr_cookie_malloc(plugin_mem_cookie);
-  plugin->p_name = strdup(libname);
+  plugin->p_name = libname;
   plugin->p_version = plugin_interface_version;
   plugin->p_legacy_init = init_plugin;
 
-  plugin->p_node.key = plugin->p_name;
+  plugin->p_node.key = strdup(plugin->p_name);
   plugin->dlhandle = dlhandle;
 
   /* get parameters */
@@ -224,7 +224,7 @@ olsr_load_legacy_plugin(char *libname, void *dlhandle) {
  *@return dlhandle
  */
 struct olsr_plugin *
-olsr_load_plugin(char *libname)
+olsr_load_plugin(const char *libname)
 {
   void *dlhandle;
   struct olsr_plugin *plugin;
@@ -291,7 +291,6 @@ olsr_unload_plugin(struct olsr_plugin *plugin) {
    * modern plugins
    */
   if (legacy) {
-    free(plugin->p_name);
     olsr_cookie_free(plugin_mem_cookie, plugin);
   }
   return false;
index 506c039..947ab50 100644 (file)
@@ -50,7 +50,7 @@
 
 #define DEFINE_PLUGIN6(descr, author, pre_init, post_init, pre_cleanup, post_cleanup, deactivate, parameter) \
 static struct olsr_plugin olsr_internal_plugin_definition = { \
-  .p_name = (char*) PLUGIN_FULLNAME , .p_descr = (char*)descr, .p_author = (char*)author, \
+  .p_name = PLUGIN_FULLNAME , .p_descr = descr, .p_author = author, \
   .p_pre_init = pre_init, .p_post_init = post_init, .p_pre_cleanup = pre_cleanup, .p_post_cleanup = post_cleanup, \
   .p_legacy_init = NULL, .p_deactivate = deactivate, .p_version = 6, .p_param = parameter, .p_param_cnt = ARRAYSIZE(parameter) \
 }; \
@@ -61,7 +61,7 @@ static void hookup_plugin_definition (void) { \
 
 #define DEFINE_PLUGIN6_NP(descr, author, pre_init, post_init, pre_cleanup, post_cleanup, deactivate) \
 static struct olsr_plugin olsr_internal_plugin_definition = { \
-  .p_name = (char*) PLUGIN_FULLNAME , .p_descr = (char*)descr, .p_author = (char*)author, \
+  .p_name = PLUGIN_FULLNAME , .p_descr = descr, .p_author = author, \
   .p_pre_init = pre_init, .p_post_init = post_init, .p_pre_cleanup = pre_cleanup, .p_post_cleanup = post_cleanup, \
   .p_deactivate = deactivate, .p_version = 6, .p_param = NULL, .p_param_cnt = 0 \
 }; \
@@ -79,9 +79,9 @@ struct olsr_plugin {
   struct avl_node p_node;
 
   /* plugin information */
-  char *p_name;
-  char *p_descr;
-  char *p_author;
+  const char *p_name;
+  const char *p_descr;
+  const char *p_author;
   bool p_deactivate;    /* plugin can be deactivated */
 
   /* function pointers */
@@ -117,7 +117,7 @@ AVLNODE2STRUCT(plugin_node2tree, struct olsr_plugin, p_node)
     plugin = plugin_node2tree(plugin_node);
 #define OLSR_FOR_ALL_PLUGIN_ENTRIES_END(plugin) }}
 
-struct olsr_plugin *EXPORT(olsr_get_plugin)(char *libname);
+struct olsr_plugin *EXPORT(olsr_get_plugin)(const char *libname);
 
 void EXPORT(olsr_hookup_plugin) (struct olsr_plugin *plugin);
 void EXPORT(olsr_unhookup_plugin) (struct olsr_plugin *plugin);
@@ -125,7 +125,7 @@ void EXPORT(olsr_unhookup_plugin) (struct olsr_plugin *plugin);
 void EXPORT(olsr_init_pluginsystem)(bool);
 void EXPORT(olsr_destroy_pluginsystem)(void);
 
-struct olsr_plugin *EXPORT(olsr_load_plugin)(char *);
+struct olsr_plugin *EXPORT(olsr_load_plugin)(const char *);
 bool EXPORT(olsr_unload_plugin)(struct olsr_plugin *);
 
 bool EXPORT(olsr_activate_plugin)(struct olsr_plugin *);