-// nogc.cc - Code to implement no GC.
+// nogc.cc - Implement null garbage collector.
-/* Copyright (C) 1998, 1999 Cygnus Solutions
+/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation
This file is part of libgcj.
// Total amount of memory allocated.
static long total = 0;
+#ifdef INTERPRETER
void *
-_Jv_AllocObj (jsize size)
+_Jv_BuildGCDescr(jclass klass)
+{
+ return 0;
+}
+#endif
+
+void *
+_Jv_AllocObj (jsize size, jclass klass)
{
total += size;
- return calloc (size, 1);
+ void *obj = calloc (size, 1);
+ if (!obj) _Jv_ThrowNoMemory();
+ *((_Jv_VTable **) obj) = klass->vtable;
+ return obj;
}
void *
-_Jv_AllocArray (jsize size)
+_Jv_AllocPtrFreeObj (jsize size, jclass klass)
{
total += size;
- return calloc (size, 1);
+ ptr_t obj = malloc (size, 1);
+ if (!obj) _Jv_ThrowNoMemory();
+ *((_Jv_VTable **) obj) = klass->vtable;
+ return obj;
+}
+
+void *
+_Jv_AllocArray (jsize size, jclass klass)
+{
+ total += size;
+ void *obj = calloc (size, 1);
+ if (!obj) _Jv_ThrowNoMemory();
+ *((_Jv_VTable **) obj) = klass->vtable;
+ return obj;
}
void *
_Jv_AllocBytes (jsize size)
{
total += size;
+ ptr_t obj = calloc (size, 1);
+ if (!obj) _Jv_ThrowNoMemory();
+ return obj;
+}
+
+void *
+_Jv_AllocRawObj (jsize size)
+{
+ total += size;
return calloc (size, 1);
}
}
void
+_Jv_DisableGC (void)
+{
+}
+
+void
+_Jv_EnableGC (void)
+{
+}
+
+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 */