diff options
Diffstat (limited to 'libjava/nogc.cc')
-rw-r--r-- | libjava/nogc.cc | 192 |
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; +} |