X-Git-Url: https://git.draconx.ca/gitweb/upkg.git/blobdiff_plain/b8058e7a9acc7b38fa3aa04e34422bb044f9406b..dc6cf2d7ff5aea68888bf648be23754ffe5b18ba:/src/uobject/module.c diff --git a/src/uobject/module.c b/src/uobject/module.c index ff6bd5a..1d41d07 100644 --- a/src/uobject/module.c +++ b/src/uobject/module.c @@ -80,19 +80,16 @@ int u_object_module_exit(void) static int lookup_module(GTypeModule **out, const char *name) { - struct { GTypeModule pkg; char buf[]; } *search_key; - GTypeModule *result; + GTypeModule *result, key = {0}; + char *buf; - search_key = malloc(sizeof *search_key + strlen(name) + 1); - if (!search_key) + buf = malloc(strlen(name) + 1); + if (!buf) return -1; - search_key->pkg = (GTypeModule) { - .name = str_cpy_lower(search_key->buf, name), - }; - - result = avl_find(package_tree, search_key); - free(search_key); + key.name = str_cpy_lower(buf, name); + result = avl_find(package_tree, &key); + free(buf); *out = result; return 0;