From e0cf80d666d4b5df3229f030a16d10d21323508e Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Wed, 15 Mar 2023 17:40:50 -0400 Subject: Fix incorrect size of WeakMap buffer In wmap_final_func, j is the number of elements + 1 (since j also includes the length at the 0th index), so we should resize the buffer to size j and the new length is j - 1. --- weakmap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/weakmap.c b/weakmap.c index 1e86f22988..3a615d6868 100644 --- a/weakmap.c +++ b/weakmap.c @@ -163,8 +163,8 @@ wmap_final_func(st_data_t *key, st_data_t *value, st_data_t arg, int existing) return ST_DELETE; } if (j < i) { - SIZED_REALLOC_N(ptr, VALUE, j + 1, i); - ptr[0] = j; + SIZED_REALLOC_N(ptr, VALUE, j, i); + ptr[0] = j - 1; *value = (st_data_t)ptr; } return ST_CONTINUE; -- cgit v1.2.1