X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=libjava%2Fnogc.cc;h=e81fbe18714cd7bb2d676c3ebfaccbaed0eb9655;hb=9ff2b59f9f48e8380e265ef24e5f5aa2a08f0e8c;hp=3a31092ab6654d82f0971f9ae69f38d220d94dfc;hpb=5e25b6c0051d1080d65f763ab41fdd3ccf4c0266;p=pf3gnuchains%2Fgcc-fork.git diff --git a/libjava/nogc.cc b/libjava/nogc.cc index 3a31092ab66..e81fbe18714 100644 --- a/libjava/nogc.cc +++ b/libjava/nogc.cc @@ -1,6 +1,6 @@ -// 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, 2002 Free Software Foundation This file is part of libgcj. @@ -20,23 +20,54 @@ 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); } @@ -59,6 +90,11 @@ _Jv_RunAllFinalizers (void) } void +_Jv_GCInitializeFinalizers (void (*) (void)) +{ +} + +void _Jv_RunGC (void) { } @@ -76,6 +112,56 @@ _Jv_GCFreeMemory (void) } 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 */