From 5f4ca7c4a00d21f2637fc4a1baa5829ff9e15b60 Mon Sep 17 00:00:00 2001 From: JackCarterSmith Date: Thu, 4 Jul 2019 17:54:45 +0200 Subject: [PATCH] Make memCleaner fault tolerant --- HMT-Extractor Debug.launch | 0 HMT-Extractor Release.launch | 0 Texture-Extractor Debug.launch | 39 ++++++++++++++++++++++++++++++++ Texture-Extractor Release.launch | 37 ++++++++++++++++++++++++++++++ src/Texture-Extractor.c | 15 +++++++++--- 5 files changed, 88 insertions(+), 3 deletions(-) delete mode 100644 HMT-Extractor Debug.launch delete mode 100644 HMT-Extractor Release.launch create mode 100644 Texture-Extractor Debug.launch create mode 100644 Texture-Extractor Release.launch diff --git a/HMT-Extractor Debug.launch b/HMT-Extractor Debug.launch deleted file mode 100644 index e69de29..0000000 diff --git a/HMT-Extractor Release.launch b/HMT-Extractor Release.launch deleted file mode 100644 index e69de29..0000000 diff --git a/Texture-Extractor Debug.launch b/Texture-Extractor Debug.launch new file mode 100644 index 0000000..5aa1357 --- /dev/null +++ b/Texture-Extractor Debug.launch @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Texture-Extractor Release.launch b/Texture-Extractor Release.launch new file mode 100644 index 0000000..10c879e --- /dev/null +++ b/Texture-Extractor Release.launch @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Texture-Extractor.c b/src/Texture-Extractor.c index 04eb911..f92e57b 100644 --- a/src/Texture-Extractor.c +++ b/src/Texture-Extractor.c @@ -30,10 +30,19 @@ int main(int argc, char *argv[]) { } void purgeHMTFromMemory(HMT_FILE *_f) { - free(_f->textures_list->image.pixels); - free(_f->textures_list->image.samples); - free(_f->materials_list); + if (_f == NULL) return; + + if (_f->textures_list != NULL) { + if (_f->textures_list->image.pixels != NULL) free(_f->textures_list->image.pixels); + if (_f->textures_list->image.samples != NULL) free(_f->textures_list->image.samples); + } + if (_f->textures_list != NULL) { + if (_f->textures_list->image.pixels != NULL) free(_f->textures_list->image.pixels); + } free(_f->textures_list); + + if (_f->materials_list != NULL) free(_f->materials_list); + free(_f); }