diff options
Diffstat (limited to 'libjava/nogc.cc')
-rw-r--r-- | libjava/nogc.cc | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/libjava/nogc.cc b/libjava/nogc.cc index 08296719cbf..7cdd5827724 100644 --- a/libjava/nogc.cc +++ b/libjava/nogc.cc @@ -1,6 +1,6 @@ // nogc.cc - Implement null garbage collector. -/* Copyright (C) 1998, 1999, 2000 Free Software Foundation +/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation This file is part of libgcj. @@ -32,6 +32,17 @@ _Jv_AllocObj (jsize size, jclass klass) { total += size; void *obj = calloc (size, 1); + if (!obj) _Jv_ThrowNoMemory(); + *((_Jv_VTable **) obj) = klass->vtable; + return obj; +} + +void * +_Jv_AllocPtrFreeObj (jsize size, jclass klass) +{ + total += size; + ptr_t obj = malloc (size, 1); + if (!obj) _Jv_ThrowNoMemory(); *((_Jv_VTable **) obj) = klass->vtable; return obj; } @@ -41,6 +52,7 @@ _Jv_AllocArray (jsize size, jclass klass) { total += size; void *obj = calloc (size, 1); + if (!obj) _Jv_ThrowNoMemory(); *((_Jv_VTable **) obj) = klass->vtable; return obj; } @@ -49,7 +61,9 @@ void * _Jv_AllocBytes (jsize size) { total += size; - return calloc (size, 1); + ptr_t obj = calloc (size, 1); + if (!obj) _Jv_ThrowNoMemory(); + return obj; } void @@ -111,3 +125,13 @@ void _Jv_InitGC (void) { } + +#ifdef JV_HASH_SYNCHRONIZATION +void * +_Jv_AllocTraceOne (jsize size /* includes vtable slot */) +{ + ptr_t obj = calloc(size, 1); + if (!obj) _Jv_ThrowNoMemory(); + return result; +} +#endif /* JV_HASH_SYNCHRONIZATION */ |