vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Sun Oct 27 20:13:28 2019 +0200| [67488437b4c6c6ac2d13e5d923cd3de90946add0] | committer: Rémi Denis-Courmont
modules: fix pointer aliasing Tree functions return pointers to void pointers. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=67488437b4c6c6ac2d13e5d923cd3de90946add0 --- src/modules/bank.c | 4 ++-- src/modules/entry.c | 15 +++++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/modules/bank.c b/src/modules/bank.c index 2f85b0776c..275680456b 100644 --- a/src/modules/bank.c +++ b/src/modules/bank.c @@ -118,7 +118,7 @@ static int vlc_module_store(module_t *mod) if (unlikely(cap->name == NULL)) goto error; - vlc_modcap_t **cp = tsearch(cap, &modules.caps_tree, vlc_modcap_cmp); + void **cp = tsearch(cap, &modules.caps_tree, vlc_modcap_cmp); if (unlikely(cp == NULL)) goto error; @@ -787,7 +787,7 @@ module_t **module_list_get (size_t *n) */ ssize_t module_list_cap (module_t ***restrict list, const char *name) { - const vlc_modcap_t **cp = tfind(&name, &modules.caps_tree, vlc_modcap_cmp); + const void **cp = tfind(&name, &modules.caps_tree, vlc_modcap_cmp); if (cp == NULL) { *list = NULL; diff --git a/src/modules/entry.c b/src/modules/entry.c index c3e64af3d3..70f9a8c932 100644 --- a/src/modules/entry.c +++ b/src/modules/entry.c @@ -512,8 +512,7 @@ static int vlc_plugin_gpa_cb(void *ctx, void *tgt, int propid, ...) sym->name = name; sym->addr = addr; - struct vlc_plugin_symbol **symp = tsearch(sym, rootp, - vlc_plugin_symbol_compare); + void **symp = tsearch(sym, rootp, vlc_plugin_symbol_compare); if (unlikely(symp == NULL)) { /* Memory error */ free(sym); @@ -522,7 +521,10 @@ static int vlc_plugin_gpa_cb(void *ctx, void *tgt, int propid, ...) if (*symp != sym) { /* Duplicate symbol */ - assert((*symp)->addr == sym->addr); +#ifndef NDEBUG + const struct vlc_plugin_symbol *oldsym = *symp; + assert(oldsym->addr == sym->addr); +#endif free(sym); } return 0; @@ -565,13 +567,14 @@ static int vlc_plugin_get_symbol(void *root, const char *name, return 0; } - const struct vlc_plugin_symbol **symp = tfind(&name, &root, - vlc_plugin_symbol_compare); + const void **symp = tfind(&name, &root, vlc_plugin_symbol_compare); if (symp == NULL) return -1; - *addrp = (*symp)->addr; + const struct vlc_plugin_symbol *sym = *symp; + + *addrp = sym->addr; return 0; } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
