X-Git-Url: https://git.draconx.ca/gitweb/upkg.git/blobdiff_plain/95f7a657a099c844a644b8736bd18e08afd50661..8afa7b7717a5a2f45182a63d043401960fdeef92:/src/upkg.c diff --git a/src/upkg.c b/src/upkg.c index e174c21..176eca9 100644 --- a/src/upkg.c +++ b/src/upkg.c @@ -312,8 +312,8 @@ static int object_info(GTypeModule *pkg, unsigned long idx) UObject *obj = g_value_get_object(&val); /* TODO: Display full object names here. */ - if (obj->pkg_file) { - printf(" %s", obj->pkg_file->name); + if (obj->pkg_name) { + printf(" %s", obj->pkg_name); } } @@ -415,28 +415,13 @@ out: int package_export(GTypeModule *pkg) { struct upkg *upkg = U_PKG(pkg)->pkg; - const char *class, *package; GObject *obj; - GType type; int ret = 0; for (unsigned i = 0; i < upkg->export_count; i++) { - class = upkg_export_class(upkg, i, &package); - if (!class) { - fprintf(stderr, "error getting class information.\n"); - return -1; - } - - type = u_object_module_get_class(package, class); - if (!type) - continue; - - obj = g_object_new(type, NULL); - if (U_OBJECT_IS_EXPORTABLE(obj)) { - if (u_object_deserialize(obj, upkg, i) != 0 - || export(pkg, obj, i) != 0) { - ret = -1; - } + obj = u_object_new_from_package(upkg, i); + if (U_OBJECT_IS_EXPORTABLE(obj) && export(pkg, obj, i) != 0) { + ret = -1; } g_object_unref(obj); }