X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=libjava%2Fnogc.cc;h=079422d0911d1e0a47c21e9c564e76910f5ddadb;hb=2e20bed6f20f053b4699986d82389d225cfdb85d;hp=1524139079a7921670c8779528a9263907f3a450;hpb=88abbcd52962dcc832891d805f8519c33f93872a;p=pf3gnuchains%2Fgcc-fork.git diff --git a/libjava/nogc.cc b/libjava/nogc.cc index 1524139079a..079422d0911 100644 --- a/libjava/nogc.cc +++ b/libjava/nogc.cc @@ -1,6 +1,7 @@ -// nogc.cc - Code to implement no GC. +// nogc.cc - Implement null garbage collector. -/* Copyright (C) 1998, 1999 Free Software Foundation +/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2006, 2007 + Free Software Foundation This file is part of libgcj. @@ -20,26 +21,65 @@ details. */ static long total = 0; void * -_Jv_AllocObj (jsize size) +_Jv_BuildGCDescr(jclass) +{ + return 0; +} + +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); + 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 *) { @@ -59,6 +99,11 @@ _Jv_RunAllFinalizers (void) } void +_Jv_GCInitializeFinalizers (void (*) (void)) +{ +} + +void _Jv_RunGC (void) { } @@ -76,12 +121,22 @@ _Jv_GCFreeMemory (void) } void -_Jv_GCSetInitialHeapSize (size_t size) +_Jv_GCSetInitialHeapSize (size_t) { } void -_Jv_GCSetMaximumHeapSize (size_t size) +_Jv_GCSetMaximumHeapSize (size_t) +{ +} + +void +_Jv_DisableGC (void) +{ +} + +void +_Jv_EnableGC (void) { } @@ -89,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; +}