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