]> git.draconx.ca Git - upkg.git/blobdiff - src/module.c
uobject: Implement an interface for loading/unloading.
[upkg.git] / src / module.c
index 025d600b9668bb13674cf993f07ca3e00c880e6f..c71c8a9a2bb4fd412751da2011f57636167fdfeb 100644 (file)
@@ -27,7 +27,7 @@ G_DEFINE_TYPE(UPkgModule, upkg_module, G_TYPE_TYPE_MODULE);
 static void dl_print_errors(const char *prefix)
 {
        const char *err;
-       while (err = lt_dlerror()) {
+       while ((err = lt_dlerror())) {
                if (prefix) fprintf(stderr, "%s: ", prefix);
                puts(err);
        }
@@ -40,7 +40,7 @@ static gboolean module_load(GTypeModule *m)
 
        mod->dl = lt_dlopenext(G_TYPE_MODULE(m)->name);
        if (!mod->dl) {
-               dl_print_errors(__func__);
+               dl_print_errors(G_TYPE_MODULE(m)->name);
                return FALSE;
        }
 
@@ -100,8 +100,8 @@ UPkgModule *upkg_module_new(const char *name)
 
 static int modcmp(const void *a, const void *b, void *_data)
 {
-       GTypeModule *ma = G_TYPE_MODULE(a);
-       GTypeModule *mb = G_TYPE_MODULE(b);
+       const GTypeModule *ma = a;
+       const GTypeModule *mb = b;
 
        return strcmp(ma->name, mb->name);
 }
@@ -109,7 +109,7 @@ static int modcmp(const void *a, const void *b, void *_data)
 int module_init(void)
 {
        if (!initialized) {
-               package_tree = avl_create(modcmp, 0, &avl_allocator_default);
+               package_tree = avl_create(modcmp, NULL, NULL);
                if (!package_tree) {
                        fprintf(stderr, "%s: failed to create package tree.\n", __func__);
                        return -1;
@@ -137,6 +137,8 @@ int module_exit(void)
                dl_print_errors(__func__);
                return -1;
        }
+
+       return 0;
 }
 
 GType module_get_class(const char *package, const char *class)