From ece55d084305a379fd8dc276c3f2784fac291415 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Tue, 29 Jan 2013 17:17:30 +0100 Subject: [PATCH] DEBUG: Fixed broken size check for weak mappings. Fixes fatal "Rehash failed, size not same any more.". --- src/mapping.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mapping.c b/src/mapping.c index c45c59e528..dce0637a06 100644 --- a/src/mapping.c +++ b/src/mapping.c @@ -554,8 +554,10 @@ static struct mapping *rehash(struct mapping *m, int new_size) } #ifdef PIKE_DEBUG - if(m->data->size != tmp) - Pike_fatal("Rehash failed, size not same any more.\n"); + if((m->data->size != tmp) && + ((m->data->size > tmp) || !(m->data->flags & MAPPING_WEAK))) + Pike_fatal("Rehash failed, size not same any more (%ld != %ld).\n", + (long)m->data->size, (long)tmp); #endif #ifdef MAPPING_SIZE_DEBUG m->debug_size = m->data->size; -- GitLab