]> git.draconx.ca Git - upkg.git/blobdiff - src/uobject/uobject.c
Fix bootstrapping with recent bits.
[upkg.git] / src / uobject / uobject.c
index 360dd31d2614e586b96d0250983a1b196b9f3fe7..c3cc24662ce4a69980b0086c8693c4b651f05d0a 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  upkg: tool for manipulating Unreal Tournament packages.
- *  Copyright © 2009-2011 Nick Bowler
+ *  Copyright © 2009-2012, 2015 Nick Bowler
  *
  *  This program is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -16,6 +16,7 @@
  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -524,15 +525,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) {