From d527ab6ada5e6096d7e957f50589947be3edb5a5 Mon Sep 17 00:00:00 2001 From: Kelvin Sherlock Date: Wed, 25 Jul 2018 20:45:02 -0400 Subject: [PATCH] free processed map after file is processed. --- rlint.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/rlint.c b/rlint.c index a5af81d..8c7e87d 100644 --- a/rlint.c +++ b/rlint.c @@ -28,6 +28,21 @@ struct node { struct node *processed_map[256]; +void free_processed_map(void) { + struct node *e; + unsigned i; + + for (i = 0; i < 256; ++i) { + e = processed_map[i]; + while (e) { + struct node *next = e->next; + free(e); + e = next; + } + processed_map[i] = 0; + } + +} unsigned processed(ResType type, ResID id) { unsigned hash = 0xaaaa; struct node *e; @@ -280,6 +295,8 @@ void one_file(const char *name) { SetResourceFileDepth(depth); CloseResourceFile(rfd); + + free_processed_map(); free(gname); }