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
This commit is contained in:
parent
cdd90341d6
commit
e16ffa0d61
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user