summaryrefslogtreecommitdiffstats
path: root/libdimension
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@gmail.com>2009-10-19 00:49:24 +0000
committerTavian Barnes <tavianator@gmail.com>2009-10-19 00:49:24 +0000
commit8710689500d3d35d04aabd727f12698590a816cb (patch)
tree02d69e8d47c584faff6b7b2622adb69699886078 /libdimension
parent19b06b1485a87a773d3f1ce897f6a00a22e6243d (diff)
downloaddimension-8710689500d3d35d04aabd727f12698590a816cb.tar.xz
Improve garbage handling of dmnsn_delete_object().
Diffstat (limited to 'libdimension')
-rw-r--r--libdimension/object.c1
-rw-r--r--libdimension/texture.c5
2 files changed, 5 insertions, 1 deletions
diff --git a/libdimension/object.c b/libdimension/object.c
index f10d53d..18d7adb 100644
--- a/libdimension/object.c
+++ b/libdimension/object.c
@@ -57,6 +57,7 @@ void
dmnsn_delete_object(dmnsn_object *object)
{
if (object) {
+ dmnsn_delete_texture(object->texture);
if (object->free_fn) {
(*object->free_fn)(object->ptr);
}
diff --git a/libdimension/texture.c b/libdimension/texture.c
index f232cbc..a5ebd90 100644
--- a/libdimension/texture.c
+++ b/libdimension/texture.c
@@ -54,5 +54,8 @@ dmnsn_new_texture()
void
dmnsn_delete_texture(dmnsn_texture *texture)
{
- free(texture);
+ if (texture) {
+ dmnsn_delete_pigment(texture->pigment);
+ free(texture);
+ }
}