diff --git a/src/mapping.c b/src/mapping.c index c45c59e52876d3bc2dee4840cead6591a2351e28..dce0637a06046be084f6fc6e53e5baff525876c7 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;