]> git.draconx.ca Git - upkg.git/blobdiff - src/engine/palette.gob
Ensure object property references are released.
[upkg.git] / src / engine / palette.gob
index 4c15c71f2528a2226209ea07299e15ddae09cac2..ce5745926c773847dc0d9793dea451bd3233855f 100644 (file)
@@ -1,7 +1,7 @@
 %alltop{
 /*
  *  upkg: tool for manipulating Unreal Tournament packages.
- *  Copyright © 2011 Nick Bowler
+ *  Copyright © 2011, 2020 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
@@ -33,7 +33,7 @@ typedef unsigned char engine_palette_rgba[4];
 class Engine:Palette from U:Object (dynamic)
 {
        public unsigned entries = 0;
-       public engine_palette_rgba *rgba = NULL;
+       public engine_palette_rgba *rgba = NULL destroywith free;
 
        override (U:Object) int deserialize(U:Object *uo)
        {
@@ -51,7 +51,8 @@ class Engine:Palette from U:Object (dynamic)
                        return -1;
                self->entries = entries;
 
-               upkg_export_seek(f, rc, SEEK_SET);
+               if (upkg_export_seek(f, rc, SEEK_SET) != 0)
+                       return -1;
                buflen = entries * sizeof self->rgba[0];
                self->rgba = malloc(buflen);
                if (!self->rgba)
@@ -63,7 +64,6 @@ class Engine:Palette from U:Object (dynamic)
                        return -1;
                }
 
-               printf("palette: %u entries\n", self->entries);
                return 0;
        }
 }