diff options
author | Hans Boehm <Hans_Boehm@hp.com> | 2001-10-25 17:29:41 +0000 |
---|---|---|
committer | Hans Boehm <hboehm@gcc.gnu.org> | 2001-10-25 17:29:41 +0000 |
commit | e16ffa0d616f9e073bca1c2ad0b2521247178194 (patch) | |
tree | 57ca073a3cb01dbb67e2b5e4532948f28c504d56 /libjava | |
parent | cdd90341d6b8f78828072d555afcb2aaba80465c (diff) | |
download | gcc-e16ffa0d616f9e073bca1c2ad0b2521247178194.zip gcc-e16ffa0d616f9e073bca1c2ad0b2521247178194.tar.gz gcc-e16ffa0d616f9e073bca1c2ad0b2521247178194.tar.bz2 |
boehm-gc.h: Call thread local allocation functions if THREAD_LOCAL_ALLOC is defined.
* include/boehm-gc.h: Call thread local allocation functions
if THREAD_LOCAL_ALLOC is defined.
From-SVN: r46490
Diffstat (limited to 'libjava')
-rw-r--r-- | libjava/ChangeLog | 5 | ||||
-rw-r--r-- | libjava/include/boehm-gc.h | 20 |
2 files changed, 23 insertions, 2 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index a01c02eb..939f044 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2001-10-25 Hans Boehm <Hans_Boehm@hp.com> + + * include/boehm-gc.h: Call thread local allocation functions + if THREAD_LOCAL_ALLOC is defined. + 2001-10-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz> * java/lang/natClassLoader.cc (_Jv_RegisterClassHookDefault): Use diff --git a/libjava/include/boehm-gc.h b/libjava/include/boehm-gc.h index cd421a4..6c60c79 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; } |