%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
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)
{
%alltop{
/*
* upkg: tool for manipulating Unreal Tournament packages.
- * Copyright © 2009-2011 Nick Bowler
+ * Copyright © 2009-2012, 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
private float DrawScale;
- private Engine:Palette *Palette;
- private Engine:Texture *DetailTexture;
+ private Engine:Palette *Palette = NULL destroywith g_object_unref;
+ private Engine:Texture *DetailTexture = NULL destroywith g_object_unref;
private struct engine_texture_data **mipmap_data;
private unsigned char mipmap_count;
/*
* upkg: tool for manipulating Unreal Tournament packages.
- * Copyright © 2009-2012, 2015 Nick Bowler
+ * Copyright © 2009-2012, 2015, 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
if (rc != 0)
return 0;
g_object_set_property(G_OBJECT(uo), head->prop_name, &val);
+
+ /*
+ * g_object_set_property increments refcount,
+ * release our reference.
+ */
+ g_object_unref(g_value_get_object(&val));
break;
case PROPERTY_FLOAT:
if (head->size != 4 || priv->nbuf-len < head->size)