diff options
| author | hboehm <hboehm@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-25 17:29:41 +0000 |
|---|---|---|
| committer | hboehm <hboehm@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-25 17:29:41 +0000 |
| commit | a82df0bf4778ebe8e46c30c1834b19f91960f69e (patch) | |
| tree | 57ca073a3cb01dbb67e2b5e4532948f28c504d56 /libjava/include | |
| parent | 083d802892e033570afe95b46895c619d5e8356a (diff) | |
| download | ppe42-gcc-a82df0bf4778ebe8e46c30c1834b19f91960f69e.tar.gz ppe42-gcc-a82df0bf4778ebe8e46c30c1834b19f91960f69e.zip | |
* 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
Diffstat (limited to 'libjava/include')
| -rw-r--r-- | libjava/include/boehm-gc.h | 20 |
1 files changed, 18 insertions, 2 deletions
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; } |

