From e99c4369386170dea8ccbe2e9283efd01c65c39a Mon Sep 17 00:00:00 2001
From: Arne Goedeke <el@laramies.com>
Date: Sat, 3 Aug 2013 14:10:22 +0200
Subject: [PATCH] mapping: non ref counted types should not be affected by the
 weak flag

---
 src/mapping.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/mapping.c b/src/mapping.c
index 43afd10c8e..321dabaa11 100644
--- a/src/mapping.c
+++ b/src/mapping.c
@@ -340,13 +340,13 @@ static void mapping_rehash_backwards_evil(struct mapping_data *md,
       default:
 	Pike_fatal("Instable mapping data flags.\n");
       case MAPPING_WEAK_INDICES:
-	if (REFCOUNTED_TYPE(TYPEOF(from->ind)) &&
+	if (!REFCOUNTED_TYPE(TYPEOF(from->ind)) ||
 	    (*from->ind.u.refs > 1)) {
 	  goto keep_keypair;
 	}
 	break;
       case MAPPING_WEAK_VALUES:
-	if (REFCOUNTED_TYPE(TYPEOF(from->val)) &&
+	if (!REFCOUNTED_TYPE(TYPEOF(from->val)) ||
 	    (*from->val.u.refs > 1)) {
 	  goto keep_keypair;
 	}
-- 
GitLab