1 2 #include "xmlvm.h" 3 #include "org_xmlvm_runtime_FinalizerNotifier.h" 4 5 6 //XMLVM_BEGIN_NATIVE_IMPLEMENTATION 7 //XMLVM_END_NATIVE_IMPLEMENTATION 8 org_xmlvm_runtime_FinalizerNotifier_preventGarbageCollection___boolean(JAVA_BOOLEAN n1)9void org_xmlvm_runtime_FinalizerNotifier_preventGarbageCollection___boolean(JAVA_BOOLEAN n1) 10 { 11 //XMLVM_BEGIN_NATIVE[org_xmlvm_runtime_FinalizerNotifier_preventGarbageCollection___boolean] 12 #ifndef XMLVM_NO_GC 13 if (n1) { 14 // Disable garbage collection. Even GC_gcollect calls will be ineffective. 15 GC_disable(); 16 } else { 17 // Reenable garbage collection. GC_disable() and GC_enable() calls 18 // nest. Garbage collection is enabled if the number of calls to both 19 // functions is equal. 20 GC_enable(); 21 } 22 #endif 23 //XMLVM_END_NATIVE 24 } 25 org_xmlvm_runtime_FinalizerNotifier_currentThreadIsFinalizerThread___java_lang_Thread(JAVA_OBJECT n1)26JAVA_BOOLEAN org_xmlvm_runtime_FinalizerNotifier_currentThreadIsFinalizerThread___java_lang_Thread(JAVA_OBJECT n1) 27 { 28 //XMLVM_BEGIN_NATIVE[org_xmlvm_runtime_FinalizerNotifier_currentThreadIsFinalizerThread___java_lang_Thread] 29 30 // Determine if the current thread is the finalizer thread (the 1st 31 // parameter). 32 33 // This method is native since any methods added to proxy classes are not 34 // visible to this class, such as Thread.getCurrentThreadNativeId(). 35 36 // return Thread.getCurrentThreadNativeId() == finalizerThread.getNativeThreadId(); 37 return java_lang_Thread_getCurrentThreadNativeId__() == java_lang_Thread_getNativeThreadId__(n1); 38 39 //XMLVM_END_NATIVE 40 } 41 org_xmlvm_runtime_FinalizerNotifier_shouldInvokeFinalizers__()42JAVA_BOOLEAN org_xmlvm_runtime_FinalizerNotifier_shouldInvokeFinalizers__() 43 { 44 //XMLVM_BEGIN_NATIVE[org_xmlvm_runtime_FinalizerNotifier_shouldInvokeFinalizers__] 45 #ifndef XMLVM_NO_GC 46 return GC_should_invoke_finalizers(); 47 #else 48 return 0; 49 #endif 50 //XMLVM_END_NATIVE 51 } 52 org_xmlvm_runtime_FinalizerNotifier_invokeFinalizers__()53JAVA_INT org_xmlvm_runtime_FinalizerNotifier_invokeFinalizers__() 54 { 55 //XMLVM_BEGIN_NATIVE[org_xmlvm_runtime_FinalizerNotifier_invokeFinalizers__] 56 #ifndef XMLVM_NO_GC 57 return GC_invoke_finalizers(); 58 #else 59 return 0; 60 #endif 61 //XMLVM_END_NATIVE 62 } 63 64