123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- // 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;
- }
|