diff options
Diffstat (limited to 'libdimension/object.c')
-rw-r--r-- | libdimension/object.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/libdimension/object.c b/libdimension/object.c index 0556921..6b248ff 100644 --- a/libdimension/object.c +++ b/libdimension/object.c @@ -28,7 +28,8 @@ dmnsn_new_object() dmnsn_object *object = malloc(sizeof(dmnsn_object)); if (object) { object->texture = NULL; - object->trans = dmnsn_identity_matrix(); + object->trans = dmnsn_identity_matrix(); + object->free_fn = NULL; } return object; } @@ -37,5 +38,10 @@ dmnsn_new_object() void dmnsn_delete_object(dmnsn_object *object) { - free(object); + if (object) { + if (object->free_fn) { + (*object->free_fn)(object->ptr); + } + free(object); + } } |