2
#include "java_io_PrintStream.h"
3
#include "java_lang_Class.h"
4
#include "java_lang_NullPointerException.h"
5
#include "java_lang_StackTraceElement.h"
6
#include "java_lang_String.h"
7
#include "java_lang_StringBuilder.h"
8
#include "java_lang_System.h"
10
#include "java_lang_Throwable.h"
12
#define XMLVM_CURRENT_CLASS_NAME Throwable
13
#define XMLVM_CURRENT_PKG_CLASS_NAME java_lang_Throwable
15
__TIB_DEFINITION_java_lang_Throwable __TIB_java_lang_Throwable = {
16
0, // classInitializationBegan
17
0, // classInitialized
18
-1, // initializerThreadId
19
__INIT_java_lang_Throwable, // classInitializer
20
"java.lang.Throwable", // className
21
"java.lang", // package
22
JAVA_NULL, // enclosingClassName
23
JAVA_NULL, // enclosingMethodName
24
JAVA_NULL, // signature
25
(__TIB_DEFINITION_TEMPLATE*) &__TIB_java_lang_Object, // extends
26
sizeof(java_lang_Throwable), // sizeInstance
29
JAVA_OBJECT __CLASS_java_lang_Throwable;
30
JAVA_OBJECT __CLASS_java_lang_Throwable_1ARRAY;
31
JAVA_OBJECT __CLASS_java_lang_Throwable_2ARRAY;
32
JAVA_OBJECT __CLASS_java_lang_Throwable_3ARRAY;
33
//XMLVM_BEGIN_IMPLEMENTATION
34
//XMLVM_END_IMPLEMENTATION
36
static JAVA_LONG _STATIC_java_lang_Throwable_serialVersionUID;
38
#include "xmlvm-reflection.h"
40
static XMLVM_FIELD_REFLECTION_DATA __field_reflection_data[] = {
43
static XMLVM_CONSTRUCTOR_REFLECTION_DATA __constructor_reflection_data[] = {
46
static JAVA_OBJECT constructor_dispatcher(JAVA_OBJECT constructor, JAVA_OBJECT arguments)
48
XMLVM_NOT_IMPLEMENTED();
51
static XMLVM_METHOD_REFLECTION_DATA __method_reflection_data[] = {
54
static JAVA_OBJECT method_dispatcher(JAVA_OBJECT method, JAVA_OBJECT receiver, JAVA_OBJECT arguments)
56
XMLVM_NOT_IMPLEMENTED();
59
void __INIT_java_lang_Throwable()
61
staticInitializerLock(&__TIB_java_lang_Throwable);
63
// While the static initializer mutex is locked, locally store the value of
64
// whether class initialization began or not
65
int initBegan = __TIB_java_lang_Throwable.classInitializationBegan;
67
// Whether or not class initialization had already began, it has begun now
68
__TIB_java_lang_Throwable.classInitializationBegan = 1;
70
staticInitializerUnlock(&__TIB_java_lang_Throwable);
72
JAVA_LONG curThreadId = (JAVA_LONG)pthread_self();
74
if (__TIB_java_lang_Throwable.initializerThreadId != curThreadId) {
75
// Busy wait until the other thread finishes initializing this class
76
while (!__TIB_java_lang_Throwable.classInitialized) {
81
__TIB_java_lang_Throwable.initializerThreadId = curThreadId;
82
XMLVM_CLASS_USED("java.lang.Throwable")
83
__INIT_IMPL_java_lang_Throwable();
87
void __INIT_IMPL_java_lang_Throwable()
89
// Initialize base class if necessary
90
XMLVM_CLASS_INIT(java_lang_Object)
91
__TIB_java_lang_Throwable.newInstanceFunc = __NEW_INSTANCE_java_lang_Throwable;
92
// Copy vtable from base class
93
XMLVM_MEMCPY(__TIB_java_lang_Throwable.vtable, __TIB_java_lang_Object.vtable, sizeof(__TIB_java_lang_Object.vtable));
94
// Initialize vtable for this class
95
__TIB_java_lang_Throwable.vtable[7] = (VTABLE_PTR) &java_lang_Throwable_getMessage__;
96
__TIB_java_lang_Throwable.vtable[5] = (VTABLE_PTR) &java_lang_Throwable_toString__;
97
__TIB_java_lang_Throwable.vtable[6] = (VTABLE_PTR) &java_lang_Throwable_getCause__;
98
xmlvm_init_native_java_lang_Throwable();
99
// Initialize interface information
100
__TIB_java_lang_Throwable.numImplementedInterfaces = 1;
101
__TIB_java_lang_Throwable.implementedInterfaces = (__TIB_DEFINITION_TEMPLATE* (*)[1]) XMLVM_MALLOC(sizeof(__TIB_DEFINITION_TEMPLATE*) * 1);
103
// Initialize interfaces if necessary and assign tib to implementedInterfaces
105
XMLVM_CLASS_INIT(java_io_Serializable)
107
__TIB_java_lang_Throwable.implementedInterfaces[0][0] = &__TIB_java_io_Serializable;
108
// Initialize itable for this class
109
__TIB_java_lang_Throwable.itableBegin = &__TIB_java_lang_Throwable.itable[0];
111
_STATIC_java_lang_Throwable_serialVersionUID = -3042686055658047285;
113
__TIB_java_lang_Throwable.declaredFields = &__field_reflection_data[0];
114
__TIB_java_lang_Throwable.numDeclaredFields = sizeof(__field_reflection_data) / sizeof(XMLVM_FIELD_REFLECTION_DATA);
115
__TIB_java_lang_Throwable.constructorDispatcherFunc = constructor_dispatcher;
116
__TIB_java_lang_Throwable.declaredConstructors = &__constructor_reflection_data[0];
117
__TIB_java_lang_Throwable.numDeclaredConstructors = sizeof(__constructor_reflection_data) / sizeof(XMLVM_CONSTRUCTOR_REFLECTION_DATA);
118
__TIB_java_lang_Throwable.methodDispatcherFunc = method_dispatcher;
119
__TIB_java_lang_Throwable.declaredMethods = &__method_reflection_data[0];
120
__TIB_java_lang_Throwable.numDeclaredMethods = sizeof(__method_reflection_data) / sizeof(XMLVM_METHOD_REFLECTION_DATA);
121
__CLASS_java_lang_Throwable = XMLVM_CREATE_CLASS_OBJECT(&__TIB_java_lang_Throwable);
122
__TIB_java_lang_Throwable.clazz = __CLASS_java_lang_Throwable;
123
__TIB_java_lang_Throwable.baseType = JAVA_NULL;
124
__CLASS_java_lang_Throwable_1ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_java_lang_Throwable);
125
__CLASS_java_lang_Throwable_2ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_java_lang_Throwable_1ARRAY);
126
__CLASS_java_lang_Throwable_3ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_java_lang_Throwable_2ARRAY);
127
//XMLVM_BEGIN_WRAPPER[__INIT_java_lang_Throwable]
130
__TIB_java_lang_Throwable.classInitialized = 1;
133
void __DELETE_java_lang_Throwable(void* me, void* client_data)
135
//XMLVM_BEGIN_WRAPPER[__DELETE_java_lang_Throwable]
139
void __INIT_INSTANCE_MEMBERS_java_lang_Throwable(JAVA_OBJECT me, int derivedClassWillRegisterFinalizer)
141
__INIT_INSTANCE_MEMBERS_java_lang_Object(me, 0 || derivedClassWillRegisterFinalizer);
142
((java_lang_Throwable*) me)->fields.java_lang_Throwable.detailMessage_ = (java_lang_String*) JAVA_NULL;
143
((java_lang_Throwable*) me)->fields.java_lang_Throwable.cause_ = (java_lang_Throwable*) JAVA_NULL;
144
((java_lang_Throwable*) me)->fields.java_lang_Throwable.stackTrace_ = (org_xmlvm_runtime_XMLVMArray*) JAVA_NULL;
145
//XMLVM_BEGIN_WRAPPER[__INIT_INSTANCE_MEMBERS_java_lang_Throwable]
149
JAVA_OBJECT __NEW_java_lang_Throwable()
150
{ XMLVM_CLASS_INIT(java_lang_Throwable)
151
java_lang_Throwable* me = (java_lang_Throwable*) XMLVM_MALLOC(sizeof(java_lang_Throwable));
152
me->tib = &__TIB_java_lang_Throwable;
153
__INIT_INSTANCE_MEMBERS_java_lang_Throwable(me, 0);
154
//XMLVM_BEGIN_WRAPPER[__NEW_java_lang_Throwable]
159
JAVA_OBJECT __NEW_INSTANCE_java_lang_Throwable()
161
JAVA_OBJECT me = JAVA_NULL;
162
me = __NEW_java_lang_Throwable();
163
java_lang_Throwable___INIT___(me);
167
JAVA_LONG java_lang_Throwable_GET_serialVersionUID()
169
XMLVM_CLASS_INIT(java_lang_Throwable)
170
return _STATIC_java_lang_Throwable_serialVersionUID;
173
void java_lang_Throwable_PUT_serialVersionUID(JAVA_LONG v)
175
XMLVM_CLASS_INIT(java_lang_Throwable)
176
_STATIC_java_lang_Throwable_serialVersionUID = v;
179
void java_lang_Throwable___INIT___(JAVA_OBJECT me)
181
//XMLVM_BEGIN_WRAPPER[java_lang_Throwable___INIT___]
182
XMLVM_ENTER_METHOD("java.lang.Throwable", "<init>", "?")
185
XMLVM_SOURCE_POSITION("Throwable.java", 73)
187
java_lang_Object___INIT___(_r0.o);
188
XMLVM_SOURCE_POSITION("Throwable.java", 62)
190
((java_lang_Throwable*) _r0.o)->fields.java_lang_Throwable.cause_ = _r0.o;
191
XMLVM_SOURCE_POSITION("Throwable.java", 74)
193
java_lang_Throwable_fillInStackTrace__(_r0.o);
194
XMLVM_SOURCE_POSITION("Throwable.java", 75)
200
void java_lang_Throwable___INIT____java_lang_String(JAVA_OBJECT me, JAVA_OBJECT n1)
202
//XMLVM_BEGIN_WRAPPER[java_lang_Throwable___INIT____java_lang_String]
203
XMLVM_ENTER_METHOD("java.lang.Throwable", "<init>", "?")
208
XMLVM_SOURCE_POSITION("Throwable.java", 85)
210
java_lang_Throwable___INIT___(_r0.o);
211
XMLVM_SOURCE_POSITION("Throwable.java", 86)
213
((java_lang_Throwable*) _r0.o)->fields.java_lang_Throwable.detailMessage_ = _r1.o;
214
XMLVM_SOURCE_POSITION("Throwable.java", 87)
220
void java_lang_Throwable___INIT____java_lang_String_java_lang_Throwable(JAVA_OBJECT me, JAVA_OBJECT n1, JAVA_OBJECT n2)
222
//XMLVM_BEGIN_WRAPPER[java_lang_Throwable___INIT____java_lang_String_java_lang_Throwable]
223
XMLVM_ENTER_METHOD("java.lang.Throwable", "<init>", "?")
230
XMLVM_SOURCE_POSITION("Throwable.java", 99)
232
java_lang_Throwable___INIT___(_r0.o);
233
XMLVM_SOURCE_POSITION("Throwable.java", 100)
235
((java_lang_Throwable*) _r0.o)->fields.java_lang_Throwable.detailMessage_ = _r1.o;
236
XMLVM_SOURCE_POSITION("Throwable.java", 101)
238
((java_lang_Throwable*) _r0.o)->fields.java_lang_Throwable.cause_ = _r2.o;
239
XMLVM_SOURCE_POSITION("Throwable.java", 102)
245
void java_lang_Throwable___INIT____java_lang_Throwable(JAVA_OBJECT me, JAVA_OBJECT n1)
247
//XMLVM_BEGIN_WRAPPER[java_lang_Throwable___INIT____java_lang_Throwable]
248
XMLVM_ENTER_METHOD("java.lang.Throwable", "<init>", "?")
254
XMLVM_SOURCE_POSITION("Throwable.java", 112)
256
java_lang_Throwable___INIT___(_r1.o);
257
XMLVM_SOURCE_POSITION("Throwable.java", 113)
258
if (_r2.o != JAVA_NULL) goto label11;
262
((java_lang_Throwable*) _r1.o)->fields.java_lang_Throwable.detailMessage_ = _r0.o;
263
XMLVM_SOURCE_POSITION("Throwable.java", 114)
265
((java_lang_Throwable*) _r1.o)->fields.java_lang_Throwable.cause_ = _r2.o;
266
XMLVM_SOURCE_POSITION("Throwable.java", 115)
270
//java_lang_Throwable_toString__[5]
272
_r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_Throwable*) _r2.o)->tib->vtable[5])(_r2.o);
277
//XMLVM_NATIVE[JAVA_OBJECT java_lang_Throwable_fillInStackTrace__(JAVA_OBJECT me)]
279
JAVA_OBJECT java_lang_Throwable_getMessage__(JAVA_OBJECT me)
281
//XMLVM_BEGIN_WRAPPER[java_lang_Throwable_getMessage__]
282
XMLVM_ENTER_METHOD("java.lang.Throwable", "getMessage", "?")
286
XMLVM_SOURCE_POSITION("Throwable.java", 139)
288
_r0.o = ((java_lang_Throwable*) _r1.o)->fields.java_lang_Throwable.detailMessage_;
294
JAVA_OBJECT java_lang_Throwable_getLocalizedMessage__(JAVA_OBJECT me)
296
//XMLVM_BEGIN_WRAPPER[java_lang_Throwable_getLocalizedMessage__]
297
XMLVM_ENTER_METHOD("java.lang.Throwable", "getLocalizedMessage", "?")
301
XMLVM_SOURCE_POSITION("Throwable.java", 152)
302
//java_lang_Throwable_getMessage__[7]
304
_r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_Throwable*) _r1.o)->tib->vtable[7])(_r1.o);
310
//XMLVM_NATIVE[JAVA_OBJECT java_lang_Throwable_getStackTraceImpl__(JAVA_OBJECT me)]
312
JAVA_OBJECT java_lang_Throwable_getStackTrace__(JAVA_OBJECT me)
314
//XMLVM_BEGIN_WRAPPER[java_lang_Throwable_getStackTrace__]
315
XMLVM_ENTER_METHOD("java.lang.Throwable", "getStackTrace", "?")
319
XMLVM_SOURCE_POSITION("Throwable.java", 179)
321
_r0.o = java_lang_Throwable_getInternalStackTrace__(_r1.o);
322
//java_lang_StackTraceElement_1ARRAY_clone__[0]
324
_r1.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((org_xmlvm_runtime_XMLVMArray*) _r0.o)->tib->vtable[0])(_r0.o);
331
void java_lang_Throwable_setStackTrace___java_lang_StackTraceElement_1ARRAY(JAVA_OBJECT me, JAVA_OBJECT n1)
333
//XMLVM_BEGIN_WRAPPER[java_lang_Throwable_setStackTrace___java_lang_StackTraceElement_1ARRAY]
334
XMLVM_ENTER_METHOD("java.lang.Throwable", "setStackTrace", "?")
343
XMLVM_SOURCE_POSITION("Throwable.java", 198)
344
//java_lang_StackTraceElement_1ARRAY_clone__[0]
346
_r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((org_xmlvm_runtime_XMLVMArray*) _r5.o)->tib->vtable[0])(_r5.o);
348
XMLVM_SOURCE_POSITION("Throwable.java", 199)
349
_r1.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r0.o));
352
if (_r2.i < _r1.i) goto label13;
353
XMLVM_SOURCE_POSITION("Throwable.java", 204)
355
((java_lang_Throwable*) _r4.o)->fields.java_lang_Throwable.stackTrace_ = _r0.o;
356
XMLVM_SOURCE_POSITION("Throwable.java", 205)
361
XMLVM_CHECK_ARRAY_BOUNDS(_r0.o, _r2.i);
362
_r3.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r0.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r2.i];
363
XMLVM_SOURCE_POSITION("Throwable.java", 200)
364
if (_r3.o != JAVA_NULL) goto label23;
365
XMLVM_SOURCE_POSITION("Throwable.java", 201)
366
_r0.o = __NEW_java_lang_NullPointerException();
368
java_lang_NullPointerException___INIT___(_r0.o);
369
XMLVM_THROW_CUSTOM(_r0.o)
376
void java_lang_Throwable_printStackTrace__(JAVA_OBJECT me)
378
//XMLVM_BEGIN_WRAPPER[java_lang_Throwable_printStackTrace__]
379
XMLVM_ENTER_METHOD("java.lang.Throwable", "printStackTrace", "?")
383
XMLVM_SOURCE_POSITION("Throwable.java", 212)
384
_r0.o = java_lang_System_GET_err();
386
java_lang_Throwable_printStackTrace___java_io_PrintStream(_r1.o, _r0.o);
387
XMLVM_SOURCE_POSITION("Throwable.java", 213)
393
JAVA_INT java_lang_Throwable_countDuplicates___java_lang_StackTraceElement_1ARRAY_java_lang_StackTraceElement_1ARRAY(JAVA_OBJECT n1, JAVA_OBJECT n2)
395
XMLVM_CLASS_INIT(java_lang_Throwable)
396
//XMLVM_BEGIN_WRAPPER[java_lang_Throwable_countDuplicates___java_lang_StackTraceElement_1ARRAY_java_lang_StackTraceElement_1ARRAY]
397
XMLVM_ENTER_METHOD("java.lang.Throwable", "countDuplicates", "?")
408
XMLVM_SOURCE_POSITION("Throwable.java", 226)
410
XMLVM_SOURCE_POSITION("Throwable.java", 227)
411
_r1.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r7.o));
412
XMLVM_SOURCE_POSITION("Throwable.java", 228)
413
_r2.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r6.o));
419
if (_r0.i < 0) goto label14;
421
if (_r1.i >= 0) goto label15;
423
XMLVM_SOURCE_POSITION("Throwable.java", 236)
427
XMLVM_SOURCE_POSITION("Throwable.java", 229)
429
XMLVM_CHECK_ARRAY_BOUNDS(_r7.o, _r1.i);
430
_r3.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r7.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r1.i];
431
XMLVM_SOURCE_POSITION("Throwable.java", 230)
433
XMLVM_CHECK_ARRAY_BOUNDS(_r6.o, _r0.i);
434
_r4.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r6.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r0.i];
435
//java_lang_StackTraceElement_equals___java_lang_Object[1]
437
_r3.i = (*(JAVA_BOOLEAN (*)(JAVA_OBJECT, JAVA_OBJECT)) ((java_lang_StackTraceElement*) _r3.o)->tib->vtable[1])(_r3.o, _r4.o);
438
if (_r3.i == 0) goto label14;
439
XMLVM_SOURCE_POSITION("Throwable.java", 231)
445
JAVA_OBJECT java_lang_Throwable_getInternalStackTrace__(JAVA_OBJECT me)
447
//XMLVM_BEGIN_WRAPPER[java_lang_Throwable_getInternalStackTrace__]
448
XMLVM_ENTER_METHOD("java.lang.Throwable", "getInternalStackTrace", "?")
452
XMLVM_SOURCE_POSITION("Throwable.java", 247)
454
_r0.o = ((java_lang_Throwable*) _r1.o)->fields.java_lang_Throwable.stackTrace_;
455
if (_r0.o != JAVA_NULL) goto label10;
456
XMLVM_SOURCE_POSITION("Throwable.java", 248)
458
_r0.o = java_lang_Throwable_getStackTraceImpl__(_r1.o);
460
((java_lang_Throwable*) _r1.o)->fields.java_lang_Throwable.stackTrace_ = _r0.o;
462
XMLVM_SOURCE_POSITION("Throwable.java", 250)
464
_r0.o = ((java_lang_Throwable*) _r1.o)->fields.java_lang_Throwable.stackTrace_;
470
void java_lang_Throwable_printStackTrace___java_io_PrintStream(JAVA_OBJECT me, JAVA_OBJECT n1)
472
//XMLVM_BEGIN_WRAPPER[java_lang_Throwable_printStackTrace___java_io_PrintStream]
473
XMLVM_ENTER_METHOD("java.lang.Throwable", "printStackTrace", "?")
489
_r7.o = xmlvm_create_java_string_from_pool(45);
490
XMLVM_SOURCE_POSITION("Throwable.java", 263)
491
//java_lang_Throwable_toString__[5]
493
_r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_Throwable*) _r9.o)->tib->vtable[5])(_r9.o);
495
java_io_PrintStream_println___java_lang_String(_r10.o, _r0.o);
496
XMLVM_SOURCE_POSITION("Throwable.java", 266)
498
_r0.o = java_lang_Throwable_getInternalStackTrace__(_r9.o);
499
XMLVM_SOURCE_POSITION("Throwable.java", 267)
500
_r1.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r0.o));
503
if (_r2.i < _r1.i) goto label28;
504
XMLVM_SOURCE_POSITION("Throwable.java", 272)
505
//java_lang_Throwable_getCause__[6]
507
_r1.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_Throwable*) _r9.o)->tib->vtable[6])(_r9.o);
512
XMLVM_SOURCE_POSITION("Throwable.java", 273)
513
if (_r0.o != JAVA_NULL) goto label51;
514
XMLVM_SOURCE_POSITION("Throwable.java", 287)
519
XMLVM_CHECK_ARRAY_BOUNDS(_r0.o, _r2.i);
520
_r3.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r0.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r2.i];
521
XMLVM_SOURCE_POSITION("Throwable.java", 268)
522
_r4.o = __NEW_java_lang_StringBuilder();
524
_r5.o = xmlvm_create_java_string_from_pool(45);
526
java_lang_StringBuilder___INIT____java_lang_String(_r4.o, _r7.o);
528
_r3.o = java_lang_StringBuilder_append___java_lang_Object(_r4.o, _r3.o);
529
//java_lang_StringBuilder_toString__[5]
531
_r3.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_StringBuilder*) _r3.o)->tib->vtable[5])(_r3.o);
533
java_io_PrintStream_println___java_lang_String(_r10.o, _r3.o);
537
XMLVM_SOURCE_POSITION("Throwable.java", 274)
539
_r2.o = xmlvm_create_java_string_from_pool(46);
541
java_io_PrintStream_print___java_lang_String(_r10.o, _r2.o);
542
XMLVM_SOURCE_POSITION("Throwable.java", 275)
544
java_io_PrintStream_println___java_lang_Object(_r10.o, _r0.o);
545
XMLVM_SOURCE_POSITION("Throwable.java", 276)
547
_r2.o = java_lang_Throwable_getInternalStackTrace__(_r0.o);
548
XMLVM_SOURCE_POSITION("Throwable.java", 277)
549
_r1.i = java_lang_Throwable_countDuplicates___java_lang_StackTraceElement_1ARRAY_java_lang_StackTraceElement_1ARRAY(_r2.o, _r1.o);
552
XMLVM_SOURCE_POSITION("Throwable.java", 278)
553
_r4.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r2.o));
554
_r4.i = _r4.i - _r1.i;
555
if (_r3.i < _r4.i) goto label104;
556
XMLVM_SOURCE_POSITION("Throwable.java", 281)
557
if (_r1.i <= 0) goto label98;
558
XMLVM_SOURCE_POSITION("Throwable.java", 282)
559
_r3.o = __NEW_java_lang_StringBuilder();
561
_r4.o = xmlvm_create_java_string_from_pool(47);
563
java_lang_StringBuilder___INIT____java_lang_String(_r3.o, _r4.o);
565
_r1.o = java_lang_StringBuilder_append___int(_r3.o, _r1.i);
567
_r3.o = xmlvm_create_java_string_from_pool(48);
569
_r1.o = java_lang_StringBuilder_append___java_lang_String(_r1.o, _r3.o);
570
//java_lang_StringBuilder_toString__[5]
572
_r1.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_StringBuilder*) _r1.o)->tib->vtable[5])(_r1.o);
574
java_io_PrintStream_println___java_lang_String(_r10.o, _r1.o);
576
XMLVM_SOURCE_POSITION("Throwable.java", 285)
577
//java_lang_Throwable_getCause__[6]
579
_r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_Throwable*) _r0.o)->tib->vtable[6])(_r0.o);
583
XMLVM_SOURCE_POSITION("Throwable.java", 279)
584
_r4.o = __NEW_java_lang_StringBuilder();
586
_r5.o = xmlvm_create_java_string_from_pool(45);
588
java_lang_StringBuilder___INIT____java_lang_String(_r4.o, _r7.o);
590
XMLVM_CHECK_ARRAY_BOUNDS(_r2.o, _r3.i);
591
_r5.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r2.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i];
593
_r4.o = java_lang_StringBuilder_append___java_lang_Object(_r4.o, _r5.o);
594
//java_lang_StringBuilder_toString__[5]
596
_r4.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_StringBuilder*) _r4.o)->tib->vtable[5])(_r4.o);
598
java_io_PrintStream_println___java_lang_String(_r10.o, _r4.o);
604
void java_lang_Throwable_printStackTrace___java_io_PrintWriter(JAVA_OBJECT me, JAVA_OBJECT n1)
606
//XMLVM_BEGIN_WRAPPER[java_lang_Throwable_printStackTrace___java_io_PrintWriter]
607
XMLVM_ENTER_METHOD("java.lang.Throwable", "printStackTrace", "?")
623
_r7.o = xmlvm_create_java_string_from_pool(45);
624
XMLVM_SOURCE_POSITION("Throwable.java", 299)
625
//java_lang_Throwable_toString__[5]
627
_r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_Throwable*) _r9.o)->tib->vtable[5])(_r9.o);
630
// Red class access removed: java.io.PrintWriter::println
631
XMLVM_RED_CLASS_DEPENDENCY();
632
XMLVM_SOURCE_POSITION("Throwable.java", 302)
634
_r0.o = java_lang_Throwable_getInternalStackTrace__(_r9.o);
635
XMLVM_SOURCE_POSITION("Throwable.java", 303)
636
_r1.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r0.o));
639
if (_r2.i < _r1.i) goto label28;
640
XMLVM_SOURCE_POSITION("Throwable.java", 308)
641
//java_lang_Throwable_getCause__[6]
643
_r1.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_Throwable*) _r9.o)->tib->vtable[6])(_r9.o);
648
XMLVM_SOURCE_POSITION("Throwable.java", 309)
649
if (_r0.o != JAVA_NULL) goto label51;
650
XMLVM_SOURCE_POSITION("Throwable.java", 323)
655
XMLVM_CHECK_ARRAY_BOUNDS(_r0.o, _r2.i);
656
_r3.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r0.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r2.i];
657
XMLVM_SOURCE_POSITION("Throwable.java", 304)
658
_r4.o = __NEW_java_lang_StringBuilder();
660
_r5.o = xmlvm_create_java_string_from_pool(45);
662
java_lang_StringBuilder___INIT____java_lang_String(_r4.o, _r7.o);
664
_r3.o = java_lang_StringBuilder_append___java_lang_Object(_r4.o, _r3.o);
665
//java_lang_StringBuilder_toString__[5]
667
_r3.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_StringBuilder*) _r3.o)->tib->vtable[5])(_r3.o);
670
// Red class access removed: java.io.PrintWriter::println
671
XMLVM_RED_CLASS_DEPENDENCY();
675
XMLVM_SOURCE_POSITION("Throwable.java", 310)
677
_r2.o = xmlvm_create_java_string_from_pool(46);
680
// Red class access removed: java.io.PrintWriter::print
681
XMLVM_RED_CLASS_DEPENDENCY();
682
XMLVM_SOURCE_POSITION("Throwable.java", 311)
685
// Red class access removed: java.io.PrintWriter::println
686
XMLVM_RED_CLASS_DEPENDENCY();
687
XMLVM_SOURCE_POSITION("Throwable.java", 312)
689
_r2.o = java_lang_Throwable_getInternalStackTrace__(_r0.o);
690
XMLVM_SOURCE_POSITION("Throwable.java", 313)
691
_r1.i = java_lang_Throwable_countDuplicates___java_lang_StackTraceElement_1ARRAY_java_lang_StackTraceElement_1ARRAY(_r2.o, _r1.o);
694
XMLVM_SOURCE_POSITION("Throwable.java", 314)
695
_r4.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r2.o));
696
_r4.i = _r4.i - _r1.i;
697
if (_r3.i < _r4.i) goto label104;
698
XMLVM_SOURCE_POSITION("Throwable.java", 317)
699
if (_r1.i <= 0) goto label98;
700
XMLVM_SOURCE_POSITION("Throwable.java", 318)
701
_r3.o = __NEW_java_lang_StringBuilder();
703
_r4.o = xmlvm_create_java_string_from_pool(47);
705
java_lang_StringBuilder___INIT____java_lang_String(_r3.o, _r4.o);
707
_r1.o = java_lang_StringBuilder_append___int(_r3.o, _r1.i);
709
_r3.o = xmlvm_create_java_string_from_pool(48);
711
_r1.o = java_lang_StringBuilder_append___java_lang_String(_r1.o, _r3.o);
712
//java_lang_StringBuilder_toString__[5]
714
_r1.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_StringBuilder*) _r1.o)->tib->vtable[5])(_r1.o);
717
// Red class access removed: java.io.PrintWriter::println
718
XMLVM_RED_CLASS_DEPENDENCY();
720
XMLVM_SOURCE_POSITION("Throwable.java", 321)
721
//java_lang_Throwable_getCause__[6]
723
_r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_Throwable*) _r0.o)->tib->vtable[6])(_r0.o);
727
XMLVM_SOURCE_POSITION("Throwable.java", 315)
728
_r4.o = __NEW_java_lang_StringBuilder();
730
_r5.o = xmlvm_create_java_string_from_pool(45);
732
java_lang_StringBuilder___INIT____java_lang_String(_r4.o, _r7.o);
734
XMLVM_CHECK_ARRAY_BOUNDS(_r2.o, _r3.i);
735
_r5.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r2.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r3.i];
737
_r4.o = java_lang_StringBuilder_append___java_lang_Object(_r4.o, _r5.o);
738
//java_lang_StringBuilder_toString__[5]
740
_r4.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_StringBuilder*) _r4.o)->tib->vtable[5])(_r4.o);
743
// Red class access removed: java.io.PrintWriter::println
744
XMLVM_RED_CLASS_DEPENDENCY();
750
JAVA_OBJECT java_lang_Throwable_toString__(JAVA_OBJECT me)
752
//XMLVM_BEGIN_WRAPPER[java_lang_Throwable_toString__]
753
XMLVM_ENTER_METHOD("java.lang.Throwable", "toString", "?")
761
XMLVM_SOURCE_POSITION("Throwable.java", 327)
763
_r0.o = java_lang_Throwable_getLocalizedMessage__(_r5.o);
764
XMLVM_SOURCE_POSITION("Throwable.java", 328)
765
//java_lang_Object_getClass__[3]
767
_r1.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_Object*) _r5.o)->tib->vtable[3])(_r5.o);
769
_r1.o = java_lang_Class_getName__(_r1.o);
770
XMLVM_SOURCE_POSITION("Throwable.java", 329)
771
if (_r0.o != JAVA_NULL) goto label16;
774
XMLVM_SOURCE_POSITION("Throwable.java", 330)
775
XMLVM_SOURCE_POSITION("Throwable.java", 332)
779
_r2.o = __NEW_java_lang_StringBuilder();
780
//java_lang_String_length__[8]
782
_r3.i = (*(JAVA_INT (*)(JAVA_OBJECT)) ((java_lang_String*) _r1.o)->tib->vtable[8])(_r1.o);
784
//java_lang_String_length__[8]
786
_r4.i = (*(JAVA_INT (*)(JAVA_OBJECT)) ((java_lang_String*) _r0.o)->tib->vtable[8])(_r0.o);
787
_r3.i = _r3.i + _r4.i;
789
java_lang_StringBuilder___INIT____int(_r2.o, _r3.i);
791
_r1.o = java_lang_StringBuilder_append___java_lang_String(_r2.o, _r1.o);
793
_r2.o = xmlvm_create_java_string_from_pool(49);
795
_r1.o = java_lang_StringBuilder_append___java_lang_String(_r1.o, _r2.o);
796
XMLVM_SOURCE_POSITION("Throwable.java", 333)
798
_r0.o = java_lang_StringBuilder_append___java_lang_String(_r1.o, _r0.o);
799
//java_lang_StringBuilder_toString__[5]
801
_r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_StringBuilder*) _r0.o)->tib->vtable[5])(_r0.o);
806
JAVA_OBJECT java_lang_Throwable_initCause___java_lang_Throwable(JAVA_OBJECT me, JAVA_OBJECT n1)
808
//XMLVM_BEGIN_WRAPPER[java_lang_Throwable_initCause___java_lang_Throwable]
809
XMLVM_ENTER_METHOD("java.lang.Throwable", "initCause", "?")
810
volatile XMLVMElem _r0;
811
volatile XMLVMElem _r1;
812
volatile XMLVMElem _r2;
813
volatile XMLVMElem _r3;
816
XMLVM_SOURCE_POSITION("Throwable.java", 349)
817
java_lang_Object_acquireLockRecursive__(_r2.o);
818
XMLVM_TRY_BEGIN(w497aaac20b1b5)
821
_r0.o = ((java_lang_Throwable*) _r2.o)->fields.java_lang_Throwable.cause_;
822
if (_r0.o != _r2.o) { XMLVM_MEMCPY(curThread_w497aaac20b1b5->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w497aaac20b1b5, sizeof(XMLVM_JMP_BUF)); goto label22; };
823
XMLVM_SOURCE_POSITION("Throwable.java", 350)
824
if (_r3.o == _r2.o) { XMLVM_MEMCPY(curThread_w497aaac20b1b5->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w497aaac20b1b5, sizeof(XMLVM_JMP_BUF)); goto label11; };
825
XMLVM_SOURCE_POSITION("Throwable.java", 351)
827
((java_lang_Throwable*) _r2.o)->fields.java_lang_Throwable.cause_ = _r3.o;
830
XMLVM_CATCH_BEGIN(w497aaac20b1b5)
831
XMLVM_CATCH_SPECIFIC(w497aaac20b1b5,java_lang_Object,19)
832
XMLVM_CATCH_END(w497aaac20b1b5)
833
XMLVM_RESTORE_EXCEPTION_ENV(w497aaac20b1b5)
834
XMLVM_SOURCE_POSITION("Throwable.java", 352)
835
java_lang_Object_releaseLockRecursive__(_r2.o);
839
XMLVM_TRY_BEGIN(w497aaac20b1c10)
841
XMLVM_SOURCE_POSITION("Throwable.java", 354)
844
// Red class access removed: java.lang.IllegalArgumentException::new-instance
845
XMLVM_RED_CLASS_DEPENDENCY();
846
// "Cause cannot be the receiver"
847
_r1.o = xmlvm_create_java_string_from_pool(50);
850
// Red class access removed: java.lang.IllegalArgumentException::<init>
851
XMLVM_RED_CLASS_DEPENDENCY();
852
XMLVM_THROW_CUSTOM(_r0.o)
855
XMLVM_CATCH_BEGIN(w497aaac20b1c10)
856
XMLVM_CATCH_SPECIFIC(w497aaac20b1c10,java_lang_Object,19)
857
XMLVM_CATCH_END(w497aaac20b1c10)
858
XMLVM_RESTORE_EXCEPTION_ENV(w497aaac20b1c10)
860
java_lang_Thread* curThread_w497aaac20b1c12 = (java_lang_Thread*)java_lang_Thread_currentThread__();
861
_r0.o = curThread_w497aaac20b1c12->fields.java_lang_Thread.xmlvmException_;
862
java_lang_Object_releaseLockRecursive__(_r2.o);
863
XMLVM_THROW_CUSTOM(_r0.o)
865
XMLVM_TRY_BEGIN(w497aaac20b1c16)
867
XMLVM_SOURCE_POSITION("Throwable.java", 356)
870
// Red class access removed: java.lang.IllegalStateException::new-instance
871
XMLVM_RED_CLASS_DEPENDENCY();
872
// "Cause already initialized"
873
_r1.o = xmlvm_create_java_string_from_pool(51);
876
// Red class access removed: java.lang.IllegalStateException::<init>
877
XMLVM_RED_CLASS_DEPENDENCY();
878
XMLVM_THROW_CUSTOM(_r0.o)
881
XMLVM_CATCH_BEGIN(w497aaac20b1c16)
882
XMLVM_CATCH_SPECIFIC(w497aaac20b1c16,java_lang_Object,19)
883
XMLVM_CATCH_END(w497aaac20b1c16)
884
XMLVM_RESTORE_EXCEPTION_ENV(w497aaac20b1c16)
888
JAVA_OBJECT java_lang_Throwable_getCause__(JAVA_OBJECT me)
890
//XMLVM_BEGIN_WRAPPER[java_lang_Throwable_getCause__]
891
XMLVM_ENTER_METHOD("java.lang.Throwable", "getCause", "?")
895
XMLVM_SOURCE_POSITION("Throwable.java", 366)
897
_r0.o = ((java_lang_Throwable*) _r1.o)->fields.java_lang_Throwable.cause_;
898
if (_r0.o != _r1.o) goto label6;
899
XMLVM_SOURCE_POSITION("Throwable.java", 367)
902
XMLVM_SOURCE_POSITION("Throwable.java", 369)
907
_r0.o = ((java_lang_Throwable*) _r1.o)->fields.java_lang_Throwable.cause_;
912
void java_lang_Throwable_writeObject___java_io_ObjectOutputStream(JAVA_OBJECT me, JAVA_OBJECT n1)
914
//XMLVM_BEGIN_WRAPPER[java_lang_Throwable_writeObject___java_io_ObjectOutputStream]
915
XMLVM_ENTER_METHOD("java.lang.Throwable", "writeObject", "?")
920
XMLVM_SOURCE_POSITION("Throwable.java", 374)
922
java_lang_Throwable_getInternalStackTrace__(_r0.o);
923
XMLVM_SOURCE_POSITION("Throwable.java", 375)
926
// Red class access removed: java.io.ObjectOutputStream::defaultWriteObject
927
XMLVM_RED_CLASS_DEPENDENCY();
928
XMLVM_SOURCE_POSITION("Throwable.java", 376)