summaryrefslogtreecommitdiff
path: root/utils/messages.c
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2016-12-11 16:43:48 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2016-12-11 16:43:48 +0000
commit4ad375c3b0e3f65416c02ca7b126b2e7fe375db1 (patch)
tree262bd7617cd35c041727459e3e3f34cb36fbd863 /utils/messages.c
parentba0895121b44b21d351ee69a07613f524f322617 (diff)
downloadnetsurf-4ad375c3b0e3f65416c02ca7b126b2e7fe375db1.tar.gz
netsurf-4ad375c3b0e3f65416c02ca7b126b2e7fe375db1.tar.bz2
Ensure memory used by Messages is freed on exit
Diffstat (limited to 'utils/messages.c')
-rw-r--r--utils/messages.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/utils/messages.c b/utils/messages.c
index e69a85524..0c558cdfc 100644
--- a/utils/messages.c
+++ b/utils/messages.c
@@ -177,6 +177,22 @@ messages_get_ctx(const char *key, struct hash_table *ctx)
return r;
}
+
+/**
+ * Free memory used by a messages hash.
+ * The context will not be valid after this function returns.
+ *
+ * \param ctx context of messages file to free
+ */
+static void messages_destroy_ctx(struct hash_table *ctx)
+{
+ if (ctx == NULL)
+ return;
+
+ hash_destroy(ctx);
+}
+
+
/* exported interface documented in messages.h */
nserror messages_add_from_file(const char *path)
{
@@ -390,3 +406,12 @@ const char *messages_get_errorcode(nserror code)
/* Unknown error */
return messages_get_ctx("Unknown", messages_hash);
}
+
+
+/* exported function documented in utils/messages.h */
+void messages_destroy(void)
+{
+ messages_destroy_ctx(messages_hash);
+ messages_hash = NULL;
+}
+