summaryrefslogtreecommitdiff
path: root/typd_mlc.c
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2013-12-15 20:36:45 +0400
committerIvan Maidanski <ivmai@mail.ru>2013-12-15 20:36:45 +0400
commit32b12154933124a899dae65c1e2a993e814e60c1 (patch)
treef6c90428733d224351f7ea83fce77e57f7892bb2 /typd_mlc.c
parentfae0f4b8139040c77d54449d976276bc53653990 (diff)
downloadbdwgc-32b12154933124a899dae65c1e2a993e814e60c1.tar.gz
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 <kind>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.
Diffstat (limited to 'typd_mlc.c')
-rw-r--r--typd_mlc.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/typd_mlc.c b/typd_mlc.c
index 00f78ce5..1c546ed7 100644
--- a/typd_mlc.c
+++ b/typd_mlc.c
@@ -584,7 +584,6 @@ GC_API GC_descr GC_CALL GC_make_descriptor(const GC_word * bm, size_t len)
GC_API void * GC_CALL GC_malloc_explicitly_typed(size_t lb, GC_descr d)
{
ptr_t op;
- ptr_t * opp;
size_t lg;
DCL_LOCK_STATE;
@@ -592,16 +591,15 @@ GC_API void * GC_CALL GC_malloc_explicitly_typed(size_t lb, GC_descr d)
if(SMALL_OBJ(lb)) {
GC_DBG_COLLECT_AT_MALLOC(lb);
lg = GC_size_map[lb];
- opp = &(GC_eobjfreelist[lg]);
LOCK();
- op = *opp;
+ op = GC_eobjfreelist[lg];
if (EXPECT(0 == op, FALSE)) {
UNLOCK();
op = (ptr_t)GENERAL_MALLOC((word)lb, GC_explicit_kind);
if (0 == op) return 0;
lg = GC_size_map[lb]; /* May have been uninitialized. */
} else {
- *opp = obj_link(op);
+ GC_eobjfreelist[lg] = obj_link(op);
obj_link(op) = 0;
GC_bytes_allocd += GRANULES_TO_BYTES(lg);
UNLOCK();
@@ -621,24 +619,22 @@ GC_API void * GC_CALL GC_malloc_explicitly_typed_ignore_off_page(size_t lb,
GC_descr d)
{
ptr_t op;
- ptr_t * opp;
size_t lg;
DCL_LOCK_STATE;
lb += TYPD_EXTRA_BYTES;
- if( SMALL_OBJ(lb) ) {
+ if (SMALL_OBJ(lb)) {
GC_DBG_COLLECT_AT_MALLOC(lb);
lg = GC_size_map[lb];
- opp = &(GC_eobjfreelist[lg]);
LOCK();
- op = *opp;
+ op = GC_eobjfreelist[lg];
if (EXPECT(0 == op, FALSE)) {
UNLOCK();
op = (ptr_t)GENERAL_MALLOC_IOP(lb, GC_explicit_kind);
if (0 == op) return 0;
lg = GC_size_map[lb]; /* May have been uninitialized. */
} else {
- *opp = obj_link(op);
+ GC_eobjfreelist[lg] = obj_link(op);
obj_link(op) = 0;
GC_bytes_allocd += GRANULES_TO_BYTES(lg);
UNLOCK();
@@ -658,7 +654,6 @@ GC_API void * GC_CALL GC_calloc_explicitly_typed(size_t n, size_t lb,
GC_descr d)
{
ptr_t op;
- ptr_t * opp;
size_t lg;
GC_descr simple_descr;
complex_descriptor *complex_descr;
@@ -682,16 +677,15 @@ GC_API void * GC_CALL GC_calloc_explicitly_typed(size_t n, size_t lb,
}
if( SMALL_OBJ(lb) ) {
lg = GC_size_map[lb];
- opp = &(GC_arobjfreelist[lg]);
LOCK();
- op = *opp;
+ op = GC_arobjfreelist[lg];
if (EXPECT(0 == op, FALSE)) {
UNLOCK();
op = (ptr_t)GENERAL_MALLOC((word)lb, GC_array_kind);
if (0 == op) return(0);
lg = GC_size_map[lb]; /* May have been uninitialized. */
} else {
- *opp = obj_link(op);
+ GC_arobjfreelist[lg] = obj_link(op);
obj_link(op) = 0;
GC_bytes_allocd += GRANULES_TO_BYTES(lg);
UNLOCK();