diff options
Diffstat (limited to 'tests/nbody-java/java_lang_Thread.c')
-rw-r--r-- | tests/nbody-java/java_lang_Thread.c | 2378 |
1 files changed, 2378 insertions, 0 deletions
diff --git a/tests/nbody-java/java_lang_Thread.c b/tests/nbody-java/java_lang_Thread.c new file mode 100644 index 00000000..a2a0fa67 --- /dev/null +++ b/tests/nbody-java/java_lang_Thread.c @@ -0,0 +1,2378 @@ +#include "xmlvm.h" +#include "java_io_PrintStream.h" +#include "java_lang_Class.h" +#include "java_lang_ClassLoader.h" +#include "java_lang_Long.h" +#include "java_lang_StackTraceElement.h" +#include "java_lang_String.h" +#include "java_lang_StringBuilder.h" +#include "java_lang_System.h" +#include "java_lang_Thread_State.h" +#include "java_lang_Thread_UncaughtExceptionHandler.h" +#include "java_lang_ThreadGroup.h" +#include "java_lang_Throwable.h" +#include "java_util_HashMap.h" +#include "java_util_Map.h" +#include "org_xmlvm_runtime_Condition.h" +#include "org_xmlvm_runtime_Mutex.h" + +#include "java_lang_Thread.h" + +#define XMLVM_CURRENT_CLASS_NAME Thread +#define XMLVM_CURRENT_PKG_CLASS_NAME java_lang_Thread + +__TIB_DEFINITION_java_lang_Thread __TIB_java_lang_Thread = { + 0, // classInitializationBegan + 0, // classInitialized + -1, // initializerThreadId + __INIT_java_lang_Thread, // classInitializer + "java.lang.Thread", // className + "java.lang", // package + JAVA_NULL, // enclosingClassName + JAVA_NULL, // enclosingMethodName + JAVA_NULL, // signature + (__TIB_DEFINITION_TEMPLATE*) &__TIB_java_lang_Object, // extends + sizeof(java_lang_Thread), // sizeInstance + XMLVM_TYPE_CLASS}; + +JAVA_OBJECT __CLASS_java_lang_Thread; +JAVA_OBJECT __CLASS_java_lang_Thread_1ARRAY; +JAVA_OBJECT __CLASS_java_lang_Thread_2ARRAY; +JAVA_OBJECT __CLASS_java_lang_Thread_3ARRAY; +//XMLVM_BEGIN_IMPLEMENTATION +//XMLVM_END_IMPLEMENTATION + +static JAVA_OBJECT _STATIC_java_lang_Thread_threadSafetyMutex; +static JAVA_LONG _STATIC_java_lang_Thread_nextThreadId; +static JAVA_INT _STATIC_java_lang_Thread_numberOfActiveNonDaemonThreads; +static JAVA_OBJECT _STATIC_java_lang_Thread_threadMap; +static JAVA_OBJECT _STATIC_java_lang_Thread_mainThreadGroup; +static JAVA_INT _STATIC_java_lang_Thread_MAX_PRIORITY; +static JAVA_INT _STATIC_java_lang_Thread_MIN_PRIORITY; +static JAVA_INT _STATIC_java_lang_Thread_NORM_PRIORITY; + +#include "xmlvm-reflection.h" + +static XMLVM_FIELD_REFLECTION_DATA __field_reflection_data[] = { +}; + +static XMLVM_CONSTRUCTOR_REFLECTION_DATA __constructor_reflection_data[] = { +}; + +static JAVA_OBJECT constructor_dispatcher(JAVA_OBJECT constructor, JAVA_OBJECT arguments) +{ + XMLVM_NOT_IMPLEMENTED(); +} + +static XMLVM_METHOD_REFLECTION_DATA __method_reflection_data[] = { +}; + +static JAVA_OBJECT method_dispatcher(JAVA_OBJECT method, JAVA_OBJECT receiver, JAVA_OBJECT arguments) +{ + XMLVM_NOT_IMPLEMENTED(); +} + +void __INIT_java_lang_Thread() +{ + staticInitializerLock(&__TIB_java_lang_Thread); + + // While the static initializer mutex is locked, locally store the value of + // whether class initialization began or not + int initBegan = __TIB_java_lang_Thread.classInitializationBegan; + + // Whether or not class initialization had already began, it has begun now + __TIB_java_lang_Thread.classInitializationBegan = 1; + + staticInitializerUnlock(&__TIB_java_lang_Thread); + + JAVA_LONG curThreadId = (JAVA_LONG)pthread_self(); + if (initBegan) { + if (__TIB_java_lang_Thread.initializerThreadId != curThreadId) { + // Busy wait until the other thread finishes initializing this class + while (!__TIB_java_lang_Thread.classInitialized) { + // do nothing + } + } + } else { + __TIB_java_lang_Thread.initializerThreadId = curThreadId; + XMLVM_CLASS_USED("java.lang.Thread") + __INIT_IMPL_java_lang_Thread(); + } +} + +void __INIT_IMPL_java_lang_Thread() +{ + // Initialize base class if necessary + XMLVM_CLASS_INIT(java_lang_Object) + __TIB_java_lang_Thread.newInstanceFunc = __NEW_INSTANCE_java_lang_Thread; + // Copy vtable from base class + XMLVM_MEMCPY(__TIB_java_lang_Thread.vtable, __TIB_java_lang_Object.vtable, sizeof(__TIB_java_lang_Object.vtable)); + // Initialize vtable for this class + __TIB_java_lang_Thread.vtable[1] = (VTABLE_PTR) &java_lang_Thread_equals___java_lang_Object; + __TIB_java_lang_Thread.vtable[6] = (VTABLE_PTR) &java_lang_Thread_run__; + __TIB_java_lang_Thread.vtable[5] = (VTABLE_PTR) &java_lang_Thread_toString__; + xmlvm_init_native_java_lang_Thread(); + // Initialize interface information + __TIB_java_lang_Thread.numImplementedInterfaces = 1; + __TIB_java_lang_Thread.implementedInterfaces = (__TIB_DEFINITION_TEMPLATE* (*)[1]) XMLVM_MALLOC(sizeof(__TIB_DEFINITION_TEMPLATE*) * 1); + + // Initialize interfaces if necessary and assign tib to implementedInterfaces + + XMLVM_CLASS_INIT(java_lang_Runnable) + + __TIB_java_lang_Thread.implementedInterfaces[0][0] = &__TIB_java_lang_Runnable; + // Initialize itable for this class + __TIB_java_lang_Thread.itableBegin = &__TIB_java_lang_Thread.itable[0]; + __TIB_java_lang_Thread.itable[XMLVM_ITABLE_IDX_java_lang_Runnable_run__] = __TIB_java_lang_Thread.vtable[6]; + + _STATIC_java_lang_Thread_threadSafetyMutex = (org_xmlvm_runtime_Mutex*) JAVA_NULL; + _STATIC_java_lang_Thread_nextThreadId = 0; + _STATIC_java_lang_Thread_numberOfActiveNonDaemonThreads = 0; + _STATIC_java_lang_Thread_threadMap = (java_util_Map*) JAVA_NULL; + _STATIC_java_lang_Thread_mainThreadGroup = (java_lang_ThreadGroup*) JAVA_NULL; + _STATIC_java_lang_Thread_MAX_PRIORITY = 10; + _STATIC_java_lang_Thread_MIN_PRIORITY = 1; + _STATIC_java_lang_Thread_NORM_PRIORITY = 5; + + __TIB_java_lang_Thread.declaredFields = &__field_reflection_data[0]; + __TIB_java_lang_Thread.numDeclaredFields = sizeof(__field_reflection_data) / sizeof(XMLVM_FIELD_REFLECTION_DATA); + __TIB_java_lang_Thread.constructorDispatcherFunc = constructor_dispatcher; + __TIB_java_lang_Thread.declaredConstructors = &__constructor_reflection_data[0]; + __TIB_java_lang_Thread.numDeclaredConstructors = sizeof(__constructor_reflection_data) / sizeof(XMLVM_CONSTRUCTOR_REFLECTION_DATA); + __TIB_java_lang_Thread.methodDispatcherFunc = method_dispatcher; + __TIB_java_lang_Thread.declaredMethods = &__method_reflection_data[0]; + __TIB_java_lang_Thread.numDeclaredMethods = sizeof(__method_reflection_data) / sizeof(XMLVM_METHOD_REFLECTION_DATA); + __CLASS_java_lang_Thread = XMLVM_CREATE_CLASS_OBJECT(&__TIB_java_lang_Thread); + __TIB_java_lang_Thread.clazz = __CLASS_java_lang_Thread; + __TIB_java_lang_Thread.baseType = JAVA_NULL; + __CLASS_java_lang_Thread_1ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_java_lang_Thread); + __CLASS_java_lang_Thread_2ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_java_lang_Thread_1ARRAY); + __CLASS_java_lang_Thread_3ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_java_lang_Thread_2ARRAY); + java_lang_Thread___CLINIT_(); + //XMLVM_BEGIN_WRAPPER[__INIT_java_lang_Thread] + //XMLVM_END_WRAPPER + + __TIB_java_lang_Thread.classInitialized = 1; +} + +void __DELETE_java_lang_Thread(void* me, void* client_data) +{ + //XMLVM_BEGIN_WRAPPER[__DELETE_java_lang_Thread] + //XMLVM_END_WRAPPER +} + +void __INIT_INSTANCE_MEMBERS_java_lang_Thread(JAVA_OBJECT me, int derivedClassWillRegisterFinalizer) +{ + __INIT_INSTANCE_MEMBERS_java_lang_Object(me, 0 || derivedClassWillRegisterFinalizer); + ((java_lang_Thread*) me)->fields.java_lang_Thread.xmlvmExceptionEnv_ = (java_lang_Object*) JAVA_NULL; + ((java_lang_Thread*) me)->fields.java_lang_Thread.xmlvmException_ = (java_lang_Object*) JAVA_NULL; + ((java_lang_Thread*) me)->fields.java_lang_Thread.ptBuffers_ = (java_lang_Object*) JAVA_NULL; + ((java_lang_Thread*) me)->fields.java_lang_Thread.threadId_ = 0; + ((java_lang_Thread*) me)->fields.java_lang_Thread.threadName_ = (java_lang_String*) JAVA_NULL; + ((java_lang_Thread*) me)->fields.java_lang_Thread.priority_ = 0; + ((java_lang_Thread*) me)->fields.java_lang_Thread.daemon_ = 0; + ((java_lang_Thread*) me)->fields.java_lang_Thread.alive_ = 0; + ((java_lang_Thread*) me)->fields.java_lang_Thread.targetRunnable_ = (java_lang_Runnable*) JAVA_NULL; + ((java_lang_Thread*) me)->fields.java_lang_Thread.threadGroup_ = (java_lang_ThreadGroup*) JAVA_NULL; + ((java_lang_Thread*) me)->fields.java_lang_Thread.threadState_ = (java_lang_Thread_State*) JAVA_NULL; + ((java_lang_Thread*) me)->fields.java_lang_Thread.interrupted_ = 0; + ((java_lang_Thread*) me)->fields.java_lang_Thread.waitingCondition_ = (org_xmlvm_runtime_Condition*) JAVA_NULL; + ((java_lang_Thread*) me)->fields.java_lang_Thread.threadLocalMap_ = (java_util_Map*) JAVA_NULL; + ((java_lang_Thread*) me)->fields.java_lang_Thread.nativeThreadId_ = 0; + ((java_lang_Thread*) me)->fields.java_lang_Thread.action_ = (java_lang_Runnable*) JAVA_NULL; + //XMLVM_BEGIN_WRAPPER[__INIT_INSTANCE_MEMBERS_java_lang_Thread] + //XMLVM_END_WRAPPER +} + +JAVA_OBJECT __NEW_java_lang_Thread() +{ XMLVM_CLASS_INIT(java_lang_Thread) +java_lang_Thread* me = (java_lang_Thread*) XMLVM_MALLOC(sizeof(java_lang_Thread)); + me->tib = &__TIB_java_lang_Thread; + __INIT_INSTANCE_MEMBERS_java_lang_Thread(me, 0); + //XMLVM_BEGIN_WRAPPER[__NEW_java_lang_Thread] + //XMLVM_END_WRAPPER + return me; +} + +JAVA_OBJECT __NEW_INSTANCE_java_lang_Thread() +{ + JAVA_OBJECT me = JAVA_NULL; + me = __NEW_java_lang_Thread(); + java_lang_Thread___INIT___(me); + return me; +} + +JAVA_OBJECT java_lang_Thread_GET_threadSafetyMutex() +{ + XMLVM_CLASS_INIT(java_lang_Thread) + return _STATIC_java_lang_Thread_threadSafetyMutex; +} + +void java_lang_Thread_PUT_threadSafetyMutex(JAVA_OBJECT v) +{ + XMLVM_CLASS_INIT(java_lang_Thread) +_STATIC_java_lang_Thread_threadSafetyMutex = v; +} + +JAVA_LONG java_lang_Thread_GET_nextThreadId() +{ + XMLVM_CLASS_INIT(java_lang_Thread) + return _STATIC_java_lang_Thread_nextThreadId; +} + +void java_lang_Thread_PUT_nextThreadId(JAVA_LONG v) +{ + XMLVM_CLASS_INIT(java_lang_Thread) +_STATIC_java_lang_Thread_nextThreadId = v; +} + +JAVA_INT java_lang_Thread_GET_numberOfActiveNonDaemonThreads() +{ + XMLVM_CLASS_INIT(java_lang_Thread) + return _STATIC_java_lang_Thread_numberOfActiveNonDaemonThreads; +} + +void java_lang_Thread_PUT_numberOfActiveNonDaemonThreads(JAVA_INT v) +{ + XMLVM_CLASS_INIT(java_lang_Thread) +_STATIC_java_lang_Thread_numberOfActiveNonDaemonThreads = v; +} + +JAVA_OBJECT java_lang_Thread_GET_threadMap() +{ + XMLVM_CLASS_INIT(java_lang_Thread) + return _STATIC_java_lang_Thread_threadMap; +} + +void java_lang_Thread_PUT_threadMap(JAVA_OBJECT v) +{ + XMLVM_CLASS_INIT(java_lang_Thread) +_STATIC_java_lang_Thread_threadMap = v; +} + +JAVA_OBJECT java_lang_Thread_GET_mainThreadGroup() +{ + XMLVM_CLASS_INIT(java_lang_Thread) + return _STATIC_java_lang_Thread_mainThreadGroup; +} + +void java_lang_Thread_PUT_mainThreadGroup(JAVA_OBJECT v) +{ + XMLVM_CLASS_INIT(java_lang_Thread) +_STATIC_java_lang_Thread_mainThreadGroup = v; +} + +JAVA_INT java_lang_Thread_GET_MAX_PRIORITY() +{ + XMLVM_CLASS_INIT(java_lang_Thread) + return _STATIC_java_lang_Thread_MAX_PRIORITY; +} + +void java_lang_Thread_PUT_MAX_PRIORITY(JAVA_INT v) +{ + XMLVM_CLASS_INIT(java_lang_Thread) +_STATIC_java_lang_Thread_MAX_PRIORITY = v; +} + +JAVA_INT java_lang_Thread_GET_MIN_PRIORITY() +{ + XMLVM_CLASS_INIT(java_lang_Thread) + return _STATIC_java_lang_Thread_MIN_PRIORITY; +} + +void java_lang_Thread_PUT_MIN_PRIORITY(JAVA_INT v) +{ + XMLVM_CLASS_INIT(java_lang_Thread) +_STATIC_java_lang_Thread_MIN_PRIORITY = v; +} + +JAVA_INT java_lang_Thread_GET_NORM_PRIORITY() +{ + XMLVM_CLASS_INIT(java_lang_Thread) + return _STATIC_java_lang_Thread_NORM_PRIORITY; +} + +void java_lang_Thread_PUT_NORM_PRIORITY(JAVA_INT v) +{ + XMLVM_CLASS_INIT(java_lang_Thread) +_STATIC_java_lang_Thread_NORM_PRIORITY = v; +} + +JAVA_LONG java_lang_Thread_getNextThreadId__() +{ + XMLVM_CLASS_INIT(java_lang_Thread) + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_getNextThreadId__] + XMLVM_ENTER_METHOD("java.lang.Thread", "getNextThreadId", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + XMLVMElem _r3; + XMLVM_SOURCE_POSITION("Thread.java", 120) + _r2.o = java_lang_Thread_GET_threadSafetyMutex(); + XMLVM_CHECK_NPE(2) + org_xmlvm_runtime_Mutex_lock__(_r2.o); + XMLVM_SOURCE_POSITION("Thread.java", 121) + _r0.l = java_lang_Thread_GET_nextThreadId(); + _r2.l = 1; + _r2.l = _r2.l + _r0.l; + java_lang_Thread_PUT_nextThreadId( _r2.l); + XMLVM_SOURCE_POSITION("Thread.java", 122) + _r2.o = java_lang_Thread_GET_threadSafetyMutex(); + XMLVM_CHECK_NPE(2) + org_xmlvm_runtime_Mutex_unlock__(_r2.o); + XMLVM_SOURCE_POSITION("Thread.java", 123) + XMLVM_EXIT_METHOD() + return _r0.l; + //XMLVM_END_WRAPPER +} + +void java_lang_Thread_addSelfToMap__(JAVA_OBJECT me) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_addSelfToMap__] + XMLVM_ENTER_METHOD("java.lang.Thread", "addSelfToMap", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + XMLVMElem _r3; + _r3.o = me; + XMLVM_SOURCE_POSITION("Thread.java", 159) + _r0.o = java_lang_Thread_GET_threadSafetyMutex(); + XMLVM_CHECK_NPE(0) + org_xmlvm_runtime_Mutex_lock__(_r0.o); + XMLVM_SOURCE_POSITION("Thread.java", 161) + _r0.o = java_lang_Thread_GET_threadMap(); + XMLVM_CHECK_NPE(3) + _r1.l = ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.nativeThreadId_; + _r1.o = java_lang_Long_valueOf___long(_r1.l); + XMLVM_CHECK_NPE(0) + (*(JAVA_OBJECT (*)(JAVA_OBJECT, JAVA_OBJECT, JAVA_OBJECT)) *(((java_lang_Object*)_r0.o)->tib->itableBegin)[XMLVM_ITABLE_IDX_java_util_Map_put___java_lang_Object_java_lang_Object])(_r0.o, _r1.o, _r3.o); + XMLVM_SOURCE_POSITION("Thread.java", 163) + _r0.o = java_lang_Thread_GET_threadSafetyMutex(); + XMLVM_CHECK_NPE(0) + org_xmlvm_runtime_Mutex_unlock__(_r0.o); + XMLVM_SOURCE_POSITION("Thread.java", 164) + XMLVM_EXIT_METHOD() + return; + //XMLVM_END_WRAPPER +} + +void java_lang_Thread_removeSelfFromMap__(JAVA_OBJECT me) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_removeSelfFromMap__] + XMLVM_ENTER_METHOD("java.lang.Thread", "removeSelfFromMap", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + XMLVMElem _r3; + _r3.o = me; + XMLVM_SOURCE_POSITION("Thread.java", 167) + _r0.o = java_lang_Thread_GET_threadSafetyMutex(); + XMLVM_CHECK_NPE(0) + org_xmlvm_runtime_Mutex_lock__(_r0.o); + XMLVM_SOURCE_POSITION("Thread.java", 169) + _r0.o = java_lang_Thread_GET_threadMap(); + XMLVM_CHECK_NPE(3) + _r1.l = ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.nativeThreadId_; + _r1.o = java_lang_Long_valueOf___long(_r1.l); + XMLVM_CHECK_NPE(0) + (*(JAVA_OBJECT (*)(JAVA_OBJECT, JAVA_OBJECT)) *(((java_lang_Object*)_r0.o)->tib->itableBegin)[XMLVM_ITABLE_IDX_java_util_Map_remove___java_lang_Object])(_r0.o, _r1.o); + XMLVM_SOURCE_POSITION("Thread.java", 171) + _r0.o = java_lang_Thread_GET_threadSafetyMutex(); + XMLVM_CHECK_NPE(0) + org_xmlvm_runtime_Mutex_unlock__(_r0.o); + XMLVM_SOURCE_POSITION("Thread.java", 172) + XMLVM_EXIT_METHOD() + return; + //XMLVM_END_WRAPPER +} + +JAVA_LONG java_lang_Thread_getNativeThreadId__(JAVA_OBJECT me) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_getNativeThreadId__] + XMLVM_ENTER_METHOD("java.lang.Thread", "getNativeThreadId", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + _r2.o = me; + XMLVM_SOURCE_POSITION("Thread.java", 177) + XMLVM_CHECK_NPE(2) + _r0.l = ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.nativeThreadId_; + XMLVM_EXIT_METHOD() + return _r0.l; + //XMLVM_END_WRAPPER +} + +void java_lang_Thread___INIT____long(JAVA_OBJECT me, JAVA_LONG n1) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread___INIT____long] + XMLVM_ENTER_METHOD("java.lang.Thread", "<init>", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + XMLVMElem _r3; + XMLVMElem _r4; + _r2.o = me; + _r3.l = n1; + _r1.i = 0; + XMLVM_SOURCE_POSITION("Thread.java", 186) + XMLVM_CHECK_NPE(2) + java_lang_Object___INIT___(_r2.o); + XMLVM_SOURCE_POSITION("Thread.java", 131) + _r0.i = 5; + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.priority_ = _r0.i; + XMLVM_SOURCE_POSITION("Thread.java", 132) + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.daemon_ = _r1.i; + XMLVM_SOURCE_POSITION("Thread.java", 133) + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.alive_ = _r1.i; + XMLVM_SOURCE_POSITION("Thread.java", 137) + _r0.o = java_lang_Thread_State_GET_NEW(); + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadState_ = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 143) + _r0.o = __NEW_java_util_HashMap(); + XMLVM_CHECK_NPE(0) + java_util_HashMap___INIT___(_r0.o); + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadLocalMap_ = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 187) + XMLVM_CHECK_NPE(2) + java_lang_Thread_initMainThread__(_r2.o); + XMLVM_SOURCE_POSITION("Thread.java", 189) + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.nativeThreadId_ = _r3.l; + XMLVM_SOURCE_POSITION("Thread.java", 192) + XMLVM_CHECK_NPE(2) + java_lang_Thread_addSelfToMap__(_r2.o); + XMLVM_SOURCE_POSITION("Thread.java", 194) + _r0.l = 1; + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadId_ = _r0.l; + XMLVM_SOURCE_POSITION("Thread.java", 195) + // "main" + _r0.o = xmlvm_create_java_string_from_pool(663); + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadName_ = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 197) + _r0.o = java_lang_Thread_GET_mainThreadGroup(); + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadGroup_ = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 198) + XMLVM_CHECK_NPE(2) + _r0.o = ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadGroup_; + XMLVM_CHECK_NPE(0) + java_lang_ThreadGroup_add___java_lang_Thread(_r0.o, _r2.o); + XMLVM_SOURCE_POSITION("Thread.java", 199) + XMLVM_EXIT_METHOD() + return; + //XMLVM_END_WRAPPER +} + +//XMLVM_NATIVE[void java_lang_Thread_initMainThread__(JAVA_OBJECT me)] + +JAVA_OBJECT java_lang_Thread_getThread___long(JAVA_LONG n1) +{ + XMLVM_CLASS_INIT(java_lang_Thread) + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_getThread___long] + XMLVM_ENTER_METHOD("java.lang.Thread", "getThread", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + XMLVMElem _r3; + XMLVMElem _r4; + _r3.l = n1; + XMLVM_SOURCE_POSITION("Thread.java", 211) + _r0.o = JAVA_NULL; + XMLVM_SOURCE_POSITION("Thread.java", 212) + _r1.o = java_lang_Thread_GET_threadSafetyMutex(); + XMLVM_CHECK_NPE(1) + org_xmlvm_runtime_Mutex_lock__(_r1.o); + XMLVM_SOURCE_POSITION("Thread.java", 214) + _r1.o = java_lang_Thread_GET_threadMap(); + _r2.o = java_lang_Long_valueOf___long(_r3.l); + XMLVM_CHECK_NPE(1) + _r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT, JAVA_OBJECT)) *(((java_lang_Object*)_r1.o)->tib->itableBegin)[XMLVM_ITABLE_IDX_java_util_Map_get___java_lang_Object])(_r1.o, _r2.o); + _r0.o = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 216) + _r1.o = java_lang_Thread_GET_threadSafetyMutex(); + XMLVM_CHECK_NPE(1) + org_xmlvm_runtime_Mutex_unlock__(_r1.o); + XMLVM_SOURCE_POSITION("Thread.java", 218) + if (_r0.o != JAVA_NULL) goto label30; + XMLVM_SOURCE_POSITION("Thread.java", 221) + _r0.o = __NEW_java_lang_Thread(); + XMLVM_CHECK_NPE(0) + java_lang_Thread___INIT____long(_r0.o, _r3.l); + label30:; + XMLVM_SOURCE_POSITION("Thread.java", 223) + XMLVM_EXIT_METHOD() + return _r0.o; + //XMLVM_END_WRAPPER +} + +JAVA_BOOLEAN java_lang_Thread_equals___java_lang_Object(JAVA_OBJECT me, JAVA_OBJECT n1) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_equals___java_lang_Object] + XMLVM_ENTER_METHOD("java.lang.Thread", "equals", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + XMLVMElem _r3; + XMLVMElem _r4; + XMLVMElem _r5; + XMLVMElem _r6; + XMLVMElem _r7; + XMLVMElem _r8; + _r7.o = me; + _r8.o = n1; + XMLVM_SOURCE_POSITION("Thread.java", 227) + _r1.i = 0; + XMLVM_SOURCE_POSITION("Thread.java", 228) + XMLVM_CLASS_INIT(java_lang_Thread) + _r3.i = XMLVM_ISA(_r8.o, __CLASS_java_lang_Thread); + if (_r3.i == 0) goto label19; + XMLVM_SOURCE_POSITION("Thread.java", 229) + _r0 = _r8; + _r0.o = _r0.o; + _r2 = _r0; + XMLVM_SOURCE_POSITION("Thread.java", 230) + XMLVM_CHECK_NPE(7) + _r3.l = ((java_lang_Thread*) _r7.o)->fields.java_lang_Thread.nativeThreadId_; + XMLVM_CHECK_NPE(2) + _r5.l = ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.nativeThreadId_; + _r3.i = _r3.l > _r5.l ? 1 : (_r3.l == _r5.l ? 0 : -1); + if (_r3.i != 0) goto label20; + _r3.i = 1; + _r1 = _r3; + label19:; + XMLVM_SOURCE_POSITION("Thread.java", 232) + XMLVM_EXIT_METHOD() + return _r1.i; + label20:; + _r3.i = 0; + _r1 = _r3; + goto label19; + //XMLVM_END_WRAPPER +} + +void java_lang_Thread_initThread___java_lang_ThreadGroup_java_lang_Runnable_java_lang_String(JAVA_OBJECT me, JAVA_OBJECT n1, JAVA_OBJECT n2, JAVA_OBJECT n3) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_initThread___java_lang_ThreadGroup_java_lang_Runnable_java_lang_String] + XMLVM_ENTER_METHOD("java.lang.Thread", "initThread", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + XMLVMElem _r3; + XMLVMElem _r4; + XMLVMElem _r5; + XMLVMElem _r6; + _r3.o = me; + _r4.o = n1; + _r5.o = n2; + _r6.o = n3; + XMLVM_SOURCE_POSITION("Thread.java", 259) + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.targetRunnable_ = _r5.o; + XMLVM_SOURCE_POSITION("Thread.java", 260) + _r0.l = java_lang_Thread_getNextThreadId__(); + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.threadId_ = _r0.l; + XMLVM_SOURCE_POSITION("Thread.java", 262) + if (_r6.o != JAVA_NULL) goto label46; + XMLVM_SOURCE_POSITION("Thread.java", 263) + _r0.o = __NEW_java_lang_StringBuilder(); + XMLVM_CHECK_NPE(0) + java_lang_StringBuilder___INIT___(_r0.o); + // "Thread-" + _r1.o = xmlvm_create_java_string_from_pool(802); + XMLVM_CHECK_NPE(0) + _r0.o = java_lang_StringBuilder_append___java_lang_String(_r0.o, _r1.o); + XMLVM_CHECK_NPE(3) + _r1.l = ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.threadId_; + XMLVM_CHECK_NPE(0) + _r0.o = java_lang_StringBuilder_append___long(_r0.o, _r1.l); + //java_lang_StringBuilder_toString__[5] + XMLVM_CHECK_NPE(0) + _r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_StringBuilder*) _r0.o)->tib->vtable[5])(_r0.o); + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.threadName_ = _r0.o; + label33:; + XMLVM_SOURCE_POSITION("Thread.java", 268) + if (_r4.o != JAVA_NULL) goto label49; + XMLVM_SOURCE_POSITION("Thread.java", 270) + _r0.o = java_lang_Thread_currentThread__(); + XMLVM_CHECK_NPE(0) + _r0.o = java_lang_Thread_getThreadGroup__(_r0.o); + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.threadGroup_ = _r0.o; + label45:; + XMLVM_SOURCE_POSITION("Thread.java", 274) + XMLVM_EXIT_METHOD() + return; + label46:; + XMLVM_SOURCE_POSITION("Thread.java", 265) + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.threadName_ = _r6.o; + goto label33; + label49:; + XMLVM_SOURCE_POSITION("Thread.java", 272) + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.threadGroup_ = _r4.o; + goto label45; + //XMLVM_END_WRAPPER +} + +void java_lang_Thread___INIT___(JAVA_OBJECT me) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread___INIT___] + XMLVM_ENTER_METHOD("java.lang.Thread", "<init>", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + XMLVMElem _r3; + _r3.o = me; + _r2.i = 0; + _r1.o = JAVA_NULL; + XMLVM_SOURCE_POSITION("Thread.java", 283) + XMLVM_CHECK_NPE(3) + java_lang_Object___INIT___(_r3.o); + XMLVM_SOURCE_POSITION("Thread.java", 131) + _r0.i = 5; + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.priority_ = _r0.i; + XMLVM_SOURCE_POSITION("Thread.java", 132) + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.daemon_ = _r2.i; + XMLVM_SOURCE_POSITION("Thread.java", 133) + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.alive_ = _r2.i; + XMLVM_SOURCE_POSITION("Thread.java", 137) + _r0.o = java_lang_Thread_State_GET_NEW(); + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.threadState_ = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 143) + _r0.o = __NEW_java_util_HashMap(); + XMLVM_CHECK_NPE(0) + java_util_HashMap___INIT___(_r0.o); + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.threadLocalMap_ = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 284) + XMLVM_CHECK_NPE(3) + java_lang_Thread_initThread___java_lang_ThreadGroup_java_lang_Runnable_java_lang_String(_r3.o, _r1.o, _r1.o, _r1.o); + XMLVM_SOURCE_POSITION("Thread.java", 285) + XMLVM_EXIT_METHOD() + return; + //XMLVM_END_WRAPPER +} + +void java_lang_Thread___INIT____java_lang_Runnable(JAVA_OBJECT me, JAVA_OBJECT n1) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread___INIT____java_lang_Runnable] + XMLVM_ENTER_METHOD("java.lang.Thread", "<init>", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + XMLVMElem _r3; + XMLVMElem _r4; + _r3.o = me; + _r4.o = n1; + _r2.o = JAVA_NULL; + _r1.i = 0; + XMLVM_SOURCE_POSITION("Thread.java", 297) + XMLVM_CHECK_NPE(3) + java_lang_Object___INIT___(_r3.o); + XMLVM_SOURCE_POSITION("Thread.java", 131) + _r0.i = 5; + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.priority_ = _r0.i; + XMLVM_SOURCE_POSITION("Thread.java", 132) + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.daemon_ = _r1.i; + XMLVM_SOURCE_POSITION("Thread.java", 133) + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.alive_ = _r1.i; + XMLVM_SOURCE_POSITION("Thread.java", 137) + _r0.o = java_lang_Thread_State_GET_NEW(); + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.threadState_ = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 143) + _r0.o = __NEW_java_util_HashMap(); + XMLVM_CHECK_NPE(0) + java_util_HashMap___INIT___(_r0.o); + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.threadLocalMap_ = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 298) + XMLVM_CHECK_NPE(3) + java_lang_Thread_initThread___java_lang_ThreadGroup_java_lang_Runnable_java_lang_String(_r3.o, _r2.o, _r4.o, _r2.o); + XMLVM_SOURCE_POSITION("Thread.java", 299) + XMLVM_EXIT_METHOD() + return; + //XMLVM_END_WRAPPER +} + +void java_lang_Thread___INIT____java_lang_Runnable_java_lang_String(JAVA_OBJECT me, JAVA_OBJECT n1, JAVA_OBJECT n2) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread___INIT____java_lang_Runnable_java_lang_String] + XMLVM_ENTER_METHOD("java.lang.Thread", "<init>", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + XMLVMElem _r3; + XMLVMElem _r4; + _r2.o = me; + _r3.o = n1; + _r4.o = n2; + _r1.i = 0; + XMLVM_SOURCE_POSITION("Thread.java", 312) + XMLVM_CHECK_NPE(2) + java_lang_Object___INIT___(_r2.o); + XMLVM_SOURCE_POSITION("Thread.java", 131) + _r0.i = 5; + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.priority_ = _r0.i; + XMLVM_SOURCE_POSITION("Thread.java", 132) + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.daemon_ = _r1.i; + XMLVM_SOURCE_POSITION("Thread.java", 133) + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.alive_ = _r1.i; + XMLVM_SOURCE_POSITION("Thread.java", 137) + _r0.o = java_lang_Thread_State_GET_NEW(); + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadState_ = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 143) + _r0.o = __NEW_java_util_HashMap(); + XMLVM_CHECK_NPE(0) + java_util_HashMap___INIT___(_r0.o); + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadLocalMap_ = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 313) + _r0.o = JAVA_NULL; + XMLVM_CHECK_NPE(2) + java_lang_Thread_initThread___java_lang_ThreadGroup_java_lang_Runnable_java_lang_String(_r2.o, _r0.o, _r3.o, _r4.o); + XMLVM_SOURCE_POSITION("Thread.java", 314) + XMLVM_EXIT_METHOD() + return; + //XMLVM_END_WRAPPER +} + +void java_lang_Thread___INIT____java_lang_String(JAVA_OBJECT me, JAVA_OBJECT n1) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread___INIT____java_lang_String] + XMLVM_ENTER_METHOD("java.lang.Thread", "<init>", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + XMLVMElem _r3; + XMLVMElem _r4; + _r3.o = me; + _r4.o = n1; + _r2.o = JAVA_NULL; + _r1.i = 0; + XMLVM_SOURCE_POSITION("Thread.java", 325) + XMLVM_CHECK_NPE(3) + java_lang_Object___INIT___(_r3.o); + XMLVM_SOURCE_POSITION("Thread.java", 131) + _r0.i = 5; + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.priority_ = _r0.i; + XMLVM_SOURCE_POSITION("Thread.java", 132) + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.daemon_ = _r1.i; + XMLVM_SOURCE_POSITION("Thread.java", 133) + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.alive_ = _r1.i; + XMLVM_SOURCE_POSITION("Thread.java", 137) + _r0.o = java_lang_Thread_State_GET_NEW(); + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.threadState_ = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 143) + _r0.o = __NEW_java_util_HashMap(); + XMLVM_CHECK_NPE(0) + java_util_HashMap___INIT___(_r0.o); + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.threadLocalMap_ = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 326) + XMLVM_CHECK_NPE(3) + java_lang_Thread_initThread___java_lang_ThreadGroup_java_lang_Runnable_java_lang_String(_r3.o, _r2.o, _r2.o, _r4.o); + XMLVM_SOURCE_POSITION("Thread.java", 327) + XMLVM_EXIT_METHOD() + return; + //XMLVM_END_WRAPPER +} + +void java_lang_Thread___INIT____java_lang_ThreadGroup_java_lang_Runnable(JAVA_OBJECT me, JAVA_OBJECT n1, JAVA_OBJECT n2) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread___INIT____java_lang_ThreadGroup_java_lang_Runnable] + XMLVM_ENTER_METHOD("java.lang.Thread", "<init>", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + XMLVMElem _r3; + XMLVMElem _r4; + _r2.o = me; + _r3.o = n1; + _r4.o = n2; + _r1.i = 0; + XMLVM_SOURCE_POSITION("Thread.java", 345) + XMLVM_CHECK_NPE(2) + java_lang_Object___INIT___(_r2.o); + XMLVM_SOURCE_POSITION("Thread.java", 131) + _r0.i = 5; + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.priority_ = _r0.i; + XMLVM_SOURCE_POSITION("Thread.java", 132) + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.daemon_ = _r1.i; + XMLVM_SOURCE_POSITION("Thread.java", 133) + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.alive_ = _r1.i; + XMLVM_SOURCE_POSITION("Thread.java", 137) + _r0.o = java_lang_Thread_State_GET_NEW(); + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadState_ = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 143) + _r0.o = __NEW_java_util_HashMap(); + XMLVM_CHECK_NPE(0) + java_util_HashMap___INIT___(_r0.o); + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadLocalMap_ = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 346) + _r0.o = JAVA_NULL; + XMLVM_CHECK_NPE(2) + java_lang_Thread_initThread___java_lang_ThreadGroup_java_lang_Runnable_java_lang_String(_r2.o, _r3.o, _r4.o, _r0.o); + XMLVM_SOURCE_POSITION("Thread.java", 347) + XMLVM_EXIT_METHOD() + return; + //XMLVM_END_WRAPPER +} + +void java_lang_Thread___INIT____java_lang_ThreadGroup_java_lang_Runnable_java_lang_String_long(JAVA_OBJECT me, JAVA_OBJECT n1, JAVA_OBJECT n2, JAVA_OBJECT n3, JAVA_LONG n4) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread___INIT____java_lang_ThreadGroup_java_lang_Runnable_java_lang_String_long] + XMLVM_ENTER_METHOD("java.lang.Thread", "<init>", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + XMLVMElem _r3; + XMLVMElem _r4; + XMLVMElem _r5; + XMLVMElem _r6; + XMLVMElem _r7; + _r2.o = me; + _r3.o = n1; + _r4.o = n2; + _r5.o = n3; + _r6.l = n4; + _r1.i = 0; + XMLVM_SOURCE_POSITION("Thread.java", 367) + XMLVM_CHECK_NPE(2) + java_lang_Object___INIT___(_r2.o); + XMLVM_SOURCE_POSITION("Thread.java", 131) + _r0.i = 5; + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.priority_ = _r0.i; + XMLVM_SOURCE_POSITION("Thread.java", 132) + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.daemon_ = _r1.i; + XMLVM_SOURCE_POSITION("Thread.java", 133) + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.alive_ = _r1.i; + XMLVM_SOURCE_POSITION("Thread.java", 137) + _r0.o = java_lang_Thread_State_GET_NEW(); + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadState_ = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 143) + _r0.o = __NEW_java_util_HashMap(); + XMLVM_CHECK_NPE(0) + java_util_HashMap___INIT___(_r0.o); + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadLocalMap_ = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 368) + XMLVM_CHECK_NPE(2) + java_lang_Thread_initThread___java_lang_ThreadGroup_java_lang_Runnable_java_lang_String(_r2.o, _r3.o, _r4.o, _r5.o); + XMLVM_SOURCE_POSITION("Thread.java", 369) + XMLVM_EXIT_METHOD() + return; + //XMLVM_END_WRAPPER +} + +void java_lang_Thread___INIT____java_lang_ThreadGroup_java_lang_Runnable_java_lang_String(JAVA_OBJECT me, JAVA_OBJECT n1, JAVA_OBJECT n2, JAVA_OBJECT n3) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread___INIT____java_lang_ThreadGroup_java_lang_Runnable_java_lang_String] + XMLVM_ENTER_METHOD("java.lang.Thread", "<init>", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + XMLVMElem _r3; + XMLVMElem _r4; + XMLVMElem _r5; + _r2.o = me; + _r3.o = n1; + _r4.o = n2; + _r5.o = n3; + _r1.i = 0; + XMLVM_SOURCE_POSITION("Thread.java", 388) + XMLVM_CHECK_NPE(2) + java_lang_Object___INIT___(_r2.o); + XMLVM_SOURCE_POSITION("Thread.java", 131) + _r0.i = 5; + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.priority_ = _r0.i; + XMLVM_SOURCE_POSITION("Thread.java", 132) + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.daemon_ = _r1.i; + XMLVM_SOURCE_POSITION("Thread.java", 133) + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.alive_ = _r1.i; + XMLVM_SOURCE_POSITION("Thread.java", 137) + _r0.o = java_lang_Thread_State_GET_NEW(); + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadState_ = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 143) + _r0.o = __NEW_java_util_HashMap(); + XMLVM_CHECK_NPE(0) + java_util_HashMap___INIT___(_r0.o); + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadLocalMap_ = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 389) + XMLVM_CHECK_NPE(2) + java_lang_Thread_initThread___java_lang_ThreadGroup_java_lang_Runnable_java_lang_String(_r2.o, _r3.o, _r4.o, _r5.o); + XMLVM_SOURCE_POSITION("Thread.java", 390) + XMLVM_EXIT_METHOD() + return; + //XMLVM_END_WRAPPER +} + +void java_lang_Thread___INIT____java_lang_ThreadGroup_java_lang_String(JAVA_OBJECT me, JAVA_OBJECT n1, JAVA_OBJECT n2) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread___INIT____java_lang_ThreadGroup_java_lang_String] + XMLVM_ENTER_METHOD("java.lang.Thread", "<init>", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + XMLVMElem _r3; + XMLVMElem _r4; + _r2.o = me; + _r3.o = n1; + _r4.o = n2; + _r1.i = 0; + XMLVM_SOURCE_POSITION("Thread.java", 406) + XMLVM_CHECK_NPE(2) + java_lang_Object___INIT___(_r2.o); + XMLVM_SOURCE_POSITION("Thread.java", 131) + _r0.i = 5; + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.priority_ = _r0.i; + XMLVM_SOURCE_POSITION("Thread.java", 132) + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.daemon_ = _r1.i; + XMLVM_SOURCE_POSITION("Thread.java", 133) + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.alive_ = _r1.i; + XMLVM_SOURCE_POSITION("Thread.java", 137) + _r0.o = java_lang_Thread_State_GET_NEW(); + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadState_ = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 143) + _r0.o = __NEW_java_util_HashMap(); + XMLVM_CHECK_NPE(0) + java_util_HashMap___INIT___(_r0.o); + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadLocalMap_ = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 407) + _r0.o = JAVA_NULL; + XMLVM_CHECK_NPE(2) + java_lang_Thread_initThread___java_lang_ThreadGroup_java_lang_Runnable_java_lang_String(_r2.o, _r3.o, _r0.o, _r4.o); + XMLVM_SOURCE_POSITION("Thread.java", 408) + XMLVM_EXIT_METHOD() + return; + //XMLVM_END_WRAPPER +} + +void java_lang_Thread_setInterruptAction___java_lang_Runnable(JAVA_OBJECT me, JAVA_OBJECT n1) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_setInterruptAction___java_lang_Runnable] + XMLVM_ENTER_METHOD("java.lang.Thread", "setInterruptAction", "?") + XMLVMElem _r0; + XMLVMElem _r1; + _r0.o = me; + _r1.o = n1; + XMLVM_SOURCE_POSITION("Thread.java", 423) + XMLVM_CHECK_NPE(0) + ((java_lang_Thread*) _r0.o)->fields.java_lang_Thread.action_ = _r1.o; + XMLVM_SOURCE_POSITION("Thread.java", 424) + XMLVM_EXIT_METHOD() + return; + //XMLVM_END_WRAPPER +} + +//XMLVM_NATIVE[JAVA_INT java_lang_Thread_activeCount__()] + +//XMLVM_NATIVE[void java_lang_Thread_checkAccess__(JAVA_OBJECT me)] + +//XMLVM_NATIVE[JAVA_INT java_lang_Thread_countStackFrames__(JAVA_OBJECT me)] + +JAVA_OBJECT java_lang_Thread_currentThread__() +{ + XMLVM_CLASS_INIT(java_lang_Thread) + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_currentThread__] + XMLVM_ENTER_METHOD("java.lang.Thread", "currentThread", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVM_SOURCE_POSITION("Thread.java", 466) + _r0.l = java_lang_Thread_getCurrentThreadNativeId__(); + _r0.o = java_lang_Thread_getThread___long(_r0.l); + XMLVM_EXIT_METHOD() + return _r0.o; + //XMLVM_END_WRAPPER +} + +//XMLVM_NATIVE[JAVA_LONG java_lang_Thread_getCurrentThreadNativeId__()] + +//XMLVM_NATIVE[void java_lang_Thread_destroy__(JAVA_OBJECT me)] + +//XMLVM_NATIVE[void java_lang_Thread_dumpStack__()] + +//XMLVM_NATIVE[JAVA_INT java_lang_Thread_enumerate___java_lang_Thread_1ARRAY(JAVA_OBJECT n1)] + +//XMLVM_NATIVE[JAVA_OBJECT java_lang_Thread_getAllStackTraces__()] + +//XMLVM_NATIVE[JAVA_OBJECT java_lang_Thread_getContextClassLoader__(JAVA_OBJECT me)] + +//XMLVM_NATIVE[JAVA_OBJECT java_lang_Thread_getDefaultUncaughtExceptionHandler__()] + +JAVA_LONG java_lang_Thread_getId__(JAVA_OBJECT me) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_getId__] + XMLVM_ENTER_METHOD("java.lang.Thread", "getId", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + _r2.o = me; + XMLVM_SOURCE_POSITION("Thread.java", 566) + XMLVM_CHECK_NPE(2) + _r0.l = ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadId_; + XMLVM_EXIT_METHOD() + return _r0.l; + //XMLVM_END_WRAPPER +} + +JAVA_OBJECT java_lang_Thread_getName__(JAVA_OBJECT me) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_getName__] + XMLVM_ENTER_METHOD("java.lang.Thread", "getName", "?") + XMLVMElem _r0; + XMLVMElem _r1; + _r1.o = me; + XMLVM_SOURCE_POSITION("Thread.java", 575) + XMLVM_CHECK_NPE(1) + _r0.o = ((java_lang_Thread*) _r1.o)->fields.java_lang_Thread.threadName_; + XMLVM_EXIT_METHOD() + return _r0.o; + //XMLVM_END_WRAPPER +} + +JAVA_INT java_lang_Thread_getPriority__(JAVA_OBJECT me) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_getPriority__] + XMLVM_ENTER_METHOD("java.lang.Thread", "getPriority", "?") + XMLVMElem _r0; + XMLVMElem _r1; + _r1.o = me; + XMLVM_SOURCE_POSITION("Thread.java", 585) + XMLVM_CHECK_NPE(1) + _r0.i = ((java_lang_Thread*) _r1.o)->fields.java_lang_Thread.priority_; + XMLVM_EXIT_METHOD() + return _r0.i; + //XMLVM_END_WRAPPER +} + +//XMLVM_NATIVE[JAVA_OBJECT java_lang_Thread_getStackTrace__(JAVA_OBJECT me)] + +JAVA_OBJECT java_lang_Thread_getState__(JAVA_OBJECT me) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_getState__] + XMLVM_ENTER_METHOD("java.lang.Thread", "getState", "?") + volatile XMLVMElem _r0; + volatile XMLVMElem _r1; + volatile XMLVMElem _r2; + _r2.o = me; + XMLVM_SOURCE_POSITION("Thread.java", 612) + java_lang_Object_acquireLockRecursive__(_r2.o); + XMLVM_TRY_BEGIN(w5666aaac57b1b4) + // Begin try + _r0.o = java_lang_System_GET_out(); + // "Thread.getState() is not fully implemented. Specifically, you will not currently find BLOCKED, WAITING and TIMED_WAITING." + _r1.o = xmlvm_create_java_string_from_pool(803); + XMLVM_CHECK_NPE(0) + java_io_PrintStream_println___java_lang_String(_r0.o, _r1.o); + XMLVM_SOURCE_POSITION("Thread.java", 613) + XMLVM_CHECK_NPE(2) + _r0.o = ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadState_; + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac57b1b4) + XMLVM_CATCH_SPECIFIC(w5666aaac57b1b4,java_lang_Object,12) + XMLVM_CATCH_END(w5666aaac57b1b4) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac57b1b4) + java_lang_Object_releaseLockRecursive__(_r2.o); + XMLVM_EXIT_METHOD() + return _r0.o; + label12:; + java_lang_Thread* curThread_w5666aaac57b1b8 = (java_lang_Thread*)java_lang_Thread_currentThread__(); + _r0.o = curThread_w5666aaac57b1b8->fields.java_lang_Thread.xmlvmException_; + java_lang_Object_releaseLockRecursive__(_r2.o); + XMLVM_THROW_CUSTOM(_r0.o) + //XMLVM_END_WRAPPER +} + +JAVA_OBJECT java_lang_Thread_getThreadGroup__(JAVA_OBJECT me) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_getThreadGroup__] + XMLVM_ENTER_METHOD("java.lang.Thread", "getThreadGroup", "?") + XMLVMElem _r0; + XMLVMElem _r1; + _r1.o = me; + XMLVM_SOURCE_POSITION("Thread.java", 622) + XMLVM_CHECK_NPE(1) + _r0.o = ((java_lang_Thread*) _r1.o)->fields.java_lang_Thread.threadGroup_; + XMLVM_EXIT_METHOD() + return _r0.o; + //XMLVM_END_WRAPPER +} + +JAVA_OBJECT java_lang_Thread_getThreadLocal___java_lang_ThreadLocal(JAVA_OBJECT me, JAVA_OBJECT n1) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_getThreadLocal___java_lang_ThreadLocal] + XMLVM_ENTER_METHOD("java.lang.Thread", "getThreadLocal", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + _r1.o = me; + _r2.o = n1; + XMLVM_SOURCE_POSITION("Thread.java", 636) + XMLVM_CHECK_NPE(1) + _r0.o = ((java_lang_Thread*) _r1.o)->fields.java_lang_Thread.threadLocalMap_; + XMLVM_CHECK_NPE(0) + _r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT, JAVA_OBJECT)) *(((java_lang_Object*)_r0.o)->tib->itableBegin)[XMLVM_ITABLE_IDX_java_util_Map_get___java_lang_Object])(_r0.o, _r2.o); + XMLVM_EXIT_METHOD() + return _r0.o; + //XMLVM_END_WRAPPER +} + +//XMLVM_NATIVE[JAVA_OBJECT java_lang_Thread_getUncaughtExceptionHandler__(JAVA_OBJECT me)] + +void java_lang_Thread_interrupt__(JAVA_OBJECT me) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_interrupt__] + XMLVM_ENTER_METHOD("java.lang.Thread", "interrupt", "?") + volatile XMLVMElem _r0; + volatile XMLVMElem _r1; + volatile XMLVMElem _r2; + _r2.o = me; + XMLVM_SOURCE_POSITION("Thread.java", 680) + XMLVM_CHECK_NPE(2) + _r1.o = ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.action_; + if (_r1.o == JAVA_NULL) goto label9; + XMLVM_SOURCE_POSITION("Thread.java", 681) + XMLVM_CHECK_NPE(2) + _r1.o = ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.action_; + XMLVM_CHECK_NPE(1) + (*(void (*)(JAVA_OBJECT)) *(((java_lang_Object*)_r1.o)->tib->itableBegin)[XMLVM_ITABLE_IDX_java_lang_Runnable_run__])(_r1.o); + label9:; + XMLVM_SOURCE_POSITION("Thread.java", 684) + _r0.o = JAVA_NULL; + XMLVM_SOURCE_POSITION("Thread.java", 685) + java_lang_Object_acquireLockRecursive__(_r2.o); + XMLVM_SOURCE_POSITION("Thread.java", 686) + _r1.i = 1; + XMLVM_TRY_BEGIN(w5666aaac61b1c15) + // Begin try + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.interrupted_ = _r1.i; + XMLVM_SOURCE_POSITION("Thread.java", 688) + XMLVM_CHECK_NPE(2) + _r1.o = ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.waitingCondition_; + if (_r1.o == JAVA_NULL) { XMLVM_MEMCPY(curThread_w5666aaac61b1c15->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w5666aaac61b1c15, sizeof(XMLVM_JMP_BUF)); goto label20; }; + XMLVM_SOURCE_POSITION("Thread.java", 689) + XMLVM_CHECK_NPE(2) + _r0.o = ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.waitingCondition_; + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac61b1c15) + XMLVM_CATCH_SPECIFIC(w5666aaac61b1c15,java_lang_Object,31) + XMLVM_CATCH_END(w5666aaac61b1c15) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac61b1c15) + label20:; + XMLVM_TRY_BEGIN(w5666aaac61b1c17) + // Begin try + XMLVM_SOURCE_POSITION("Thread.java", 691) + java_lang_Object_releaseLockRecursive__(_r2.o); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac61b1c17) + XMLVM_CATCH_SPECIFIC(w5666aaac61b1c17,java_lang_Object,31) + XMLVM_CATCH_END(w5666aaac61b1c17) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac61b1c17) + XMLVM_SOURCE_POSITION("Thread.java", 695) + if (_r0.o == JAVA_NULL) goto label30; + XMLVM_SOURCE_POSITION("Thread.java", 696) + XMLVM_CHECK_NPE(0) + _r1.o = org_xmlvm_runtime_Condition_getSynchronizedObject__(_r0.o); + XMLVM_CHECK_NPE(1) + java_lang_Object_interruptWait___org_xmlvm_runtime_Condition(_r1.o, _r0.o); + label30:; + XMLVM_SOURCE_POSITION("Thread.java", 698) + XMLVM_EXIT_METHOD() + return; + label31:; + java_lang_Thread* curThread_w5666aaac61b1c27 = (java_lang_Thread*)java_lang_Thread_currentThread__(); + _r1.o = curThread_w5666aaac61b1c27->fields.java_lang_Thread.xmlvmException_; + XMLVM_TRY_BEGIN(w5666aaac61b1c28) + // Begin try + java_lang_Object_releaseLockRecursive__(_r2.o); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac61b1c28) + XMLVM_CATCH_SPECIFIC(w5666aaac61b1c28,java_lang_Object,31) + XMLVM_CATCH_END(w5666aaac61b1c28) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac61b1c28) + XMLVM_THROW_CUSTOM(_r1.o) + //XMLVM_END_WRAPPER +} + +JAVA_BOOLEAN java_lang_Thread_interrupted__() +{ + XMLVM_CLASS_INIT(java_lang_Thread) + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_interrupted__] + XMLVM_ENTER_METHOD("java.lang.Thread", "interrupted", "?") + volatile XMLVMElem _r0; + volatile XMLVMElem _r1; + volatile XMLVMElem _r2; + XMLVM_SOURCE_POSITION("Thread.java", 712) + _r1.i = 0; + XMLVM_SOURCE_POSITION("Thread.java", 713) + _r0.o = java_lang_Thread_currentThread__(); + XMLVM_SOURCE_POSITION("Thread.java", 714) + java_lang_Object_acquireLockRecursive__(_r0.o); + XMLVM_TRY_BEGIN(w5666aaac62b1b7) + // Begin try + XMLVM_SOURCE_POSITION("Thread.java", 715) + XMLVM_CHECK_NPE(0) + _r1.i = java_lang_Thread_isInterrupted__(_r0.o); + _r2.i = 0; + XMLVM_SOURCE_POSITION("Thread.java", 716) + XMLVM_CHECK_NPE(0) + ((java_lang_Thread*) _r0.o)->fields.java_lang_Thread.interrupted_ = _r2.i; + XMLVM_SOURCE_POSITION("Thread.java", 717) + java_lang_Object_releaseLockRecursive__(_r0.o); + XMLVM_SOURCE_POSITION("Thread.java", 718) + XMLVM_MEMCPY(curThread_w5666aaac62b1b7->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w5666aaac62b1b7, sizeof(XMLVM_JMP_BUF)); + XMLVM_EXIT_METHOD() + return _r1.i; + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac62b1b7) + XMLVM_CATCH_SPECIFIC(w5666aaac62b1b7,java_lang_Object,15) + XMLVM_CATCH_END(w5666aaac62b1b7) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac62b1b7) + label15:; + XMLVM_TRY_BEGIN(w5666aaac62b1b9) + // Begin try + java_lang_Thread* curThread_w5666aaac62b1b9aa = (java_lang_Thread*)java_lang_Thread_currentThread__(); + _r2.o = curThread_w5666aaac62b1b9aa->fields.java_lang_Thread.xmlvmException_; + java_lang_Object_releaseLockRecursive__(_r0.o); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac62b1b9) + XMLVM_CATCH_SPECIFIC(w5666aaac62b1b9,java_lang_Object,15) + XMLVM_CATCH_END(w5666aaac62b1b9) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac62b1b9) + XMLVM_THROW_CUSTOM(_r2.o) + //XMLVM_END_WRAPPER +} + +JAVA_BOOLEAN java_lang_Thread_isAlive__(JAVA_OBJECT me) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_isAlive__] + XMLVM_ENTER_METHOD("java.lang.Thread", "isAlive", "?") + volatile XMLVMElem _r0; + volatile XMLVMElem _r1; + _r1.o = me; + XMLVM_SOURCE_POSITION("Thread.java", 731) + java_lang_Object_acquireLockRecursive__(_r1.o); + XMLVM_TRY_BEGIN(w5666aaac63b1b4) + // Begin try + XMLVM_CHECK_NPE(1) + _r0.i = ((java_lang_Thread*) _r1.o)->fields.java_lang_Thread.alive_; + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac63b1b4) + XMLVM_CATCH_SPECIFIC(w5666aaac63b1b4,java_lang_Object,5) + XMLVM_CATCH_END(w5666aaac63b1b4) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac63b1b4) + java_lang_Object_releaseLockRecursive__(_r1.o); + XMLVM_EXIT_METHOD() + return _r0.i; + label5:; + java_lang_Thread* curThread_w5666aaac63b1b8 = (java_lang_Thread*)java_lang_Thread_currentThread__(); + _r0.o = curThread_w5666aaac63b1b8->fields.java_lang_Thread.xmlvmException_; + java_lang_Object_releaseLockRecursive__(_r1.o); + XMLVM_THROW_CUSTOM(_r0.o) + //XMLVM_END_WRAPPER +} + +JAVA_BOOLEAN java_lang_Thread_isDaemon__(JAVA_OBJECT me) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_isDaemon__] + XMLVM_ENTER_METHOD("java.lang.Thread", "isDaemon", "?") + volatile XMLVMElem _r0; + volatile XMLVMElem _r1; + _r1.o = me; + XMLVM_SOURCE_POSITION("Thread.java", 745) + java_lang_Object_acquireLockRecursive__(_r1.o); + XMLVM_TRY_BEGIN(w5666aaac64b1b4) + // Begin try + XMLVM_CHECK_NPE(1) + _r0.i = ((java_lang_Thread*) _r1.o)->fields.java_lang_Thread.daemon_; + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac64b1b4) + XMLVM_CATCH_SPECIFIC(w5666aaac64b1b4,java_lang_Object,5) + XMLVM_CATCH_END(w5666aaac64b1b4) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac64b1b4) + java_lang_Object_releaseLockRecursive__(_r1.o); + XMLVM_EXIT_METHOD() + return _r0.i; + label5:; + java_lang_Thread* curThread_w5666aaac64b1b8 = (java_lang_Thread*)java_lang_Thread_currentThread__(); + _r0.o = curThread_w5666aaac64b1b8->fields.java_lang_Thread.xmlvmException_; + java_lang_Object_releaseLockRecursive__(_r1.o); + XMLVM_THROW_CUSTOM(_r0.o) + //XMLVM_END_WRAPPER +} + +JAVA_BOOLEAN java_lang_Thread_isInterrupted__(JAVA_OBJECT me) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_isInterrupted__] + XMLVM_ENTER_METHOD("java.lang.Thread", "isInterrupted", "?") + volatile XMLVMElem _r0; + volatile XMLVMElem _r1; + volatile XMLVMElem _r2; + _r2.o = me; + XMLVM_SOURCE_POSITION("Thread.java", 758) + _r0.i = 0; + XMLVM_SOURCE_POSITION("Thread.java", 759) + java_lang_Object_acquireLockRecursive__(_r2.o); + XMLVM_TRY_BEGIN(w5666aaac65b1b6) + // Begin try + XMLVM_SOURCE_POSITION("Thread.java", 760) + XMLVM_CHECK_NPE(2) + _r0.i = ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.interrupted_; + XMLVM_SOURCE_POSITION("Thread.java", 761) + java_lang_Object_releaseLockRecursive__(_r2.o); + XMLVM_SOURCE_POSITION("Thread.java", 762) + XMLVM_MEMCPY(curThread_w5666aaac65b1b6->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w5666aaac65b1b6, sizeof(XMLVM_JMP_BUF)); + XMLVM_EXIT_METHOD() + return _r0.i; + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac65b1b6) + XMLVM_CATCH_SPECIFIC(w5666aaac65b1b6,java_lang_Object,6) + XMLVM_CATCH_END(w5666aaac65b1b6) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac65b1b6) + label6:; + XMLVM_TRY_BEGIN(w5666aaac65b1b8) + // Begin try + java_lang_Thread* curThread_w5666aaac65b1b8aa = (java_lang_Thread*)java_lang_Thread_currentThread__(); + _r1.o = curThread_w5666aaac65b1b8aa->fields.java_lang_Thread.xmlvmException_; + java_lang_Object_releaseLockRecursive__(_r2.o); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac65b1b8) + XMLVM_CATCH_SPECIFIC(w5666aaac65b1b8,java_lang_Object,6) + XMLVM_CATCH_END(w5666aaac65b1b8) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac65b1b8) + XMLVM_THROW_CUSTOM(_r1.o) + //XMLVM_END_WRAPPER +} + +void java_lang_Thread_join__(JAVA_OBJECT me) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_join__] + XMLVM_ENTER_METHOD("java.lang.Thread", "join", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + _r2.o = me; + XMLVM_SOURCE_POSITION("Thread.java", 775) + _r0.l = 0; + XMLVM_CHECK_NPE(2) + java_lang_Thread_join___long(_r2.o, _r0.l); + XMLVM_SOURCE_POSITION("Thread.java", 776) + XMLVM_EXIT_METHOD() + return; + //XMLVM_END_WRAPPER +} + +void java_lang_Thread_join___long(JAVA_OBJECT me, JAVA_LONG n1) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_join___long] + XMLVM_ENTER_METHOD("java.lang.Thread", "join", "?") + volatile XMLVMElem _r0; + volatile XMLVMElem _r1; + volatile XMLVMElem _r2; + volatile XMLVMElem _r3; + volatile XMLVMElem _r4; + volatile XMLVMElem _r5; + volatile XMLVMElem _r6; + volatile XMLVMElem _r7; + volatile XMLVMElem _r8; + volatile XMLVMElem _r9; + volatile XMLVMElem _r10; + volatile XMLVMElem _r11; + volatile XMLVMElem _r12; + volatile XMLVMElem _r13; + _r11.o = me; + _r12.l = n1; + _r9.l = 0; + XMLVM_SOURCE_POSITION("Thread.java", 790) + java_lang_Object_acquireLockRecursive__(_r11.o); + XMLVM_TRY_BEGIN(w5666aaac67b1b6) + // Begin try + _r0.l = java_lang_System_currentTimeMillis__(); + _r5.l = 0; + _r7.i = _r12.l > _r9.l ? 1 : (_r12.l == _r9.l ? 0 : -1); + if (_r7.i >= 0) { XMLVM_MEMCPY(curThread_w5666aaac67b1b6->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w5666aaac67b1b6, sizeof(XMLVM_JMP_BUF)); goto label24; }; + XMLVM_SOURCE_POSITION("Thread.java", 793) + XMLVM_SOURCE_POSITION("Thread.java", 794) + + + // Red class access removed: java.lang.IllegalArgumentException::new-instance + XMLVM_RED_CLASS_DEPENDENCY(); + // "timeout value is negative" + _r8.o = xmlvm_create_java_string_from_pool(804); + + + // Red class access removed: java.lang.IllegalArgumentException::<init> + XMLVM_RED_CLASS_DEPENDENCY(); + XMLVM_THROW_CUSTOM(_r7.o) + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac67b1b6) + XMLVM_CATCH_SPECIFIC(w5666aaac67b1b6,java_lang_Object,21) + XMLVM_CATCH_END(w5666aaac67b1b6) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac67b1b6) + label21:; + java_lang_Thread* curThread_w5666aaac67b1b8 = (java_lang_Thread*)java_lang_Thread_currentThread__(); + _r7.o = curThread_w5666aaac67b1b8->fields.java_lang_Thread.xmlvmException_; + java_lang_Object_releaseLockRecursive__(_r11.o); + XMLVM_THROW_CUSTOM(_r7.o) + label24:; + XMLVM_SOURCE_POSITION("Thread.java", 797) + _r7.i = _r12.l > _r9.l ? 1 : (_r12.l == _r9.l ? 0 : -1); + if (_r7.i != 0) goto label38; + label28:; + XMLVM_TRY_BEGIN(w5666aaac67b1c16) + // Begin try + XMLVM_SOURCE_POSITION("Thread.java", 798) + XMLVM_CHECK_NPE(11) + _r7.i = java_lang_Thread_isAlive__(_r11.o); + if (_r7.i == 0) { XMLVM_MEMCPY(curThread_w5666aaac67b1c16->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w5666aaac67b1c16, sizeof(XMLVM_JMP_BUF)); goto label65; }; + XMLVM_SOURCE_POSITION("Thread.java", 800) + XMLVM_CHECK_NPE(11) + java_lang_Object_wait__(_r11.o); + { XMLVM_MEMCPY(curThread_w5666aaac67b1c16->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w5666aaac67b1c16, sizeof(XMLVM_JMP_BUF)); goto label28; }; + XMLVM_SOURCE_POSITION("Thread.java", 803) + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac67b1c16) + XMLVM_CATCH_SPECIFIC(w5666aaac67b1c16,java_lang_Object,21) + XMLVM_CATCH_END(w5666aaac67b1c16) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac67b1c16) + label38:; + XMLVM_TRY_BEGIN(w5666aaac67b1c18) + // Begin try + _r4.i = 0; + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac67b1c18) + XMLVM_CATCH_SPECIFIC(w5666aaac67b1c18,java_lang_Object,21) + XMLVM_CATCH_END(w5666aaac67b1c18) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac67b1c18) + label39:; + XMLVM_TRY_BEGIN(w5666aaac67b1c20) + // Begin try + XMLVM_SOURCE_POSITION("Thread.java", 804) + if (_r4.i != 0) { XMLVM_MEMCPY(curThread_w5666aaac67b1c20->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w5666aaac67b1c20, sizeof(XMLVM_JMP_BUF)); goto label65; }; + XMLVM_CHECK_NPE(11) + _r7.i = java_lang_Thread_isAlive__(_r11.o); + if (_r7.i == 0) { XMLVM_MEMCPY(curThread_w5666aaac67b1c20->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w5666aaac67b1c20, sizeof(XMLVM_JMP_BUF)); goto label65; }; + XMLVM_SOURCE_POSITION("Thread.java", 805) + _r2.l = _r12.l - _r5.l; + _r7.i = _r2.l > _r9.l ? 1 : (_r2.l == _r9.l ? 0 : -1); + if (_r7.i > 0) { XMLVM_MEMCPY(curThread_w5666aaac67b1c20->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w5666aaac67b1c20, sizeof(XMLVM_JMP_BUF)); goto label55; }; + XMLVM_SOURCE_POSITION("Thread.java", 806) + XMLVM_SOURCE_POSITION("Thread.java", 807) + _r4.i = 1; + { XMLVM_MEMCPY(curThread_w5666aaac67b1c20->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w5666aaac67b1c20, sizeof(XMLVM_JMP_BUF)); goto label39; }; + XMLVM_SOURCE_POSITION("Thread.java", 810) + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac67b1c20) + XMLVM_CATCH_SPECIFIC(w5666aaac67b1c20,java_lang_Object,21) + XMLVM_CATCH_END(w5666aaac67b1c20) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac67b1c20) + label55:; + XMLVM_TRY_BEGIN(w5666aaac67b1c22) + // Begin try + XMLVM_CHECK_NPE(11) + java_lang_Object_wait___long(_r11.o, _r2.l); + XMLVM_SOURCE_POSITION("Thread.java", 811) + _r7.l = java_lang_System_currentTimeMillis__(); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac67b1c22) + XMLVM_CATCH_SPECIFIC(w5666aaac67b1c22,java_lang_Object,21) + XMLVM_CATCH_END(w5666aaac67b1c22) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac67b1c22) + _r5.l = _r7.l - _r0.l; + goto label39; + label65:; + XMLVM_SOURCE_POSITION("Thread.java", 815) + java_lang_Object_releaseLockRecursive__(_r11.o); + XMLVM_EXIT_METHOD() + return; + //XMLVM_END_WRAPPER +} + +//XMLVM_NATIVE[void java_lang_Thread_join___long_int(JAVA_OBJECT me, JAVA_LONG n1, JAVA_INT n2)] + +//XMLVM_NATIVE[void java_lang_Thread_resume__(JAVA_OBJECT me)] + +void java_lang_Thread_run0___long(JAVA_OBJECT me, JAVA_LONG n1) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_run0___long] + XMLVM_ENTER_METHOD("java.lang.Thread", "run0", "?") + volatile XMLVMElem _r0; + volatile XMLVMElem _r1; + volatile XMLVMElem _r2; + volatile XMLVMElem _r3; + volatile XMLVMElem _r4; + volatile XMLVMElem _r5; + volatile XMLVMElem _r6; + volatile XMLVMElem _r7; + volatile XMLVMElem _r8; + _r6.o = me; + _r7.l = n1; + // "Exception in thread \042" + _r5.o = xmlvm_create_java_string_from_pool(805); + // "\042 " + _r4.o = xmlvm_create_java_string_from_pool(806); + XMLVM_SOURCE_POSITION("Thread.java", 854) + XMLVM_CHECK_NPE(6) + ((java_lang_Thread*) _r6.o)->fields.java_lang_Thread.nativeThreadId_ = _r7.l; + XMLVM_SOURCE_POSITION("Thread.java", 855) + XMLVM_CHECK_NPE(6) + java_lang_Thread_addSelfToMap__(_r6.o); + XMLVM_SOURCE_POSITION("Thread.java", 857) + java_lang_Object_acquireLockRecursive__(_r6.o); + XMLVM_SOURCE_POSITION("Thread.java", 858) + _r1.i = 1; + XMLVM_TRY_BEGIN(w5666aaac70b1c13) + // Begin try + XMLVM_CHECK_NPE(6) + ((java_lang_Thread*) _r6.o)->fields.java_lang_Thread.alive_ = _r1.i; + XMLVM_SOURCE_POSITION("Thread.java", 859) + java_lang_Object_releaseLockRecursive__(_r6.o); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac70b1c13) + XMLVM_CATCH_SPECIFIC(w5666aaac70b1c13,java_lang_Object,41) + XMLVM_CATCH_END(w5666aaac70b1c13) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac70b1c13) + XMLVM_TRY_BEGIN(w5666aaac70b1c14) + // Begin try + XMLVM_SOURCE_POSITION("Thread.java", 862) + XMLVM_CHECK_NPE(6) + _r1.o = ((java_lang_Thread*) _r6.o)->fields.java_lang_Thread.targetRunnable_; + if (_r1.o != JAVA_NULL) { XMLVM_MEMCPY(curThread_w5666aaac70b1c14->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w5666aaac70b1c14, sizeof(XMLVM_JMP_BUF)); goto label44; }; + XMLVM_SOURCE_POSITION("Thread.java", 863) + //java_lang_Thread_run__[6] + XMLVM_CHECK_NPE(6) + (*(void (*)(JAVA_OBJECT)) ((java_lang_Thread*) _r6.o)->tib->vtable[6])(_r6.o); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac70b1c14) + XMLVM_CATCH_SPECIFIC(w5666aaac70b1c14,java_lang_Throwable,50) + XMLVM_CATCH_END(w5666aaac70b1c14) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac70b1c14) + label21:; + XMLVM_SOURCE_POSITION("Thread.java", 877) + java_lang_Object_acquireLockRecursive__(_r6.o); + XMLVM_SOURCE_POSITION("Thread.java", 878) + _r1.i = 0; + XMLVM_TRY_BEGIN(w5666aaac70b1c20) + // Begin try + XMLVM_CHECK_NPE(6) + ((java_lang_Thread*) _r6.o)->fields.java_lang_Thread.alive_ = _r1.i; + XMLVM_SOURCE_POSITION("Thread.java", 881) + XMLVM_CHECK_NPE(6) + java_lang_Object_notifyAll__(_r6.o); + XMLVM_SOURCE_POSITION("Thread.java", 882) + java_lang_Object_releaseLockRecursive__(_r6.o); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac70b1c20) + XMLVM_CATCH_SPECIFIC(w5666aaac70b1c20,java_lang_Object,158) + XMLVM_CATCH_END(w5666aaac70b1c20) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac70b1c20) + XMLVM_SOURCE_POSITION("Thread.java", 884) + XMLVM_CHECK_NPE(6) + java_lang_Thread_removeSelfFromMap__(_r6.o); + XMLVM_SOURCE_POSITION("Thread.java", 886) + XMLVM_CHECK_NPE(6) + _r1.o = ((java_lang_Thread*) _r6.o)->fields.java_lang_Thread.threadGroup_; + XMLVM_CHECK_NPE(1) + java_lang_ThreadGroup_remove___java_lang_Thread(_r1.o, _r6.o); + XMLVM_SOURCE_POSITION("Thread.java", 888) + XMLVM_CHECK_NPE(6) + java_lang_Thread_threadTerminating__(_r6.o); + XMLVM_SOURCE_POSITION("Thread.java", 889) + XMLVM_EXIT_METHOD() + return; + label41:; + java_lang_Thread* curThread_w5666aaac70b1c31 = (java_lang_Thread*)java_lang_Thread_currentThread__(); + _r1.o = curThread_w5666aaac70b1c31->fields.java_lang_Thread.xmlvmException_; + XMLVM_TRY_BEGIN(w5666aaac70b1c32) + // Begin try + java_lang_Object_releaseLockRecursive__(_r6.o); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac70b1c32) + XMLVM_CATCH_SPECIFIC(w5666aaac70b1c32,java_lang_Object,41) + XMLVM_CATCH_END(w5666aaac70b1c32) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac70b1c32) + XMLVM_THROW_CUSTOM(_r1.o) + label44:; + XMLVM_TRY_BEGIN(w5666aaac70b1c35) + // Begin try + XMLVM_SOURCE_POSITION("Thread.java", 865) + XMLVM_CHECK_NPE(6) + _r1.o = ((java_lang_Thread*) _r6.o)->fields.java_lang_Thread.targetRunnable_; + XMLVM_CHECK_NPE(1) + (*(void (*)(JAVA_OBJECT)) *(((java_lang_Object*)_r1.o)->tib->itableBegin)[XMLVM_ITABLE_IDX_java_lang_Runnable_run__])(_r1.o); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac70b1c35) + XMLVM_CATCH_SPECIFIC(w5666aaac70b1c35,java_lang_Throwable,50) + XMLVM_CATCH_END(w5666aaac70b1c35) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac70b1c35) + goto label21; + label50:; + XMLVM_SOURCE_POSITION("Thread.java", 867) + java_lang_Thread* curThread_w5666aaac70b1c39 = (java_lang_Thread*)java_lang_Thread_currentThread__(); + _r1.o = curThread_w5666aaac70b1c39->fields.java_lang_Thread.xmlvmException_; + _r0 = _r1; + XMLVM_SOURCE_POSITION("Thread.java", 868) + _r1.i = java_lang_Thread_stackTracesEnabled__(); + if (_r1.i == 0) goto label96; + XMLVM_SOURCE_POSITION("Thread.java", 869) + _r1.o = java_lang_System_GET_out(); + _r2.o = __NEW_java_lang_StringBuilder(); + XMLVM_CHECK_NPE(2) + java_lang_StringBuilder___INIT___(_r2.o); + // "Exception in thread \042" + _r3.o = xmlvm_create_java_string_from_pool(805); + XMLVM_CHECK_NPE(2) + _r2.o = java_lang_StringBuilder_append___java_lang_String(_r2.o, _r5.o); + XMLVM_CHECK_NPE(6) + _r3.o = java_lang_Thread_getName__(_r6.o); + XMLVM_CHECK_NPE(2) + _r2.o = java_lang_StringBuilder_append___java_lang_String(_r2.o, _r3.o); + // "\042 " + _r3.o = xmlvm_create_java_string_from_pool(806); + XMLVM_CHECK_NPE(2) + _r2.o = java_lang_StringBuilder_append___java_lang_String(_r2.o, _r4.o); + //java_lang_StringBuilder_toString__[5] + XMLVM_CHECK_NPE(2) + _r2.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_StringBuilder*) _r2.o)->tib->vtable[5])(_r2.o); + XMLVM_CHECK_NPE(1) + java_io_PrintStream_print___java_lang_String(_r1.o, _r2.o); + XMLVM_SOURCE_POSITION("Thread.java", 870) + XMLVM_CHECK_NPE(0) + java_lang_Throwable_printStackTrace__(_r0.o); + goto label21; + label96:; + XMLVM_SOURCE_POSITION("Thread.java", 872) + _r1.o = java_lang_System_GET_out(); + _r2.o = __NEW_java_lang_StringBuilder(); + XMLVM_CHECK_NPE(2) + java_lang_StringBuilder___INIT___(_r2.o); + // "Exception in thread \042" + _r3.o = xmlvm_create_java_string_from_pool(805); + XMLVM_CHECK_NPE(2) + _r2.o = java_lang_StringBuilder_append___java_lang_String(_r2.o, _r5.o); + XMLVM_CHECK_NPE(6) + _r3.o = java_lang_Thread_getName__(_r6.o); + XMLVM_CHECK_NPE(2) + _r2.o = java_lang_StringBuilder_append___java_lang_String(_r2.o, _r3.o); + // "\042 " + _r3.o = xmlvm_create_java_string_from_pool(806); + XMLVM_CHECK_NPE(2) + _r2.o = java_lang_StringBuilder_append___java_lang_String(_r2.o, _r4.o); + //java_lang_Object_getClass__[3] + XMLVM_CHECK_NPE(0) + _r3.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_Object*) _r0.o)->tib->vtable[3])(_r0.o); + XMLVM_CHECK_NPE(3) + _r3.o = java_lang_Class_getName__(_r3.o); + XMLVM_CHECK_NPE(2) + _r2.o = java_lang_StringBuilder_append___java_lang_String(_r2.o, _r3.o); + // ": " + _r3.o = xmlvm_create_java_string_from_pool(49); + XMLVM_CHECK_NPE(2) + _r2.o = java_lang_StringBuilder_append___java_lang_String(_r2.o, _r3.o); + //java_lang_Throwable_getMessage__[7] + XMLVM_CHECK_NPE(0) + _r3.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_Throwable*) _r0.o)->tib->vtable[7])(_r0.o); + XMLVM_CHECK_NPE(2) + _r2.o = java_lang_StringBuilder_append___java_lang_String(_r2.o, _r3.o); + //java_lang_StringBuilder_toString__[5] + XMLVM_CHECK_NPE(2) + _r2.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_StringBuilder*) _r2.o)->tib->vtable[5])(_r2.o); + XMLVM_CHECK_NPE(1) + java_io_PrintStream_println___java_lang_String(_r1.o, _r2.o); + goto label21; + label158:; + java_lang_Thread* curThread_w5666aaac70b1c81 = (java_lang_Thread*)java_lang_Thread_currentThread__(); + _r1.o = curThread_w5666aaac70b1c81->fields.java_lang_Thread.xmlvmException_; + XMLVM_TRY_BEGIN(w5666aaac70b1c82) + // Begin try + java_lang_Object_releaseLockRecursive__(_r6.o); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac70b1c82) + XMLVM_CATCH_SPECIFIC(w5666aaac70b1c82,java_lang_Object,158) + XMLVM_CATCH_END(w5666aaac70b1c82) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac70b1c82) + XMLVM_THROW_CUSTOM(_r1.o) + //XMLVM_END_WRAPPER +} + +//XMLVM_NATIVE[JAVA_BOOLEAN java_lang_Thread_stackTracesEnabled__()] + +void java_lang_Thread_threadTerminating__(JAVA_OBJECT me) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_threadTerminating__] + XMLVM_ENTER_METHOD("java.lang.Thread", "threadTerminating", "?") + volatile XMLVMElem _r0; + volatile XMLVMElem _r1; + volatile XMLVMElem _r2; + volatile XMLVMElem _r3; + _r3.o = me; + XMLVM_SOURCE_POSITION("Thread.java", 894) + java_lang_Object_acquireLockRecursive__(_r3.o); + XMLVM_TRY_BEGIN(w5666aaac72b1b4) + // Begin try + XMLVM_SOURCE_POSITION("Thread.java", 895) + _r0.o = java_lang_Thread_State_GET_TERMINATED(); + XMLVM_CHECK_NPE(3) + ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.threadState_ = _r0.o; + XMLVM_SOURCE_POSITION("Thread.java", 896) + java_lang_Object_releaseLockRecursive__(_r3.o); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac72b1b4) + XMLVM_CATCH_SPECIFIC(w5666aaac72b1b4,java_lang_Object,29) + XMLVM_CATCH_END(w5666aaac72b1b4) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac72b1b4) + XMLVM_SOURCE_POSITION("Thread.java", 900) + XMLVM_CHECK_NPE(3) + _r0.i = ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.daemon_; + if (_r0.i != 0) goto label28; + XMLVM_SOURCE_POSITION("Thread.java", 901) + XMLVM_CLASS_INIT(java_lang_Thread) + _r0.o = __CLASS_java_lang_Thread; + java_lang_Object_acquireLockRecursive__(_r0.o); + XMLVM_TRY_BEGIN(w5666aaac72b1c11) + // Begin try + XMLVM_SOURCE_POSITION("Thread.java", 902) + _r1.i = java_lang_Thread_GET_numberOfActiveNonDaemonThreads(); + _r2.i = 1; + _r1.i = _r1.i - _r2.i; + java_lang_Thread_PUT_numberOfActiveNonDaemonThreads( _r1.i); + XMLVM_SOURCE_POSITION("Thread.java", 904) + _r1.i = java_lang_Thread_GET_numberOfActiveNonDaemonThreads(); + if (_r1.i != 0) { XMLVM_MEMCPY(curThread_w5666aaac72b1c11->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w5666aaac72b1c11, sizeof(XMLVM_JMP_BUF)); goto label27; }; + XMLVM_SOURCE_POSITION("Thread.java", 905) + _r1.i = 0; + java_lang_System_exit___int(_r1.i); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac72b1c11) + XMLVM_CATCH_SPECIFIC(w5666aaac72b1c11,java_lang_Object,32) + XMLVM_CATCH_END(w5666aaac72b1c11) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac72b1c11) + label27:; + XMLVM_TRY_BEGIN(w5666aaac72b1c13) + // Begin try + XMLVM_SOURCE_POSITION("Thread.java", 907) + java_lang_Object_releaseLockRecursive__(_r0.o); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac72b1c13) + XMLVM_CATCH_SPECIFIC(w5666aaac72b1c13,java_lang_Object,32) + XMLVM_CATCH_END(w5666aaac72b1c13) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac72b1c13) + label28:; + XMLVM_SOURCE_POSITION("Thread.java", 909) + XMLVM_EXIT_METHOD() + return; + label29:; + java_lang_Thread* curThread_w5666aaac72b1c18 = (java_lang_Thread*)java_lang_Thread_currentThread__(); + _r0.o = curThread_w5666aaac72b1c18->fields.java_lang_Thread.xmlvmException_; + XMLVM_TRY_BEGIN(w5666aaac72b1c19) + // Begin try + java_lang_Object_releaseLockRecursive__(_r3.o); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac72b1c19) + XMLVM_CATCH_SPECIFIC(w5666aaac72b1c19,java_lang_Object,29) + XMLVM_CATCH_END(w5666aaac72b1c19) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac72b1c19) + XMLVM_THROW_CUSTOM(_r0.o) + label32:; + java_lang_Thread* curThread_w5666aaac72b1c22 = (java_lang_Thread*)java_lang_Thread_currentThread__(); + _r1.o = curThread_w5666aaac72b1c22->fields.java_lang_Thread.xmlvmException_; + XMLVM_TRY_BEGIN(w5666aaac72b1c23) + // Begin try + java_lang_Object_releaseLockRecursive__(_r0.o); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac72b1c23) + XMLVM_CATCH_SPECIFIC(w5666aaac72b1c23,java_lang_Object,32) + XMLVM_CATCH_END(w5666aaac72b1c23) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac72b1c23) + XMLVM_THROW_CUSTOM(_r1.o) + //XMLVM_END_WRAPPER +} + +void java_lang_Thread_run__(JAVA_OBJECT me) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_run__] + XMLVM_ENTER_METHOD("java.lang.Thread", "run", "?") + XMLVMElem _r0; + _r0.o = me; + XMLVM_SOURCE_POSITION("Thread.java", 919) + XMLVM_EXIT_METHOD() + return; + //XMLVM_END_WRAPPER +} + +//XMLVM_NATIVE[void java_lang_Thread_setContextClassLoader___java_lang_ClassLoader(JAVA_OBJECT me, JAVA_OBJECT n1)] + +void java_lang_Thread_setDaemon___boolean(JAVA_OBJECT me, JAVA_BOOLEAN n1) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_setDaemon___boolean] + XMLVM_ENTER_METHOD("java.lang.Thread", "setDaemon", "?") + volatile XMLVMElem _r0; + volatile XMLVMElem _r1; + volatile XMLVMElem _r2; + volatile XMLVMElem _r3; + _r2.o = me; + _r3.i = n1; + XMLVM_SOURCE_POSITION("Thread.java", 946) + java_lang_Object_acquireLockRecursive__(_r2.o); + XMLVM_TRY_BEGIN(w5666aaac75b1b5) + // Begin try + XMLVM_CHECK_NPE(2) + _r0.o = ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadState_; + _r1.o = java_lang_Thread_State_GET_NEW(); + if (_r0.o == _r1.o) { XMLVM_MEMCPY(curThread_w5666aaac75b1b5->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w5666aaac75b1b5, sizeof(XMLVM_JMP_BUF)); goto label16; }; + XMLVM_SOURCE_POSITION("Thread.java", 947) + + + // Red class access removed: java.lang.IllegalThreadStateException::new-instance + XMLVM_RED_CLASS_DEPENDENCY(); + + + // Red class access removed: java.lang.IllegalThreadStateException::<init> + XMLVM_RED_CLASS_DEPENDENCY(); + XMLVM_THROW_CUSTOM(_r0.o) + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac75b1b5) + XMLVM_CATCH_SPECIFIC(w5666aaac75b1b5,java_lang_Object,13) + XMLVM_CATCH_END(w5666aaac75b1b5) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac75b1b5) + label13:; + java_lang_Thread* curThread_w5666aaac75b1b7 = (java_lang_Thread*)java_lang_Thread_currentThread__(); + _r0.o = curThread_w5666aaac75b1b7->fields.java_lang_Thread.xmlvmException_; + java_lang_Object_releaseLockRecursive__(_r2.o); + XMLVM_THROW_CUSTOM(_r0.o) + label16:; + XMLVM_TRY_BEGIN(w5666aaac75b1c11) + // Begin try + XMLVM_SOURCE_POSITION("Thread.java", 949) + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.daemon_ = _r3.i; + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac75b1c11) + XMLVM_CATCH_SPECIFIC(w5666aaac75b1c11,java_lang_Object,13) + XMLVM_CATCH_END(w5666aaac75b1c11) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac75b1c11) + XMLVM_SOURCE_POSITION("Thread.java", 950) + java_lang_Object_releaseLockRecursive__(_r2.o); + XMLVM_EXIT_METHOD() + return; + //XMLVM_END_WRAPPER +} + +//XMLVM_NATIVE[void java_lang_Thread_setDefaultUncaughtExceptionHandler___java_lang_Thread_UncaughtExceptionHandler(JAVA_OBJECT n1)] + +void java_lang_Thread_setName___java_lang_String(JAVA_OBJECT me, JAVA_OBJECT n1) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_setName___java_lang_String] + XMLVM_ENTER_METHOD("java.lang.Thread", "setName", "?") + XMLVMElem _r0; + XMLVMElem _r1; + _r0.o = me; + _r1.o = n1; + XMLVM_SOURCE_POSITION("Thread.java", 977) + XMLVM_CHECK_NPE(0) + ((java_lang_Thread*) _r0.o)->fields.java_lang_Thread.threadName_ = _r1.o; + XMLVM_SOURCE_POSITION("Thread.java", 978) + XMLVM_EXIT_METHOD() + return; + //XMLVM_END_WRAPPER +} + +//XMLVM_NATIVE[void java_lang_Thread_setPriority___int(JAVA_OBJECT me, JAVA_INT n1)] + +void java_lang_Thread_setThreadLocal___java_lang_ThreadLocal_java_lang_Object(JAVA_OBJECT me, JAVA_OBJECT n1, JAVA_OBJECT n2) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_setThreadLocal___java_lang_ThreadLocal_java_lang_Object] + XMLVM_ENTER_METHOD("java.lang.Thread", "setThreadLocal", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + XMLVMElem _r3; + _r1.o = me; + _r2.o = n1; + _r3.o = n2; + XMLVM_SOURCE_POSITION("Thread.java", 1008) + XMLVM_CHECK_NPE(1) + _r0.o = ((java_lang_Thread*) _r1.o)->fields.java_lang_Thread.threadLocalMap_; + XMLVM_CHECK_NPE(0) + (*(JAVA_OBJECT (*)(JAVA_OBJECT, JAVA_OBJECT, JAVA_OBJECT)) *(((java_lang_Object*)_r0.o)->tib->itableBegin)[XMLVM_ITABLE_IDX_java_util_Map_put___java_lang_Object_java_lang_Object])(_r0.o, _r2.o, _r3.o); + XMLVM_SOURCE_POSITION("Thread.java", 1009) + XMLVM_EXIT_METHOD() + return; + //XMLVM_END_WRAPPER +} + +//XMLVM_NATIVE[void java_lang_Thread_setUncaughtExceptionHandler___java_lang_Thread_UncaughtExceptionHandler(JAVA_OBJECT me, JAVA_OBJECT n1)] + +void java_lang_Thread_sleep___long(JAVA_LONG n1) +{ + XMLVM_CLASS_INIT(java_lang_Thread) + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_sleep___long] + XMLVM_ENTER_METHOD("java.lang.Thread", "sleep", "?") + volatile XMLVMElem _r0; + volatile XMLVMElem _r1; + volatile XMLVMElem _r2; + volatile XMLVMElem _r3; + volatile XMLVMElem _r4; + _r3.l = n1; + XMLVM_SOURCE_POSITION("Thread.java", 1037) + _r1.l = 0; + _r1.i = _r3.l > _r1.l ? 1 : (_r3.l == _r1.l ? 0 : -1); + if (_r1.i == 0) goto label16; + XMLVM_SOURCE_POSITION("Thread.java", 1038) + _r0.o = __NEW_java_lang_Object(); + XMLVM_CHECK_NPE(0) + java_lang_Object___INIT___(_r0.o); + XMLVM_SOURCE_POSITION("Thread.java", 1039) + java_lang_Object_acquireLockRecursive__(_r0.o); + XMLVM_TRY_BEGIN(w5666aaac81b1c11) + // Begin try + XMLVM_SOURCE_POSITION("Thread.java", 1040) + XMLVM_CHECK_NPE(0) + java_lang_Object_wait___long(_r0.o, _r3.l); + XMLVM_SOURCE_POSITION("Thread.java", 1041) + java_lang_Object_releaseLockRecursive__(_r0.o); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac81b1c11) + XMLVM_CATCH_SPECIFIC(w5666aaac81b1c11,java_lang_Object,17) + XMLVM_CATCH_END(w5666aaac81b1c11) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac81b1c11) + label16:; + XMLVM_TRY_BEGIN(w5666aaac81b1c13) + // Begin try + XMLVM_SOURCE_POSITION("Thread.java", 1043) + XMLVM_MEMCPY(curThread_w5666aaac81b1c13->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w5666aaac81b1c13, sizeof(XMLVM_JMP_BUF)); + XMLVM_EXIT_METHOD() + return; + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac81b1c13) + XMLVM_CATCH_SPECIFIC(w5666aaac81b1c13,java_lang_Object,17) + XMLVM_CATCH_END(w5666aaac81b1c13) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac81b1c13) + label17:; + XMLVM_TRY_BEGIN(w5666aaac81b1c15) + // Begin try + java_lang_Thread* curThread_w5666aaac81b1c15aa = (java_lang_Thread*)java_lang_Thread_currentThread__(); + _r1.o = curThread_w5666aaac81b1c15aa->fields.java_lang_Thread.xmlvmException_; + java_lang_Object_releaseLockRecursive__(_r0.o); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac81b1c15) + XMLVM_CATCH_SPECIFIC(w5666aaac81b1c15,java_lang_Object,17) + XMLVM_CATCH_END(w5666aaac81b1c15) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac81b1c15) + XMLVM_THROW_CUSTOM(_r1.o) + //XMLVM_END_WRAPPER +} + +void java_lang_Thread_sleep___long_int(JAVA_LONG n1, JAVA_INT n2) +{ + XMLVM_CLASS_INIT(java_lang_Thread) + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_sleep___long_int] + XMLVM_ENTER_METHOD("java.lang.Thread", "sleep", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + XMLVMElem _r3; + XMLVMElem _r4; + XMLVMElem _r5; + XMLVMElem _r6; + XMLVMElem _r7; + _r5.l = n1; + _r7.i = n2; + _r3.l = 1; + _r1.l = 0; + XMLVM_SOURCE_POSITION("Thread.java", 1060) + _r0.i = _r5.l > _r1.l ? 1 : (_r5.l == _r1.l ? 0 : -1); + if (_r0.i >= 0) goto label16; + XMLVM_SOURCE_POSITION("Thread.java", 1061) + + + // Red class access removed: java.lang.IllegalArgumentException::new-instance + XMLVM_RED_CLASS_DEPENDENCY(); + // "sleep milliseconds must be greater than or equal to zero" + _r1.o = xmlvm_create_java_string_from_pool(807); + + + // Red class access removed: java.lang.IllegalArgumentException::<init> + XMLVM_RED_CLASS_DEPENDENCY(); + XMLVM_THROW_CUSTOM(_r0.o) + label16:; + XMLVM_SOURCE_POSITION("Thread.java", 1062) + if (_r7.i < 0) goto label23; + _r0.i = 1000000; + if (_r7.i < _r0.i) goto label31; + label23:; + XMLVM_SOURCE_POSITION("Thread.java", 1063) + + + // Red class access removed: java.lang.IllegalArgumentException::new-instance + XMLVM_RED_CLASS_DEPENDENCY(); + // "sleep nanoseconds must be greater than or equal to zero and less than 1000000" + _r1.o = xmlvm_create_java_string_from_pool(808); + + + // Red class access removed: java.lang.IllegalArgumentException::<init> + XMLVM_RED_CLASS_DEPENDENCY(); + XMLVM_THROW_CUSTOM(_r0.o) + label31:; + XMLVM_SOURCE_POSITION("Thread.java", 1066) + _r0.i = _r5.l > _r1.l ? 1 : (_r5.l == _r1.l ? 0 : -1); + if (_r0.i != 0) goto label41; + if (_r7.i == 0) goto label41; + XMLVM_SOURCE_POSITION("Thread.java", 1067) + java_lang_Thread_sleep___long(_r3.l); + label40:; + XMLVM_SOURCE_POSITION("Thread.java", 1074) + XMLVM_EXIT_METHOD() + return; + label41:; + XMLVM_SOURCE_POSITION("Thread.java", 1069) + _r0.i = 500000; + if (_r7.i < _r0.i) goto label47; + XMLVM_SOURCE_POSITION("Thread.java", 1070) + _r5.l = _r5.l + _r3.l; + label47:; + XMLVM_SOURCE_POSITION("Thread.java", 1072) + java_lang_Thread_sleep___long(_r5.l); + goto label40; + //XMLVM_END_WRAPPER +} + +void java_lang_Thread_start__(JAVA_OBJECT me) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_start__] + XMLVM_ENTER_METHOD("java.lang.Thread", "start", "?") + volatile XMLVMElem _r0; + volatile XMLVMElem _r1; + volatile XMLVMElem _r2; + _r2.o = me; + XMLVM_SOURCE_POSITION("Thread.java", 1085) + java_lang_Object_acquireLockRecursive__(_r2.o); + XMLVM_TRY_BEGIN(w5666aaac83b1b4) + // Begin try + XMLVM_SOURCE_POSITION("Thread.java", 1086) + XMLVM_CHECK_NPE(2) + _r0.o = ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadState_; + _r1.o = java_lang_Thread_State_GET_NEW(); + if (_r0.o == _r1.o) { XMLVM_MEMCPY(curThread_w5666aaac83b1b4->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w5666aaac83b1b4, sizeof(XMLVM_JMP_BUF)); goto label16; }; + XMLVM_SOURCE_POSITION("Thread.java", 1087) + + + // Red class access removed: java.lang.IllegalThreadStateException::new-instance + XMLVM_RED_CLASS_DEPENDENCY(); + + + // Red class access removed: java.lang.IllegalThreadStateException::<init> + XMLVM_RED_CLASS_DEPENDENCY(); + XMLVM_THROW_CUSTOM(_r0.o) + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac83b1b4) + XMLVM_CATCH_SPECIFIC(w5666aaac83b1b4,java_lang_Object,13) + XMLVM_CATCH_END(w5666aaac83b1b4) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac83b1b4) + label13:; + XMLVM_TRY_BEGIN(w5666aaac83b1b6) + // Begin try + XMLVM_SOURCE_POSITION("Thread.java", 1090) + java_lang_Thread* curThread_w5666aaac83b1b6ab1 = (java_lang_Thread*)java_lang_Thread_currentThread__(); + _r0.o = curThread_w5666aaac83b1b6ab1->fields.java_lang_Thread.xmlvmException_; + java_lang_Object_releaseLockRecursive__(_r2.o); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac83b1b6) + XMLVM_CATCH_SPECIFIC(w5666aaac83b1b6,java_lang_Object,13) + XMLVM_CATCH_END(w5666aaac83b1b6) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac83b1b6) + XMLVM_THROW_CUSTOM(_r0.o) + label16:; + XMLVM_TRY_BEGIN(w5666aaac83b1b9) + // Begin try + XMLVM_SOURCE_POSITION("Thread.java", 1089) + _r0.o = java_lang_Thread_State_GET_RUNNABLE(); + XMLVM_CHECK_NPE(2) + ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadState_ = _r0.o; + java_lang_Object_releaseLockRecursive__(_r2.o); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac83b1b9) + XMLVM_CATCH_SPECIFIC(w5666aaac83b1b9,java_lang_Object,13) + XMLVM_CATCH_END(w5666aaac83b1b9) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac83b1b9) + XMLVM_SOURCE_POSITION("Thread.java", 1094) + XMLVM_CHECK_NPE(2) + _r0.i = ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.daemon_; + if (_r0.i != 0) goto label35; + XMLVM_SOURCE_POSITION("Thread.java", 1095) + XMLVM_CLASS_INIT(java_lang_Thread) + _r0.o = __CLASS_java_lang_Thread; + java_lang_Object_acquireLockRecursive__(_r0.o); + XMLVM_TRY_BEGIN(w5666aaac83b1c16) + // Begin try + XMLVM_SOURCE_POSITION("Thread.java", 1096) + _r1.i = java_lang_Thread_GET_numberOfActiveNonDaemonThreads(); + _r1.i = _r1.i + 1; + java_lang_Thread_PUT_numberOfActiveNonDaemonThreads( _r1.i); + XMLVM_SOURCE_POSITION("Thread.java", 1097) + java_lang_Object_releaseLockRecursive__(_r0.o); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac83b1c16) + XMLVM_CATCH_SPECIFIC(w5666aaac83b1c16,java_lang_Object,44) + XMLVM_CATCH_END(w5666aaac83b1c16) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac83b1c16) + label35:; + XMLVM_SOURCE_POSITION("Thread.java", 1099) + XMLVM_CHECK_NPE(2) + _r0.o = ((java_lang_Thread*) _r2.o)->fields.java_lang_Thread.threadGroup_; + XMLVM_CHECK_NPE(0) + java_lang_ThreadGroup_add___java_lang_Thread(_r0.o, _r2.o); + XMLVM_SOURCE_POSITION("Thread.java", 1100) + XMLVM_CHECK_NPE(2) + java_lang_Thread_start0__(_r2.o); + XMLVM_SOURCE_POSITION("Thread.java", 1101) + XMLVM_EXIT_METHOD() + return; + label44:; + java_lang_Thread* curThread_w5666aaac83b1c26 = (java_lang_Thread*)java_lang_Thread_currentThread__(); + _r1.o = curThread_w5666aaac83b1c26->fields.java_lang_Thread.xmlvmException_; + XMLVM_TRY_BEGIN(w5666aaac83b1c27) + // Begin try + java_lang_Object_releaseLockRecursive__(_r0.o); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac83b1c27) + XMLVM_CATCH_SPECIFIC(w5666aaac83b1c27,java_lang_Object,44) + XMLVM_CATCH_END(w5666aaac83b1c27) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac83b1c27) + XMLVM_THROW_CUSTOM(_r1.o) + //XMLVM_END_WRAPPER +} + +//XMLVM_NATIVE[void java_lang_Thread_start0__(JAVA_OBJECT me)] + +//XMLVM_NATIVE[void java_lang_Thread_stop__(JAVA_OBJECT me)] + +//XMLVM_NATIVE[void java_lang_Thread_stop___java_lang_Throwable(JAVA_OBJECT me, JAVA_OBJECT n1)] + +//XMLVM_NATIVE[void java_lang_Thread_suspend__(JAVA_OBJECT me)] + +JAVA_OBJECT java_lang_Thread_toString__(JAVA_OBJECT me) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_toString__] + XMLVM_ENTER_METHOD("java.lang.Thread", "toString", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVMElem _r2; + XMLVMElem _r3; + _r3.o = me; + // "," + _r2.o = xmlvm_create_java_string_from_pool(24); + XMLVM_SOURCE_POSITION("Thread.java", 1158) + _r0.o = __NEW_java_lang_StringBuilder(); + XMLVM_CHECK_NPE(0) + java_lang_StringBuilder___INIT___(_r0.o); + // "Thread[" + _r1.o = xmlvm_create_java_string_from_pool(809); + XMLVM_CHECK_NPE(0) + _r0.o = java_lang_StringBuilder_append___java_lang_String(_r0.o, _r1.o); + XMLVM_CHECK_NPE(3) + _r1.o = ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.threadName_; + XMLVM_CHECK_NPE(0) + _r0.o = java_lang_StringBuilder_append___java_lang_String(_r0.o, _r1.o); + // "," + _r1.o = xmlvm_create_java_string_from_pool(24); + XMLVM_CHECK_NPE(0) + _r0.o = java_lang_StringBuilder_append___java_lang_String(_r0.o, _r2.o); + XMLVM_CHECK_NPE(3) + _r1.i = ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.priority_; + XMLVM_CHECK_NPE(0) + _r0.o = java_lang_StringBuilder_append___int(_r0.o, _r1.i); + // "," + _r1.o = xmlvm_create_java_string_from_pool(24); + XMLVM_CHECK_NPE(0) + _r0.o = java_lang_StringBuilder_append___java_lang_String(_r0.o, _r2.o); + XMLVM_CHECK_NPE(3) + _r1.o = ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.threadGroup_; + if (_r1.o != JAVA_NULL) goto label58; + // "" + _r1.o = xmlvm_create_java_string_from_pool(21); + label43:; + XMLVM_CHECK_NPE(0) + _r0.o = java_lang_StringBuilder_append___java_lang_String(_r0.o, _r1.o); + // "]" + _r1.o = xmlvm_create_java_string_from_pool(183); + XMLVM_CHECK_NPE(0) + _r0.o = java_lang_StringBuilder_append___java_lang_String(_r0.o, _r1.o); + //java_lang_StringBuilder_toString__[5] + XMLVM_CHECK_NPE(0) + _r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_StringBuilder*) _r0.o)->tib->vtable[5])(_r0.o); + XMLVM_EXIT_METHOD() + return _r0.o; + label58:; + XMLVM_CHECK_NPE(3) + _r1.o = ((java_lang_Thread*) _r3.o)->fields.java_lang_Thread.threadGroup_; + XMLVM_CHECK_NPE(1) + _r1.o = java_lang_ThreadGroup_getName__(_r1.o); + goto label43; + //XMLVM_END_WRAPPER +} + +//XMLVM_NATIVE[void java_lang_Thread_yield__()] + +//XMLVM_NATIVE[JAVA_BOOLEAN java_lang_Thread_holdsLock___java_lang_Object(JAVA_OBJECT n1)] + +void java_lang_Thread_setWaitingCondition___org_xmlvm_runtime_Condition(JAVA_OBJECT me, JAVA_OBJECT n1) +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread_setWaitingCondition___org_xmlvm_runtime_Condition] + XMLVM_ENTER_METHOD("java.lang.Thread", "setWaitingCondition", "?") + volatile XMLVMElem _r0; + volatile XMLVMElem _r1; + volatile XMLVMElem _r2; + _r1.o = me; + _r2.o = n1; + XMLVM_SOURCE_POSITION("Thread.java", 1201) + java_lang_Object_acquireLockRecursive__(_r1.o); + XMLVM_TRY_BEGIN(w5666aaac91b1b5) + // Begin try + XMLVM_SOURCE_POSITION("Thread.java", 1202) + XMLVM_CHECK_NPE(1) + ((java_lang_Thread*) _r1.o)->fields.java_lang_Thread.waitingCondition_ = _r2.o; + XMLVM_SOURCE_POSITION("Thread.java", 1203) + java_lang_Object_releaseLockRecursive__(_r1.o); + XMLVM_SOURCE_POSITION("Thread.java", 1204) + XMLVM_MEMCPY(curThread_w5666aaac91b1b5->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w5666aaac91b1b5, sizeof(XMLVM_JMP_BUF)); + XMLVM_EXIT_METHOD() + return; + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac91b1b5) + XMLVM_CATCH_SPECIFIC(w5666aaac91b1b5,java_lang_Object,5) + XMLVM_CATCH_END(w5666aaac91b1b5) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac91b1b5) + label5:; + XMLVM_TRY_BEGIN(w5666aaac91b1b7) + // Begin try + java_lang_Thread* curThread_w5666aaac91b1b7aa = (java_lang_Thread*)java_lang_Thread_currentThread__(); + _r0.o = curThread_w5666aaac91b1b7aa->fields.java_lang_Thread.xmlvmException_; + java_lang_Object_releaseLockRecursive__(_r1.o); + // End try + XMLVM_TRY_END + XMLVM_CATCH_BEGIN(w5666aaac91b1b7) + XMLVM_CATCH_SPECIFIC(w5666aaac91b1b7,java_lang_Object,5) + XMLVM_CATCH_END(w5666aaac91b1b7) + XMLVM_RESTORE_EXCEPTION_ENV(w5666aaac91b1b7) + XMLVM_THROW_CUSTOM(_r0.o) + //XMLVM_END_WRAPPER +} + +void java_lang_Thread___CLINIT_() +{ + //XMLVM_BEGIN_WRAPPER[java_lang_Thread___CLINIT___] + XMLVM_ENTER_METHOD("java.lang.Thread", "<clinit>", "?") + XMLVMElem _r0; + XMLVMElem _r1; + XMLVM_SOURCE_POSITION("Thread.java", 115) + _r0.o = __NEW_org_xmlvm_runtime_Mutex(); + XMLVM_CHECK_NPE(0) + org_xmlvm_runtime_Mutex___INIT___(_r0.o); + java_lang_Thread_PUT_threadSafetyMutex( _r0.o); + XMLVM_SOURCE_POSITION("Thread.java", 118) + _r0.l = 2; + java_lang_Thread_PUT_nextThreadId( _r0.l); + XMLVM_SOURCE_POSITION("Thread.java", 127) + _r0.i = 1; + java_lang_Thread_PUT_numberOfActiveNonDaemonThreads( _r0.i); + XMLVM_SOURCE_POSITION("Thread.java", 148) + _r0.o = __NEW_java_util_HashMap(); + XMLVM_CHECK_NPE(0) + java_util_HashMap___INIT___(_r0.o); + java_lang_Thread_PUT_threadMap( _r0.o); + XMLVM_SOURCE_POSITION("Thread.java", 153) + _r1.o = __NEW_java_lang_ThreadGroup(); + _r0.o = JAVA_NULL; + _r0.o = _r0.o; + XMLVM_CHECK_NPE(1) + java_lang_ThreadGroup___INIT____java_lang_ThreadGroup(_r1.o, _r0.o); + java_lang_Thread_PUT_mainThreadGroup( _r1.o); + XMLVM_EXIT_METHOD() + return; + //XMLVM_END_WRAPPER +} + |