From: hboehm Date: Thu, 25 Oct 2001 17:29:41 +0000 (+0000) Subject: * include/boehm-gc.h: Call thread local allocation functions X-Git-Url: http://git.sourceforge.jp/view?a=commitdiff_plain;h=a82df0bf4778ebe8e46c30c1834b19f91960f69e;p=pf3gnuchains%2Fgcc-fork.git * 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 --- diff --git a/libjava/ChangeLog b/libjava/ChangeLog index a01c02ebb35..939f044f4e5 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2001-10-25 Hans Boehm + + * include/boehm-gc.h: Call thread local allocation functions + if THREAD_LOCAL_ALLOC is defined. + 2001-10-25 Bryce McKinlay * java/lang/natClassLoader.cc (_Jv_RegisterClassHookDefault): Use 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; }