From e789b212d3ff9b594749da426b51e20a0b3995a9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Tue, 11 Nov 2014 20:11:06 +0100
Subject: [PATCH] Build: Fixed some warnings about freeing static memory.

---
 src/mapping.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/src/mapping.c b/src/mapping.c
index 3fe2f43aab..dcf35696db 100644
--- a/src/mapping.c
+++ b/src/mapping.c
@@ -278,7 +278,23 @@ PMOD_EXPORT void really_free_mapping_data(struct mapping_data *md)
 #ifdef PIKE_DEBUG
   if (md->refs) {
     Pike_fatal("really_free_mapping_data(): md has non-zero refs: %d\n",
-	  md->refs);
+	       md->refs);
+  }
+
+  if (!md->size) {
+    /* Paranoia and keep gcc happy. */
+    if (md == &empty_data) {
+      Pike_fatal("really_free_mapping_data(): md is empty_data!\n");
+    }
+    if (md == &weak_ind_empty_data) {
+      Pike_fatal("really_free_mapping_data(): md is weak_ind_empty_data!\n");
+    }
+    if (md == &weak_val_empty_data) {
+      Pike_fatal("really_free_mapping_data(): md is weak_val_empty_data!\n");
+    }
+    if (md == &weak_both_empty_data) {
+      Pike_fatal("really_free_mapping_data(): md is weak_both_empty_data!\n");
+    }
   }
 #endif /* PIKE_DEBUG */
 
-- 
GitLab