1 // nogc.cc - Implement null garbage collector.
3 /* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation
5 This file is part of libgcj.
7 This software is copyrighted work licensed under the terms of the
8 Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
19 // Total amount of memory allocated.
20 static long total
= 0;
24 _Jv_BuildGCDescr(jclass klass
)
31 _Jv_AllocObj (jsize size
, jclass klass
)
34 void *obj
= calloc (size
, 1);
35 if (!obj
) _Jv_ThrowNoMemory();
36 *((_Jv_VTable
**) obj
) = klass
->vtable
;
41 _Jv_AllocPtrFreeObj (jsize size
, jclass klass
)
44 ptr_t obj
= malloc (size
, 1);
45 if (!obj
) _Jv_ThrowNoMemory();
46 *((_Jv_VTable
**) obj
) = klass
->vtable
;
51 _Jv_AllocArray (jsize size
, jclass klass
)
54 void *obj
= calloc (size
, 1);
55 if (!obj
) _Jv_ThrowNoMemory();
56 *((_Jv_VTable
**) obj
) = klass
->vtable
;
61 _Jv_AllocBytes (jsize size
)
64 ptr_t obj
= calloc (size
, 1);
65 if (!obj
) _Jv_ThrowNoMemory();
70 _Jv_RegisterFinalizer (void *, _Jv_FinalizerFunc
*)
72 // FIXME: should actually register so that finalizers can be run on
77 _Jv_RunFinalizers (void)
82 _Jv_RunAllFinalizers (void)
84 // FIXME: should still run all finalizers.
93 _Jv_GCTotalMemory (void)
99 _Jv_GCFreeMemory (void)
105 _Jv_GCSetInitialHeapSize (size_t size
)
110 _Jv_GCSetMaximumHeapSize (size_t size
)
129 #ifdef JV_HASH_SYNCHRONIZATION
131 _Jv_AllocTraceOne (jsize size
/* includes vtable slot */)
133 ptr_t obj
= calloc(size
, 1);
134 if (!obj
) _Jv_ThrowNoMemory();
137 #endif /* JV_HASH_SYNCHRONIZATION */