summaryrefslogtreecommitdiff
path: root/libjava/nogc.cc
diff options
context:
space:
mode:
authorupstream source tree <ports@midipix.org>2015-03-15 20:14:05 -0400
committerupstream source tree <ports@midipix.org>2015-03-15 20:14:05 -0400
commit554fd8c5195424bdbcabf5de30fdc183aba391bd (patch)
tree976dc5ab7fddf506dadce60ae936f43f58787092 /libjava/nogc.cc
downloadcbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.bz2
cbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.xz
obtained gcc-4.6.4.tar.bz2 from upstream website;upstream
verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository.
Diffstat (limited to 'libjava/nogc.cc')
-rw-r--r--libjava/nogc.cc192
1 files changed, 192 insertions, 0 deletions
diff --git a/libjava/nogc.cc b/libjava/nogc.cc
new file mode 100644
index 000000000..079422d09
--- /dev/null
+++ b/libjava/nogc.cc
@@ -0,0 +1,192 @@
+// nogc.cc - Implement null garbage collector.
+
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2006, 2007
+ Free Software Foundation
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <gcj/cni.h>
+#include <jvm.h>
+
+// Total amount of memory allocated.
+static long total = 0;
+
+void *
+_Jv_BuildGCDescr(jclass)
+{
+ return 0;
+}
+
+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;
+}
+
+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;
+ 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 *)
+{
+ // FIXME: should actually register so that finalizers can be run on
+ // exit.
+}
+
+void
+_Jv_RunFinalizers (void)
+{
+}
+
+void
+_Jv_RunAllFinalizers (void)
+{
+ // FIXME: should still run all finalizers.
+}
+
+void
+_Jv_GCInitializeFinalizers (void (*) (void))
+{
+}
+
+void
+_Jv_RunGC (void)
+{
+}
+
+long
+_Jv_GCTotalMemory (void)
+{
+ return total;
+}
+
+long
+_Jv_GCFreeMemory (void)
+{
+ return 0;
+}
+
+void
+_Jv_GCSetInitialHeapSize (size_t)
+{
+}
+
+void
+_Jv_GCSetMaximumHeapSize (size_t)
+{
+}
+
+void
+_Jv_DisableGC (void)
+{
+}
+
+void
+_Jv_EnableGC (void)
+{
+}
+
+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;
+}