From 714b5111e8bd89e4a4a9f720cb9d1751588ef71e Mon Sep 17 00:00:00 2001 From: "Andrei \"Akari\" Alexeyev" Date: Sat, 25 Mar 2017 02:31:10 +0200 Subject: [PATCH] a goto is slightly better than that mess --- src/resource/model.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/resource/model.c b/src/resource/model.c index 96aa487e..cb1f80da 100644 --- a/src/resource/model.c +++ b/src/resource/model.c @@ -44,12 +44,7 @@ void* load_model_begin(const char *path, unsigned int flags) { #define BADREF(filename,aux,n) { \ log_warn("OBJ file '%s': Index %d: bad %s index reference\n", filename, n, aux); \ - free(m->indices); \ - free(m); \ - free(verts); \ - free_obj(data); \ - free(data); \ - return NULL; \ + goto fail; \ } memset(verts, 0, data->icount*sizeof(Vertex)); @@ -90,6 +85,14 @@ void* load_model_begin(const char *path, unsigned int flags) { ldata->model = m; return ldata; + +fail: + free(m->indices); + free(m); + free(verts); + free_obj(data); + free(data); + return NULL; } void* load_model_end(void *opaque, const char *path, unsigned int flags) {