From a82df0bf4778ebe8e46c30c1834b19f91960f69e Mon Sep 17 00:00:00 2001 From: hboehm Date: Thu, 25 Oct 2001 17:29:41 +0000 Subject: * include/boehm-gc.h: Call thread local allocation functions if THREAD_LOCAL_ALLOC is defined. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46490 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/include/boehm-gc.h | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'libjava/include') diff --git a/libjava/include/boehm-gc.h b/libjava/include/boehm-gc.h index cd421a44358..6c60c794502 100644 --- a/libjava/include/boehm-gc.h +++ b/libjava/include/boehm-gc.h @@ -28,23 +28,39 @@ extern "C" extern "C" void * GC_gcj_malloc(size_t, void *); extern "C" void * GC_malloc_atomic(size_t); +#ifdef THREAD_LOCAL_ALLOC +extern "C" void * GC_local_gcj_malloc(size_t, void *); +extern "C" void * GC_local_malloc_atomic(size_t); +#endif inline void * _Jv_AllocObj (jsize size, jclass klass) { // This should call GC_GCJ_MALLOC, but that would involve // including gc.h. +#ifdef THREAD_LOCAL_ALLOC + return GC_local_gcj_malloc (size, klass->vtable); +#else return GC_gcj_malloc (size, klass->vtable); +#endif } inline void * _Jv_AllocPtrFreeObj (jsize size, jclass klass) { #ifdef JV_HASH_SYNCHRONIZATION - void * obj = GC_malloc_atomic(size); +# ifdef THREAD_LOCAL_ALLOC + void * obj = GC_local_malloc_atomic(size); +# else + void * obj = GC_malloc_atomic(size); +# endif *((_Jv_VTable **) obj) = klass->vtable; #else - void * obj = GC_gcj_malloc(size, klass->vtable); +# ifdef THREAD_LOCAL_ALLOC + void * obj = GC_local_gcj_malloc(size, klass->vtable); +# else + void * obj = GC_gcj_malloc(size, klass->vtable); +# endif #endif return obj; } -- cgit v1.2.3