From f5bf29d4db2a257879641ae4fea7d6937027295c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn-Egil=20Dahlberg?= Date: Fri, 16 Nov 2012 18:52:55 +0100 Subject: erts: Fix mseg cache. Malplaced NULL pointer --- erts/emulator/sys/common/erl_mseg.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'erts/emulator/sys') diff --git a/erts/emulator/sys/common/erl_mseg.c b/erts/emulator/sys/common/erl_mseg.c index 2ff88ee435..7d03116daa 100644 --- a/erts/emulator/sys/common/erl_mseg.c +++ b/erts/emulator/sys/common/erl_mseg.c @@ -572,8 +572,8 @@ static ERTS_INLINE void *cache_get_segment(MemKind *mk, Uint size) { /* unlink from cache area */ csize = c->size; seg = c->seg; - c->next = NULL; mk->cache_area[i] = c->next; + c->next = NULL; mk->cache_size--; mk->cache_hits++; @@ -592,11 +592,11 @@ static ERTS_INLINE void *cache_get_segment(MemKind *mk, Uint size) { } i--; } - ASSERT(csize == size); return seg; } } + return NULL; } @@ -707,6 +707,8 @@ static void mseg_clear_memkind_cache(MemKind *mk) { mseg_drop_memkind_cache_size(mk, i); } + + ASSERT(mk->cache_size == 0); } static void mseg_clear_cache(ErtsMsegAllctr_t *ma) { -- cgit v1.2.3