From: Nick Bowler Date: Wed, 16 May 2012 00:23:43 +0000 (-0400) Subject: upkg: Use proper library routines in package_export. X-Git-Url: https://git.draconx.ca/gitweb/upkg.git/commitdiff_plain/8afa7b7717a5a2f45182a63d043401960fdeef92 upkg: Use proper library routines in package_export. Not sure why this function contained a complete re-implementation of u_object_new_from_package, but here we are. Call the appropriate library function to eliminate a pile of code. --- diff --git a/src/upkg.c b/src/upkg.c index 5a51c2e..176eca9 100644 --- a/src/upkg.c +++ b/src/upkg.c @@ -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); }