summaryrefslogtreecommitdiff
path: root/libjava/nogc.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/nogc.cc')
-rw-r--r--libjava/nogc.cc28
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 */