From e2d522cbf23b7ec40882cb91242496f57738978c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net>
Date: Sat, 16 May 1998 01:21:47 -0700
Subject: [PATCH] more debug added

Rev: src/mapping.c:1.34
---
 src/mapping.c | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/src/mapping.c b/src/mapping.c
index 0a83b30235..36506b3a1f 100644
--- a/src/mapping.c
+++ b/src/mapping.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id: mapping.c,v 1.33 1998/05/14 21:45:21 hubbe Exp $");
+RCSID("$Id: mapping.c,v 1.34 1998/05/16 08:21:47 hubbe Exp $");
 #include "main.h"
 #include "object.h"
 #include "mapping.h"
@@ -936,6 +936,9 @@ void mapping_search_no_free(struct svalue *to,
 
 void check_mapping(struct mapping *m)
 {
+  int e,num;
+  struct keypair *k;
+
   if(m->refs <=0)
     fatal("Mapping has zero refs.\n");
 
@@ -965,7 +968,22 @@ void check_mapping(struct mapping *m)
 
   if(!m->hash && m->size)
     fatal("Hey! where did my hashtable go??\n");
+
+  num=0;
+  MAPPING_LOOP(m)
+    {
+      num++;
+
+      if(! ( (1 << k->ind.type) & (m->ind_types) ))
+	fatal("Mapping indices type field lies.\n");
+
+      if(! ( (1 << k->val.type) & (m->val_types) ))
+	fatal("Mapping values type field lies.\n");
+      
+    }
   
+  if(m->size != num)
+    fatal("Shields are failing, hull integrity down to 20%%\n");
 }
 
 void check_all_mappings(void)
-- 
GitLab