mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			193 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			193 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C++
		
	
	
	
| // 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;
 | |
| }
 |