diff options
-rw-r--r-- | include/gc_inline.h | 14 | ||||
-rw-r--r-- | thread_local_alloc.c | 20 |
2 files changed, 17 insertions, 17 deletions
diff --git a/include/gc_inline.h b/include/gc_inline.h index 956bf465..cafb71a5 100644 --- a/include/gc_inline.h +++ b/include/gc_inline.h @@ -157,11 +157,11 @@ GC_API GC_ATTR_MALLOC GC_ATTR_ALLOC_SIZE(1) void * GC_CALL /* the caller is responsible for supplying a cleared tiny_fl */ /* free list array. For single-threaded applications, this may be */ /* a global array. */ -# define GC_MALLOC_WORDS_KIND(result,n,tiny_fl,k,init) \ +# define GC_MALLOC_WORDS_KIND(result,n,tiny_fl,kind,init) \ do { \ - size_t grans = GC_WORDS_TO_WHOLE_GRANULES(n); \ - GC_FAST_MALLOC_GRANS(result, grans, tiny_fl, 0, k, \ - GC_malloc_kind(grans * GC_GRANULE_BYTES, k), \ + size_t granules = GC_WORDS_TO_WHOLE_GRANULES(n); \ + GC_FAST_MALLOC_GRANS(result, granules, tiny_fl, 0, kind, \ + GC_malloc_kind(granules*GC_GRANULE_BYTES, kind), \ init); \ } while (0) @@ -175,9 +175,9 @@ GC_API GC_ATTR_MALLOC GC_ATTR_ALLOC_SIZE(1) void * GC_CALL /* And once more for two word initialized objects: */ # define GC_CONS(result, first, second, tiny_fl) \ do { \ - size_t grans = GC_WORDS_TO_WHOLE_GRANULES(2); \ - GC_FAST_MALLOC_GRANS(result, grans, tiny_fl, 0, GC_I_NORMAL, \ - GC_malloc_kind(grans * GC_GRANULE_BYTES, \ + size_t granules = GC_WORDS_TO_WHOLE_GRANULES(2); \ + GC_FAST_MALLOC_GRANS(result, granules, tiny_fl, 0, GC_I_NORMAL, \ + GC_malloc_kind(granules * GC_GRANULE_BYTES, \ GC_I_NORMAL), \ *(void **)(result) = (void *)(first)); \ ((void **)(result))[1] = (void *)(second); \ diff --git a/thread_local_alloc.c b/thread_local_alloc.c index 92ae9d8e..aaebd3a8 100644 --- a/thread_local_alloc.c +++ b/thread_local_alloc.c @@ -141,15 +141,15 @@ GC_INNER void GC_destroy_thread_local(GC_tlfs p) # endif } -GC_API GC_ATTR_MALLOC void * GC_CALL GC_malloc_kind(size_t bytes, int knd) +GC_API GC_ATTR_MALLOC void * GC_CALL GC_malloc_kind(size_t bytes, int kind) { size_t granules; void *tsd; void *result; # if MAXOBJKINDS > THREAD_FREELISTS_KINDS - if (EXPECT(knd >= THREAD_FREELISTS_KINDS, FALSE)) { - return GC_malloc_kind_global(bytes, knd); + if (EXPECT(kind >= THREAD_FREELISTS_KINDS, FALSE)) { + return GC_malloc_kind_global(bytes, kind); } # endif # if !defined(USE_PTHREAD_SPECIFIC) && !defined(USE_WIN32_SPECIFIC) @@ -159,31 +159,31 @@ GC_API GC_ATTR_MALLOC void * GC_CALL GC_malloc_kind(size_t bytes, int knd) if (EXPECT(0 == k, FALSE)) { /* We haven't yet run GC_init_parallel. That means */ /* we also aren't locking, so this is fairly cheap. */ - return GC_malloc_kind_global(bytes, knd); + return GC_malloc_kind_global(bytes, kind); } tsd = GC_getspecific(k); } # else if (!EXPECT(keys_initialized, TRUE)) - return GC_malloc_kind_global(bytes, knd); + return GC_malloc_kind_global(bytes, kind); tsd = GC_getspecific(GC_thread_key); # endif # if !defined(USE_COMPILER_TLS) && !defined(USE_WIN32_COMPILER_TLS) if (EXPECT(0 == tsd, FALSE)) { - return GC_malloc_kind_global(bytes, knd); + return GC_malloc_kind_global(bytes, kind); } # endif GC_ASSERT(GC_is_initialized); GC_ASSERT(GC_is_thread_tsd_valid(tsd)); granules = ROUNDED_UP_GRANULES(bytes); GC_FAST_MALLOC_GRANS(result, granules, - ((GC_tlfs)tsd) -> _freelists[knd], DIRECT_GRANULES, - knd, GC_malloc_kind_global(bytes, knd), - (void)(knd == PTRFREE ? NULL + ((GC_tlfs)tsd) -> _freelists[kind], DIRECT_GRANULES, + kind, GC_malloc_kind_global(bytes, kind), + (void)(kind == PTRFREE ? NULL : (obj_link(result) = 0))); # ifdef LOG_ALLOCS GC_log_printf("GC_malloc_kind(%lu, %d) returned %p, recent GC #%lu\n", - (unsigned long)bytes, knd, result, + (unsigned long)bytes, kind, result, (unsigned long)GC_gc_no); # endif return result; |