]> git.draconx.ca Git - upkg.git/blobdiff - src/uobject/uobject.c
uobject: Make module loader understand exports/imports.
[upkg.git] / src / uobject / uobject.c
index 360dd31d2614e586b96d0250983a1b196b9f3fe7..9c5bfa13a3ccc9949a4cc687dab2067aa83f8c3b 100644 (file)
@@ -524,15 +524,17 @@ GObject *u_object_new_from_package(GTypeModule *pkg, unsigned long idx)
 {
        g_return_val_if_fail(IS_U_PKG(pkg), NULL);
 
-       const char *class, *package;
+       const struct upkg_export *export;
        GObject *obj = NULL;
        GType type;
 
-       class = upkg_export_class(U_PKG(pkg)->pkg, idx, &package);
-       if (!class)
+       export = upkg_get_export(U_PKG(pkg)->pkg, idx);
+       if (!export) {
+               u_err(pkg, "invalid package export: %lu", idx);
                return NULL;
+       }
 
-       type = u_object_module_get_class(package, class);
+       type = u_object_module_get_class(pkg, export->class);
        if (type) {
                obj = g_object_new(type, NULL);
                if (u_object_deserialize(obj, pkg, idx) != 0) {