]> git.draconx.ca Git - upkg.git/commitdiff
uobject: Remove the file parameter from deserialize.
authorNick Bowler <nbowler@draconx.ca>
Sat, 12 Mar 2011 01:55:50 +0000 (20:55 -0500)
committerNick Bowler <nbowler@draconx.ca>
Sun, 13 Mar 2011 21:39:00 +0000 (17:39 -0400)
The UObject class already has a file member; restructure the code to use
that instead.

src/engine/music.c
src/engine/texture.c
src/uobject/uobject.c
src/uobject/uobject.h

index ae2db1e13eb744287ab08203ead5549959b9c2f8..f59e4a97c6f5fab87e43fddabf856f8deeabf490 100644 (file)
@@ -121,14 +121,15 @@ static void loadable_init(UObjectLoadable *l)
        l->unload = unload;
 }
 
-static int deserialize(UObject *o, struct upkg_file *f)
+static int deserialize(UObject *uo)
 {
-       struct music_priv *priv = MUSIC_GET_PRIV(o);
+       struct music_priv *priv = MUSIC_GET_PRIV(uo);
+       struct upkg_file *f = uo->pkg_file;
        size_t rc, pos = 0, buflen;
        unsigned char buf[32];
        long size;
 
-       U_OBJECT_CLASS(engine_music_parent_class)->deserialize(o, f);
+       U_OBJECT_CLASS(engine_music_parent_class)->deserialize(uo);
 
        buflen = upkg_export_read(f, buf, sizeof buf);
 
index 2ac18a652d0fb626e224e9426aba6bfa0a593733..362b0cbdf9f675f4ce8a36ad3acfd76a29d6e831 100644 (file)
@@ -50,12 +50,12 @@ void exportable_init(UObjectExportable *e)
 
 G_DEFINE_DYNAMIC_TYPE(EngineTexture, engine_texture, U_OBJECT_TYPE);
 
-static int deserialize(UObject *o, struct upkg_file *f)
+static int deserialize(UObject *uo)
 {
-       struct texture_priv *priv = TEXTURE_GET_PRIV(o);
-       EngineTexture *t = ENGINE_TEXTURE(o);
+       struct texture_priv *priv = TEXTURE_GET_PRIV(uo);
+       EngineTexture *t = ENGINE_TEXTURE(uo);
 
-       U_OBJECT_CLASS(engine_texture_parent_class)->deserialize(o, f);
+       U_OBJECT_CLASS(engine_texture_parent_class)->deserialize(uo);
 
        printf("Texture size: %ux%u\n", t->usize, t->vsize);
 
index e5b500b2cd82e695cbadd2b013069a14ba22ff59..4bc165568f476db0531ed1a249764ecd3d067dcc 100644 (file)
@@ -141,9 +141,10 @@ decode_property(UObject *o, const char *name, struct upkg_file *f, unsigned long
 }
 
 /* Deserialize properties from an Unreal package. */
-static int deserialize(UObject *o, struct upkg_file *f)
+static int deserialize(UObject *uo)
 {
-       struct u_object_priv *priv = U_OBJECT_GET_PRIV(o);
+       struct u_object_priv *priv = U_OBJECT_GET_PRIV(uo);
+       struct upkg_file *f = uo->pkg_file;
        unsigned long rc, tot_len = 0;
 
        while (1) {
@@ -175,7 +176,7 @@ static int deserialize(UObject *o, struct upkg_file *f)
                        break;
                }
 
-               rc = decode_property(U_OBJECT(o), name, f, len);
+               rc = decode_property(uo, name, f, len);
                if (rc == 0)
                        return -1;
                len = rc;
@@ -203,12 +204,13 @@ int u_object_deserialize(GObject *obj, struct upkg *pkg, unsigned long idx)
                return -1;
        }
 
-       rc = U_OBJECT_GET_CLASS(obj)->deserialize(uo, f);
+       uo->pkg      = pkg;
+       uo->pkg_file = f;
+
+       rc = U_OBJECT_GET_CLASS(obj)->deserialize(uo);
        if (rc != 0) {
                upkg_export_close(f);
-       } else {
-               uo->pkg      = pkg;
-               uo->pkg_file = f;
+               uo->pkg_file = NULL;
        }
 
        return rc;
index 139b5373c0ad8bd6b329a7b5b17d62453e7d189f..b9e16faa9ea16a858d73cabbf467d6c4fb0cf886 100644 (file)
@@ -47,7 +47,7 @@ struct UObject {
 struct UObjectClass {
        GObjectClass parent;
 
-       int (*deserialize)(UObject *obj, struct upkg_file *f);
+       int (*deserialize)(UObject *obj);
 };
 
 GType u_object_get_type(void);