source: vendor/gcc/3.2.2/libjava/nogc.cc

Last change on this file was 2, checked in by bird, 22 years ago

Initial revision

  • Property cvs2svn:cvs-rev set to 1.1
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 2.4 KB
Line 
1// nogc.cc - Implement null garbage collector.
2
3/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation
4
5 This file is part of libgcj.
6
7This software is copyrighted work licensed under the terms of the
8Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
9details. */
10
11#include <config.h>
12
13#include <stdio.h>
14#include <stdlib.h>
15
16#include <gcj/cni.h>
17#include <jvm.h>
18
19// Total amount of memory allocated.
20static long total = 0;
21
22void *
23_Jv_BuildGCDescr(jclass)
24{
25 return 0;
26}
27
28void *
29_Jv_AllocObj (jsize size, jclass klass)
30{
31 total += size;
32 void *obj = calloc (size, 1);
33 if (!obj) _Jv_ThrowNoMemory();
34 *((_Jv_VTable **) obj) = klass->vtable;
35 return obj;
36}
37
38void *
39_Jv_AllocPtrFreeObj (jsize size, jclass klass)
40{
41 total += size;
42 void *obj = calloc (size, 1);
43 if (!obj) _Jv_ThrowNoMemory();
44 *((_Jv_VTable **) obj) = klass->vtable;
45 return obj;
46}
47
48void *
49_Jv_AllocArray (jsize size, jclass klass)
50{
51 total += size;
52 void *obj = calloc (size, 1);
53 if (!obj) _Jv_ThrowNoMemory();
54 *((_Jv_VTable **) obj) = klass->vtable;
55 return obj;
56}
57
58void *
59_Jv_AllocBytes (jsize size)
60{
61 total += size;
62 void *obj = calloc (size, 1);
63 if (!obj) _Jv_ThrowNoMemory();
64 return obj;
65}
66
67void *
68_Jv_AllocRawObj (jsize size)
69{
70 total += size;
71 return calloc (size, 1);
72}
73
74void
75_Jv_RegisterFinalizer (void *, _Jv_FinalizerFunc *)
76{
77 // FIXME: should actually register so that finalizers can be run on
78 // exit.
79}
80
81void
82_Jv_RunFinalizers (void)
83{
84}
85
86void
87_Jv_RunAllFinalizers (void)
88{
89 // FIXME: should still run all finalizers.
90}
91
92void
93_Jv_GCInitializeFinalizers (void (*) (void))
94{
95}
96
97void
98_Jv_RunGC (void)
99{
100}
101
102long
103_Jv_GCTotalMemory (void)
104{
105 return total;
106}
107
108long
109_Jv_GCFreeMemory (void)
110{
111 return 0;
112}
113
114void
115_Jv_GCSetInitialHeapSize (size_t)
116{
117}
118
119void
120_Jv_GCSetMaximumHeapSize (size_t)
121{
122}
123
124void
125_Jv_DisableGC (void)
126{
127}
128
129void
130_Jv_EnableGC (void)
131{
132}
133
134void
135_Jv_InitGC (void)
136{
137}
138
139void
140_Jv_GCRegisterDisappearingLink (jobject *)
141{
142}
143
144jboolean
145_Jv_GCCanReclaimSoftReference (jobject)
146{
147 // For now, always reclaim soft references. FIXME.
148 return true;
149}
150
151#ifdef JV_HASH_SYNCHRONIZATION
152void *
153_Jv_AllocTraceOne (jsize size /* includes vtable slot */)
154{
155 void *obj = calloc(size, 1);
156 if (!obj) _Jv_ThrowNoMemory();
157 return result;
158}
159
160void *
161_Jv_AllocTraceTwo (jsize size /* includes vtable slot */)
162{
163 void *obj = calloc(size, 1);
164 if (!obj) _Jv_ThrowNoMemory();
165 return result;
166}
167#endif /* JV_HASH_SYNCHRONIZATION */
Note: See TracBrowser for help on using the repository browser.