OSDN Git Service

* include/gc_pthread_redirects.h: Generalize test to use GC_PTHREADS.
[pf3gnuchains/gcc-fork.git] / libjava / nogc.cc
1 // nogc.cc - Implement null garbage collector.
2
3 /* Copyright (C) 1998, 1999, 2000, 2001  Free Software Foundation
4
5    This file is part of libgcj.
6
7 This software is copyrighted work licensed under the terms of the
8 Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
9 details.  */
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.
20 static long total = 0;
21
22 #ifdef INTERPRETER
23 void *
24 _Jv_BuildGCDescr(jclass klass)
25 {
26   return 0;
27 }
28 #endif
29
30 void *
31 _Jv_AllocObj (jsize size, jclass klass)
32 {
33   total += size;
34   void *obj = calloc (size, 1);
35   if (!obj) _Jv_ThrowNoMemory();
36   *((_Jv_VTable **) obj) = klass->vtable;
37   return obj;
38 }
39
40 void *
41 _Jv_AllocPtrFreeObj (jsize size, jclass klass)
42 {
43   total += size;
44   ptr_t obj = malloc (size, 1);
45   if (!obj) _Jv_ThrowNoMemory();
46   *((_Jv_VTable **) obj) = klass->vtable;
47   return obj;
48 }
49
50 void *
51 _Jv_AllocArray (jsize size, jclass klass)
52 {
53   total += size;
54   void *obj = calloc (size, 1);
55   if (!obj) _Jv_ThrowNoMemory();
56   *((_Jv_VTable **) obj) = klass->vtable;
57   return obj;
58 }
59
60 void *
61 _Jv_AllocBytes (jsize size)
62 {
63   total += size;
64   ptr_t obj = calloc (size, 1);
65   if (!obj) _Jv_ThrowNoMemory();
66   return obj;
67 }
68
69 void *
70 _Jv_AllocRawObj (jsize size)
71 {
72   total += size;
73   return calloc (size, 1);
74 }
75
76 void
77 _Jv_RegisterFinalizer (void *, _Jv_FinalizerFunc *)
78 {
79   // FIXME: should actually register so that finalizers can be run on
80   // exit.
81 }
82
83 void
84 _Jv_RunFinalizers (void)
85 {
86 }
87
88 void
89 _Jv_RunAllFinalizers (void)
90 {
91   // FIXME: should still run all finalizers.
92 }
93
94 void
95 _Jv_GCInitializeFinalizers (void (*) (void))
96 {
97 }
98
99 void
100 _Jv_RunGC (void)
101 {
102 }
103
104 long
105 _Jv_GCTotalMemory (void)
106 {
107   return total;
108 }
109
110 long
111 _Jv_GCFreeMemory (void)
112 {
113   return 0;
114 }
115
116 void
117 _Jv_GCSetInitialHeapSize (size_t size)
118 {
119 }
120
121 void
122 _Jv_GCSetMaximumHeapSize (size_t size)
123 {
124 }
125
126 void
127 _Jv_DisableGC (void)
128 {
129 }
130
131 void
132 _Jv_EnableGC (void)
133 {
134 }
135
136 void
137 _Jv_InitGC (void)
138 {
139 }
140
141 #ifdef JV_HASH_SYNCHRONIZATION
142 void *
143 _Jv_AllocTraceOne (jsize size /* includes vtable slot */) 
144 {
145   ptr_t obj = calloc(size, 1);
146   if (!obj) _Jv_ThrowNoMemory();
147   return result;
148 }
149
150 void *
151 _Jv_AllocTraceTwo (jsize size /* includes vtable slot */) 
152 {
153   ptr_t obj = calloc(size, 1);
154   if (!obj) _Jv_ThrowNoMemory();
155   return result;
156 }
157 #endif /* JV_HASH_SYNCHRONIZATION */