From 32b12154933124a899dae65c1e2a993e814e60c1 Mon Sep 17 00:00:00 2001 From: Ivan Maidanski Date: Sun, 15 Dec 2013 20:36:45 +0400 Subject: Remove 'opp' local variable in GC_malloc_X (code refactoring) * alloc.c: Update comment (about free lists). * fnlz_mlc.c (GC_finalized_malloc): Remove "opp" local variable (replace *opp with freelist[lg]). * gcj_mlc.c (GC_gcj_malloc, GC_gcj_malloc_ignore_off_page): Likewise. * malloc.c (GC_malloc_atomic, GC_malloc, GC_malloc_uncollectable): Likewise. * mallocx.c (GC_malloc_atomic_uncollectable): Likewise. * typd_mlc.c (GC_malloc_explicitly_typed, GC_malloc_explicitly_typed_ignore_off_page, GC_calloc_explicitly_typed): Likewise. --- gcj_mlc.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) (limited to 'gcj_mlc.c') diff --git a/gcj_mlc.c b/gcj_mlc.c index 78950e25..c2aee253 100644 --- a/gcj_mlc.c +++ b/gcj_mlc.c @@ -164,17 +164,15 @@ static void maybe_finalize(void) #endif { ptr_t op; - ptr_t * opp; word lg; DCL_LOCK_STATE; GC_DBG_COLLECT_AT_MALLOC(lb); if(SMALL_OBJ(lb)) { lg = GC_size_map[lb]; - opp = &(GC_gcjobjfreelist[lg]); LOCK(); - op = *opp; - if(EXPECT(op == 0, FALSE)) { + op = GC_gcjobjfreelist[lg]; + if(EXPECT(0 == op, FALSE)) { maybe_finalize(); op = (ptr_t)GENERAL_MALLOC_INNER((word)lb, GC_gcj_kind); if (0 == op) { @@ -183,7 +181,7 @@ static void maybe_finalize(void) return((*oom_fn)(lb)); } } else { - *opp = obj_link(op); + GC_gcjobjfreelist[lg] = obj_link(op); GC_bytes_allocd += GRANULES_TO_BYTES(lg); } *(void **)op = ptr_to_struct_containing_descr; @@ -238,16 +236,14 @@ GC_API void * GC_CALL GC_gcj_malloc_ignore_off_page(size_t lb, void * ptr_to_struct_containing_descr) { ptr_t op; - ptr_t * opp; word lg; DCL_LOCK_STATE; GC_DBG_COLLECT_AT_MALLOC(lb); if(SMALL_OBJ(lb)) { lg = GC_size_map[lb]; - opp = &(GC_gcjobjfreelist[lg]); LOCK(); - op = *opp; + op = GC_gcjobjfreelist[lg]; if (EXPECT(0 == op, FALSE)) { maybe_finalize(); op = (ptr_t)GENERAL_MALLOC_INNER_IOP(lb, GC_gcj_kind); @@ -257,7 +253,7 @@ GC_API void * GC_CALL GC_gcj_malloc_ignore_off_page(size_t lb, return((*oom_fn)(lb)); } } else { - *opp = obj_link(op); + GC_gcjobjfreelist[lg] = obj_link(op); GC_bytes_allocd += GRANULES_TO_BYTES(lg); } } else { -- cgit v1.2.1