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;