summaryrefslogtreecommitdiffstats
path: root/libjava/include
diff options
context:
space:
mode:
authorhboehm <hboehm@138bc75d-0d04-0410-961f-82ee72b054a4>2001-10-25 17:29:41 +0000
committerhboehm <hboehm@138bc75d-0d04-0410-961f-82ee72b054a4>2001-10-25 17:29:41 +0000
commita82df0bf4778ebe8e46c30c1834b19f91960f69e (patch)
tree57ca073a3cb01dbb67e2b5e4532948f28c504d56 /libjava/include
parent083d802892e033570afe95b46895c619d5e8356a (diff)
downloadppe42-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.h20
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;
}
OpenPOWER on IntegriCloud