OSDN Git Service

2011-07-12 Andrew Haley <aph@redhat.com>
[pf3gnuchains/gcc-fork.git] / libjava / nogc.cc
index 0829671..079422d 100644 (file)
@@ -1,6 +1,7 @@
 // nogc.cc - Implement null garbage collector.
 
-/* Copyright (C) 1998, 1999, 2000  Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2006, 2007
+   Free Software Foundation
 
    This file is part of libgcj.
 
@@ -19,19 +20,28 @@ details.  */
 // Total amount of memory allocated.
 static long total = 0;
 
-#ifdef INTERPRETER
 void *
-_Jv_BuildGCDescr(jclass klass)
+_Jv_BuildGCDescr(jclass)
 {
   return 0;
 }
-#endif
 
 void *
 _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;
+  void *obj = calloc (size, 1);
+  if (!obj) _Jv_ThrowNoMemory();
   *((_Jv_VTable **) obj) = klass->vtable;
   return obj;
 }
@@ -41,6 +51,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,9 +60,26 @@ void *
 _Jv_AllocBytes (jsize size)
 {
   total += size;
+  void *obj = calloc (size, 1);
+  if (!obj) _Jv_ThrowNoMemory();
+  return obj;
+}
+
+void *
+_Jv_AllocRawObj (jsize size)
+{
+  total += size;
   return calloc (size, 1);
 }
 
+_Jv_ClosureList **
+_Jv_ClosureListFinalizer ()
+{
+  _Jv_ClosureList **clpp;
+  clpp = (_Jv_ClosureList **)_Jv_AllocBytes (sizeof (*clpp));
+  return clpp;
+}
+
 void
 _Jv_RegisterFinalizer (void *, _Jv_FinalizerFunc *)
 {
@@ -71,6 +99,11 @@ _Jv_RunAllFinalizers (void)
 }
 
 void
+_Jv_GCInitializeFinalizers (void (*) (void))
+{
+}
+
+void
 _Jv_RunGC (void)
 {
 }
@@ -88,12 +121,12 @@ _Jv_GCFreeMemory (void)
 }
 
 void
-_Jv_GCSetInitialHeapSize (size_t size)
+_Jv_GCSetInitialHeapSize (size_t)
 {
 }
 
 void
-_Jv_GCSetMaximumHeapSize (size_t size)
+_Jv_GCSetMaximumHeapSize (size_t)
 {
 }
 
@@ -111,3 +144,49 @@ void
 _Jv_InitGC (void)
 {
 }
+
+void
+_Jv_GCRegisterDisappearingLink (jobject *)
+{
+}
+
+jboolean
+_Jv_GCCanReclaimSoftReference (jobject)
+{
+  // For now, always reclaim soft references.  FIXME.
+  return true;
+}
+
+#ifdef JV_HASH_SYNCHRONIZATION
+void *
+_Jv_AllocTraceOne (jsize size /* includes vtable slot */) 
+{
+  void *obj = calloc(size, 1);
+  if (!obj) _Jv_ThrowNoMemory();
+  return result;
+}
+
+void *
+_Jv_AllocTraceTwo (jsize size /* includes vtable slot */) 
+{
+  void *obj = calloc(size, 1);
+  if (!obj) _Jv_ThrowNoMemory();
+  return result;
+}
+#endif /* JV_HASH_SYNCHRONIZATION */
+
+void
+_Jv_SuspendThread (_Jv_Thread_t *thread)
+{
+}
+
+void
+_Jv_ResumeThread (_Jv_Thread_t *thread)
+{
+}
+
+int
+_Jv_IsThreadSuspended (_Jv_Thread_t *thread)
+{
+  return 0;
+}