1 #include "xmlvm.h"
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"
9 
10 #include "java_lang_Throwable.h"
11 
12 #define XMLVM_CURRENT_CLASS_NAME Throwable
13 #define XMLVM_CURRENT_PKG_CLASS_NAME java_lang_Throwable
14 
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
27     XMLVM_TYPE_CLASS};
28 
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
35 
36 static JAVA_LONG _STATIC_java_lang_Throwable_serialVersionUID;
37 
38 #include "xmlvm-reflection.h"
39 
40 static XMLVM_FIELD_REFLECTION_DATA __field_reflection_data[] = {
41 };
42 
43 static XMLVM_CONSTRUCTOR_REFLECTION_DATA __constructor_reflection_data[] = {
44 };
45 
constructor_dispatcher(JAVA_OBJECT constructor,JAVA_OBJECT arguments)46 static JAVA_OBJECT constructor_dispatcher(JAVA_OBJECT constructor, JAVA_OBJECT arguments)
47 {
48     XMLVM_NOT_IMPLEMENTED();
49 }
50 
51 static XMLVM_METHOD_REFLECTION_DATA __method_reflection_data[] = {
52 };
53 
method_dispatcher(JAVA_OBJECT method,JAVA_OBJECT receiver,JAVA_OBJECT arguments)54 static JAVA_OBJECT method_dispatcher(JAVA_OBJECT method, JAVA_OBJECT receiver, JAVA_OBJECT arguments)
55 {
56     XMLVM_NOT_IMPLEMENTED();
57 }
58 
__INIT_java_lang_Throwable()59 void __INIT_java_lang_Throwable()
60 {
61     staticInitializerLock(&__TIB_java_lang_Throwable);
62 
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;
66 
67     // Whether or not class initialization had already began, it has begun now
68     __TIB_java_lang_Throwable.classInitializationBegan = 1;
69 
70     staticInitializerUnlock(&__TIB_java_lang_Throwable);
71 
72     JAVA_LONG curThreadId = (JAVA_LONG)pthread_self();
73     if (initBegan) {
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) {
77                 // do nothing
78             }
79         }
80     } else {
81         __TIB_java_lang_Throwable.initializerThreadId = curThreadId;
82         XMLVM_CLASS_USED("java.lang.Throwable")
83         __INIT_IMPL_java_lang_Throwable();
84     }
85 }
86 
__INIT_IMPL_java_lang_Throwable()87 void __INIT_IMPL_java_lang_Throwable()
88 {
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);
102 
103     // Initialize interfaces if necessary and assign tib to implementedInterfaces
104 
105     XMLVM_CLASS_INIT(java_io_Serializable)
106 
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];
110 
111     _STATIC_java_lang_Throwable_serialVersionUID = -3042686055658047285;
112 
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]
128     //XMLVM_END_WRAPPER
129 
130     __TIB_java_lang_Throwable.classInitialized = 1;
131 }
132 
__DELETE_java_lang_Throwable(void * me,void * client_data)133 void __DELETE_java_lang_Throwable(void* me, void* client_data)
134 {
135     //XMLVM_BEGIN_WRAPPER[__DELETE_java_lang_Throwable]
136     //XMLVM_END_WRAPPER
137 }
138 
__INIT_INSTANCE_MEMBERS_java_lang_Throwable(JAVA_OBJECT me,int derivedClassWillRegisterFinalizer)139 void __INIT_INSTANCE_MEMBERS_java_lang_Throwable(JAVA_OBJECT me, int derivedClassWillRegisterFinalizer)
140 {
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]
146     //XMLVM_END_WRAPPER
147 }
148 
__NEW_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]
155     //XMLVM_END_WRAPPER
156     return me;
157 }
158 
__NEW_INSTANCE_java_lang_Throwable()159 JAVA_OBJECT __NEW_INSTANCE_java_lang_Throwable()
160 {
161     JAVA_OBJECT me = JAVA_NULL;
162     me = __NEW_java_lang_Throwable();
163     java_lang_Throwable___INIT___(me);
164     return me;
165 }
166 
java_lang_Throwable_GET_serialVersionUID()167 JAVA_LONG java_lang_Throwable_GET_serialVersionUID()
168 {
169     XMLVM_CLASS_INIT(java_lang_Throwable)
170     return _STATIC_java_lang_Throwable_serialVersionUID;
171 }
172 
java_lang_Throwable_PUT_serialVersionUID(JAVA_LONG v)173 void java_lang_Throwable_PUT_serialVersionUID(JAVA_LONG v)
174 {
175     XMLVM_CLASS_INIT(java_lang_Throwable)
176 _STATIC_java_lang_Throwable_serialVersionUID = v;
177 }
178 
java_lang_Throwable___INIT___(JAVA_OBJECT me)179 void java_lang_Throwable___INIT___(JAVA_OBJECT me)
180 {
181     //XMLVM_BEGIN_WRAPPER[java_lang_Throwable___INIT___]
182     XMLVM_ENTER_METHOD("java.lang.Throwable", "<init>", "?")
183     XMLVMElem _r0;
184     _r0.o = me;
185     XMLVM_SOURCE_POSITION("Throwable.java", 73)
186     XMLVM_CHECK_NPE(0)
187     java_lang_Object___INIT___(_r0.o);
188     XMLVM_SOURCE_POSITION("Throwable.java", 62)
189     XMLVM_CHECK_NPE(0)
190     ((java_lang_Throwable*) _r0.o)->fields.java_lang_Throwable.cause_ = _r0.o;
191     XMLVM_SOURCE_POSITION("Throwable.java", 74)
192     XMLVM_CHECK_NPE(0)
193     java_lang_Throwable_fillInStackTrace__(_r0.o);
194     XMLVM_SOURCE_POSITION("Throwable.java", 75)
195     XMLVM_EXIT_METHOD()
196     return;
197     //XMLVM_END_WRAPPER
198 }
199 
java_lang_Throwable___INIT____java_lang_String(JAVA_OBJECT me,JAVA_OBJECT n1)200 void java_lang_Throwable___INIT____java_lang_String(JAVA_OBJECT me, JAVA_OBJECT n1)
201 {
202     //XMLVM_BEGIN_WRAPPER[java_lang_Throwable___INIT____java_lang_String]
203     XMLVM_ENTER_METHOD("java.lang.Throwable", "<init>", "?")
204     XMLVMElem _r0;
205     XMLVMElem _r1;
206     _r0.o = me;
207     _r1.o = n1;
208     XMLVM_SOURCE_POSITION("Throwable.java", 85)
209     XMLVM_CHECK_NPE(0)
210     java_lang_Throwable___INIT___(_r0.o);
211     XMLVM_SOURCE_POSITION("Throwable.java", 86)
212     XMLVM_CHECK_NPE(0)
213     ((java_lang_Throwable*) _r0.o)->fields.java_lang_Throwable.detailMessage_ = _r1.o;
214     XMLVM_SOURCE_POSITION("Throwable.java", 87)
215     XMLVM_EXIT_METHOD()
216     return;
217     //XMLVM_END_WRAPPER
218 }
219 
java_lang_Throwable___INIT____java_lang_String_java_lang_Throwable(JAVA_OBJECT me,JAVA_OBJECT n1,JAVA_OBJECT n2)220 void java_lang_Throwable___INIT____java_lang_String_java_lang_Throwable(JAVA_OBJECT me, JAVA_OBJECT n1, JAVA_OBJECT n2)
221 {
222     //XMLVM_BEGIN_WRAPPER[java_lang_Throwable___INIT____java_lang_String_java_lang_Throwable]
223     XMLVM_ENTER_METHOD("java.lang.Throwable", "<init>", "?")
224     XMLVMElem _r0;
225     XMLVMElem _r1;
226     XMLVMElem _r2;
227     _r0.o = me;
228     _r1.o = n1;
229     _r2.o = n2;
230     XMLVM_SOURCE_POSITION("Throwable.java", 99)
231     XMLVM_CHECK_NPE(0)
232     java_lang_Throwable___INIT___(_r0.o);
233     XMLVM_SOURCE_POSITION("Throwable.java", 100)
234     XMLVM_CHECK_NPE(0)
235     ((java_lang_Throwable*) _r0.o)->fields.java_lang_Throwable.detailMessage_ = _r1.o;
236     XMLVM_SOURCE_POSITION("Throwable.java", 101)
237     XMLVM_CHECK_NPE(0)
238     ((java_lang_Throwable*) _r0.o)->fields.java_lang_Throwable.cause_ = _r2.o;
239     XMLVM_SOURCE_POSITION("Throwable.java", 102)
240     XMLVM_EXIT_METHOD()
241     return;
242     //XMLVM_END_WRAPPER
243 }
244 
java_lang_Throwable___INIT____java_lang_Throwable(JAVA_OBJECT me,JAVA_OBJECT n1)245 void java_lang_Throwable___INIT____java_lang_Throwable(JAVA_OBJECT me, JAVA_OBJECT n1)
246 {
247     //XMLVM_BEGIN_WRAPPER[java_lang_Throwable___INIT____java_lang_Throwable]
248     XMLVM_ENTER_METHOD("java.lang.Throwable", "<init>", "?")
249     XMLVMElem _r0;
250     XMLVMElem _r1;
251     XMLVMElem _r2;
252     _r1.o = me;
253     _r2.o = n1;
254     XMLVM_SOURCE_POSITION("Throwable.java", 112)
255     XMLVM_CHECK_NPE(1)
256     java_lang_Throwable___INIT___(_r1.o);
257     XMLVM_SOURCE_POSITION("Throwable.java", 113)
258     if (_r2.o != JAVA_NULL) goto label11;
259     _r0.o = JAVA_NULL;
260     label6:;
261     XMLVM_CHECK_NPE(1)
262     ((java_lang_Throwable*) _r1.o)->fields.java_lang_Throwable.detailMessage_ = _r0.o;
263     XMLVM_SOURCE_POSITION("Throwable.java", 114)
264     XMLVM_CHECK_NPE(1)
265     ((java_lang_Throwable*) _r1.o)->fields.java_lang_Throwable.cause_ = _r2.o;
266     XMLVM_SOURCE_POSITION("Throwable.java", 115)
267     XMLVM_EXIT_METHOD()
268     return;
269     label11:;
270     //java_lang_Throwable_toString__[5]
271     XMLVM_CHECK_NPE(2)
272     _r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_Throwable*) _r2.o)->tib->vtable[5])(_r2.o);
273     goto label6;
274     //XMLVM_END_WRAPPER
275 }
276 
277 //XMLVM_NATIVE[JAVA_OBJECT java_lang_Throwable_fillInStackTrace__(JAVA_OBJECT me)]
278 
java_lang_Throwable_getMessage__(JAVA_OBJECT me)279 JAVA_OBJECT java_lang_Throwable_getMessage__(JAVA_OBJECT me)
280 {
281     //XMLVM_BEGIN_WRAPPER[java_lang_Throwable_getMessage__]
282     XMLVM_ENTER_METHOD("java.lang.Throwable", "getMessage", "?")
283     XMLVMElem _r0;
284     XMLVMElem _r1;
285     _r1.o = me;
286     XMLVM_SOURCE_POSITION("Throwable.java", 139)
287     XMLVM_CHECK_NPE(1)
288     _r0.o = ((java_lang_Throwable*) _r1.o)->fields.java_lang_Throwable.detailMessage_;
289     XMLVM_EXIT_METHOD()
290     return _r0.o;
291     //XMLVM_END_WRAPPER
292 }
293 
java_lang_Throwable_getLocalizedMessage__(JAVA_OBJECT me)294 JAVA_OBJECT java_lang_Throwable_getLocalizedMessage__(JAVA_OBJECT me)
295 {
296     //XMLVM_BEGIN_WRAPPER[java_lang_Throwable_getLocalizedMessage__]
297     XMLVM_ENTER_METHOD("java.lang.Throwable", "getLocalizedMessage", "?")
298     XMLVMElem _r0;
299     XMLVMElem _r1;
300     _r1.o = me;
301     XMLVM_SOURCE_POSITION("Throwable.java", 152)
302     //java_lang_Throwable_getMessage__[7]
303     XMLVM_CHECK_NPE(1)
304     _r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_Throwable*) _r1.o)->tib->vtable[7])(_r1.o);
305     XMLVM_EXIT_METHOD()
306     return _r0.o;
307     //XMLVM_END_WRAPPER
308 }
309 
310 //XMLVM_NATIVE[JAVA_OBJECT java_lang_Throwable_getStackTraceImpl__(JAVA_OBJECT me)]
311 
java_lang_Throwable_getStackTrace__(JAVA_OBJECT me)312 JAVA_OBJECT java_lang_Throwable_getStackTrace__(JAVA_OBJECT me)
313 {
314     //XMLVM_BEGIN_WRAPPER[java_lang_Throwable_getStackTrace__]
315     XMLVM_ENTER_METHOD("java.lang.Throwable", "getStackTrace", "?")
316     XMLVMElem _r0;
317     XMLVMElem _r1;
318     _r1.o = me;
319     XMLVM_SOURCE_POSITION("Throwable.java", 179)
320     XMLVM_CHECK_NPE(1)
321     _r0.o = java_lang_Throwable_getInternalStackTrace__(_r1.o);
322     //java_lang_StackTraceElement_1ARRAY_clone__[0]
323     XMLVM_CHECK_NPE(0)
324     _r1.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((org_xmlvm_runtime_XMLVMArray*) _r0.o)->tib->vtable[0])(_r0.o);
325     _r1.o = _r1.o;
326     XMLVM_EXIT_METHOD()
327     return _r1.o;
328     //XMLVM_END_WRAPPER
329 }
330 
java_lang_Throwable_setStackTrace___java_lang_StackTraceElement_1ARRAY(JAVA_OBJECT me,JAVA_OBJECT n1)331 void java_lang_Throwable_setStackTrace___java_lang_StackTraceElement_1ARRAY(JAVA_OBJECT me, JAVA_OBJECT n1)
332 {
333     //XMLVM_BEGIN_WRAPPER[java_lang_Throwable_setStackTrace___java_lang_StackTraceElement_1ARRAY]
334     XMLVM_ENTER_METHOD("java.lang.Throwable", "setStackTrace", "?")
335     XMLVMElem _r0;
336     XMLVMElem _r1;
337     XMLVMElem _r2;
338     XMLVMElem _r3;
339     XMLVMElem _r4;
340     XMLVMElem _r5;
341     _r4.o = me;
342     _r5.o = n1;
343     XMLVM_SOURCE_POSITION("Throwable.java", 198)
344     //java_lang_StackTraceElement_1ARRAY_clone__[0]
345     XMLVM_CHECK_NPE(5)
346     _r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((org_xmlvm_runtime_XMLVMArray*) _r5.o)->tib->vtable[0])(_r5.o);
347     _r0.o = _r0.o;
348     XMLVM_SOURCE_POSITION("Throwable.java", 199)
349     _r1.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r0.o));
350     _r2.i = 0;
351     label8:;
352     if (_r2.i < _r1.i) goto label13;
353     XMLVM_SOURCE_POSITION("Throwable.java", 204)
354     XMLVM_CHECK_NPE(4)
355     ((java_lang_Throwable*) _r4.o)->fields.java_lang_Throwable.stackTrace_ = _r0.o;
356     XMLVM_SOURCE_POSITION("Throwable.java", 205)
357     XMLVM_EXIT_METHOD()
358     return;
359     label13:;
360     XMLVM_CHECK_NPE(0)
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();
367     XMLVM_CHECK_NPE(0)
368     java_lang_NullPointerException___INIT___(_r0.o);
369     XMLVM_THROW_CUSTOM(_r0.o)
370     label23:;
371     _r2.i = _r2.i + 1;
372     goto label8;
373     //XMLVM_END_WRAPPER
374 }
375 
java_lang_Throwable_printStackTrace__(JAVA_OBJECT me)376 void java_lang_Throwable_printStackTrace__(JAVA_OBJECT me)
377 {
378     //XMLVM_BEGIN_WRAPPER[java_lang_Throwable_printStackTrace__]
379     XMLVM_ENTER_METHOD("java.lang.Throwable", "printStackTrace", "?")
380     XMLVMElem _r0;
381     XMLVMElem _r1;
382     _r1.o = me;
383     XMLVM_SOURCE_POSITION("Throwable.java", 212)
384     _r0.o = java_lang_System_GET_err();
385     XMLVM_CHECK_NPE(1)
386     java_lang_Throwable_printStackTrace___java_io_PrintStream(_r1.o, _r0.o);
387     XMLVM_SOURCE_POSITION("Throwable.java", 213)
388     XMLVM_EXIT_METHOD()
389     return;
390     //XMLVM_END_WRAPPER
391 }
392 
java_lang_Throwable_countDuplicates___java_lang_StackTraceElement_1ARRAY_java_lang_StackTraceElement_1ARRAY(JAVA_OBJECT n1,JAVA_OBJECT n2)393 JAVA_INT java_lang_Throwable_countDuplicates___java_lang_StackTraceElement_1ARRAY_java_lang_StackTraceElement_1ARRAY(JAVA_OBJECT n1, JAVA_OBJECT n2)
394 {
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", "?")
398     XMLVMElem _r0;
399     XMLVMElem _r1;
400     XMLVMElem _r2;
401     XMLVMElem _r3;
402     XMLVMElem _r4;
403     XMLVMElem _r5;
404     XMLVMElem _r6;
405     XMLVMElem _r7;
406     _r6.o = n1;
407     _r7.o = n2;
408     XMLVM_SOURCE_POSITION("Throwable.java", 226)
409     _r0.i = 0;
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));
414     _r5 = _r2;
415     _r2 = _r0;
416     _r0 = _r5;
417     label6:;
418     _r0.i = _r0.i + -1;
419     if (_r0.i < 0) goto label14;
420     _r1.i = _r1.i + -1;
421     if (_r1.i >= 0) goto label15;
422     label14:;
423     XMLVM_SOURCE_POSITION("Throwable.java", 236)
424     XMLVM_EXIT_METHOD()
425     return _r2.i;
426     label15:;
427     XMLVM_SOURCE_POSITION("Throwable.java", 229)
428     XMLVM_CHECK_NPE(7)
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)
432     XMLVM_CHECK_NPE(6)
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]
436     XMLVM_CHECK_NPE(3)
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)
440     _r2.i = _r2.i + 1;
441     goto label6;
442     //XMLVM_END_WRAPPER
443 }
444 
java_lang_Throwable_getInternalStackTrace__(JAVA_OBJECT me)445 JAVA_OBJECT java_lang_Throwable_getInternalStackTrace__(JAVA_OBJECT me)
446 {
447     //XMLVM_BEGIN_WRAPPER[java_lang_Throwable_getInternalStackTrace__]
448     XMLVM_ENTER_METHOD("java.lang.Throwable", "getInternalStackTrace", "?")
449     XMLVMElem _r0;
450     XMLVMElem _r1;
451     _r1.o = me;
452     XMLVM_SOURCE_POSITION("Throwable.java", 247)
453     XMLVM_CHECK_NPE(1)
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)
457     XMLVM_CHECK_NPE(1)
458     _r0.o = java_lang_Throwable_getStackTraceImpl__(_r1.o);
459     XMLVM_CHECK_NPE(1)
460     ((java_lang_Throwable*) _r1.o)->fields.java_lang_Throwable.stackTrace_ = _r0.o;
461     label10:;
462     XMLVM_SOURCE_POSITION("Throwable.java", 250)
463     XMLVM_CHECK_NPE(1)
464     _r0.o = ((java_lang_Throwable*) _r1.o)->fields.java_lang_Throwable.stackTrace_;
465     XMLVM_EXIT_METHOD()
466     return _r0.o;
467     //XMLVM_END_WRAPPER
468 }
469 
java_lang_Throwable_printStackTrace___java_io_PrintStream(JAVA_OBJECT me,JAVA_OBJECT n1)470 void java_lang_Throwable_printStackTrace___java_io_PrintStream(JAVA_OBJECT me, JAVA_OBJECT n1)
471 {
472     //XMLVM_BEGIN_WRAPPER[java_lang_Throwable_printStackTrace___java_io_PrintStream]
473     XMLVM_ENTER_METHOD("java.lang.Throwable", "printStackTrace", "?")
474     XMLVMElem _r0;
475     XMLVMElem _r1;
476     XMLVMElem _r2;
477     XMLVMElem _r3;
478     XMLVMElem _r4;
479     XMLVMElem _r5;
480     XMLVMElem _r6;
481     XMLVMElem _r7;
482     XMLVMElem _r8;
483     XMLVMElem _r9;
484     XMLVMElem _r10;
485     _r9.o = me;
486     _r10.o = n1;
487     _r6.i = 0;
488     // "\011at "
489     _r7.o = xmlvm_create_java_string_from_pool(45);
490     XMLVM_SOURCE_POSITION("Throwable.java", 263)
491     //java_lang_Throwable_toString__[5]
492     XMLVM_CHECK_NPE(9)
493     _r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_Throwable*) _r9.o)->tib->vtable[5])(_r9.o);
494     XMLVM_CHECK_NPE(10)
495     java_io_PrintStream_println___java_lang_String(_r10.o, _r0.o);
496     XMLVM_SOURCE_POSITION("Throwable.java", 266)
497     XMLVM_CHECK_NPE(9)
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));
501     _r2 = _r6;
502     label16:;
503     if (_r2.i < _r1.i) goto label28;
504     XMLVM_SOURCE_POSITION("Throwable.java", 272)
505     //java_lang_Throwable_getCause__[6]
506     XMLVM_CHECK_NPE(9)
507     _r1.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_Throwable*) _r9.o)->tib->vtable[6])(_r9.o);
508     _r8 = _r1;
509     _r1 = _r0;
510     _r0 = _r8;
511     label25:;
512     XMLVM_SOURCE_POSITION("Throwable.java", 273)
513     if (_r0.o != JAVA_NULL) goto label51;
514     XMLVM_SOURCE_POSITION("Throwable.java", 287)
515     XMLVM_EXIT_METHOD()
516     return;
517     label28:;
518     XMLVM_CHECK_NPE(0)
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();
523     // "\011at "
524     _r5.o = xmlvm_create_java_string_from_pool(45);
525     XMLVM_CHECK_NPE(4)
526     java_lang_StringBuilder___INIT____java_lang_String(_r4.o, _r7.o);
527     XMLVM_CHECK_NPE(4)
528     _r3.o = java_lang_StringBuilder_append___java_lang_Object(_r4.o, _r3.o);
529     //java_lang_StringBuilder_toString__[5]
530     XMLVM_CHECK_NPE(3)
531     _r3.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_StringBuilder*) _r3.o)->tib->vtable[5])(_r3.o);
532     XMLVM_CHECK_NPE(10)
533     java_io_PrintStream_println___java_lang_String(_r10.o, _r3.o);
534     _r2.i = _r2.i + 1;
535     goto label16;
536     label51:;
537     XMLVM_SOURCE_POSITION("Throwable.java", 274)
538     // "Caused by: "
539     _r2.o = xmlvm_create_java_string_from_pool(46);
540     XMLVM_CHECK_NPE(10)
541     java_io_PrintStream_print___java_lang_String(_r10.o, _r2.o);
542     XMLVM_SOURCE_POSITION("Throwable.java", 275)
543     XMLVM_CHECK_NPE(10)
544     java_io_PrintStream_println___java_lang_Object(_r10.o, _r0.o);
545     XMLVM_SOURCE_POSITION("Throwable.java", 276)
546     XMLVM_CHECK_NPE(0)
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);
550     _r3 = _r6;
551     label68:;
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();
560     // "\011... "
561     _r4.o = xmlvm_create_java_string_from_pool(47);
562     XMLVM_CHECK_NPE(3)
563     java_lang_StringBuilder___INIT____java_lang_String(_r3.o, _r4.o);
564     XMLVM_CHECK_NPE(3)
565     _r1.o = java_lang_StringBuilder_append___int(_r3.o, _r1.i);
566     // " more"
567     _r3.o = xmlvm_create_java_string_from_pool(48);
568     XMLVM_CHECK_NPE(1)
569     _r1.o = java_lang_StringBuilder_append___java_lang_String(_r1.o, _r3.o);
570     //java_lang_StringBuilder_toString__[5]
571     XMLVM_CHECK_NPE(1)
572     _r1.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_StringBuilder*) _r1.o)->tib->vtable[5])(_r1.o);
573     XMLVM_CHECK_NPE(10)
574     java_io_PrintStream_println___java_lang_String(_r10.o, _r1.o);
575     label98:;
576     XMLVM_SOURCE_POSITION("Throwable.java", 285)
577     //java_lang_Throwable_getCause__[6]
578     XMLVM_CHECK_NPE(0)
579     _r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_Throwable*) _r0.o)->tib->vtable[6])(_r0.o);
580     _r1 = _r2;
581     goto label25;
582     label104:;
583     XMLVM_SOURCE_POSITION("Throwable.java", 279)
584     _r4.o = __NEW_java_lang_StringBuilder();
585     // "\011at "
586     _r5.o = xmlvm_create_java_string_from_pool(45);
587     XMLVM_CHECK_NPE(4)
588     java_lang_StringBuilder___INIT____java_lang_String(_r4.o, _r7.o);
589     XMLVM_CHECK_NPE(2)
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];
592     XMLVM_CHECK_NPE(4)
593     _r4.o = java_lang_StringBuilder_append___java_lang_Object(_r4.o, _r5.o);
594     //java_lang_StringBuilder_toString__[5]
595     XMLVM_CHECK_NPE(4)
596     _r4.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_StringBuilder*) _r4.o)->tib->vtable[5])(_r4.o);
597     XMLVM_CHECK_NPE(10)
598     java_io_PrintStream_println___java_lang_String(_r10.o, _r4.o);
599     _r3.i = _r3.i + 1;
600     goto label68;
601     //XMLVM_END_WRAPPER
602 }
603 
java_lang_Throwable_printStackTrace___java_io_PrintWriter(JAVA_OBJECT me,JAVA_OBJECT n1)604 void java_lang_Throwable_printStackTrace___java_io_PrintWriter(JAVA_OBJECT me, JAVA_OBJECT n1)
605 {
606     //XMLVM_BEGIN_WRAPPER[java_lang_Throwable_printStackTrace___java_io_PrintWriter]
607     XMLVM_ENTER_METHOD("java.lang.Throwable", "printStackTrace", "?")
608     XMLVMElem _r0;
609     XMLVMElem _r1;
610     XMLVMElem _r2;
611     XMLVMElem _r3;
612     XMLVMElem _r4;
613     XMLVMElem _r5;
614     XMLVMElem _r6;
615     XMLVMElem _r7;
616     XMLVMElem _r8;
617     XMLVMElem _r9;
618     XMLVMElem _r10;
619     _r9.o = me;
620     _r10.o = n1;
621     _r6.i = 0;
622     // "\011at "
623     _r7.o = xmlvm_create_java_string_from_pool(45);
624     XMLVM_SOURCE_POSITION("Throwable.java", 299)
625     //java_lang_Throwable_toString__[5]
626     XMLVM_CHECK_NPE(9)
627     _r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_Throwable*) _r9.o)->tib->vtable[5])(_r9.o);
628 
629 
630     // Red class access removed: java.io.PrintWriter::println
631     XMLVM_RED_CLASS_DEPENDENCY();
632     XMLVM_SOURCE_POSITION("Throwable.java", 302)
633     XMLVM_CHECK_NPE(9)
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));
637     _r2 = _r6;
638     label16:;
639     if (_r2.i < _r1.i) goto label28;
640     XMLVM_SOURCE_POSITION("Throwable.java", 308)
641     //java_lang_Throwable_getCause__[6]
642     XMLVM_CHECK_NPE(9)
643     _r1.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_Throwable*) _r9.o)->tib->vtable[6])(_r9.o);
644     _r8 = _r1;
645     _r1 = _r0;
646     _r0 = _r8;
647     label25:;
648     XMLVM_SOURCE_POSITION("Throwable.java", 309)
649     if (_r0.o != JAVA_NULL) goto label51;
650     XMLVM_SOURCE_POSITION("Throwable.java", 323)
651     XMLVM_EXIT_METHOD()
652     return;
653     label28:;
654     XMLVM_CHECK_NPE(0)
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();
659     // "\011at "
660     _r5.o = xmlvm_create_java_string_from_pool(45);
661     XMLVM_CHECK_NPE(4)
662     java_lang_StringBuilder___INIT____java_lang_String(_r4.o, _r7.o);
663     XMLVM_CHECK_NPE(4)
664     _r3.o = java_lang_StringBuilder_append___java_lang_Object(_r4.o, _r3.o);
665     //java_lang_StringBuilder_toString__[5]
666     XMLVM_CHECK_NPE(3)
667     _r3.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_StringBuilder*) _r3.o)->tib->vtable[5])(_r3.o);
668 
669 
670     // Red class access removed: java.io.PrintWriter::println
671     XMLVM_RED_CLASS_DEPENDENCY();
672     _r2.i = _r2.i + 1;
673     goto label16;
674     label51:;
675     XMLVM_SOURCE_POSITION("Throwable.java", 310)
676     // "Caused by: "
677     _r2.o = xmlvm_create_java_string_from_pool(46);
678 
679 
680     // Red class access removed: java.io.PrintWriter::print
681     XMLVM_RED_CLASS_DEPENDENCY();
682     XMLVM_SOURCE_POSITION("Throwable.java", 311)
683 
684 
685     // Red class access removed: java.io.PrintWriter::println
686     XMLVM_RED_CLASS_DEPENDENCY();
687     XMLVM_SOURCE_POSITION("Throwable.java", 312)
688     XMLVM_CHECK_NPE(0)
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);
692     _r3 = _r6;
693     label68:;
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();
702     // "\011... "
703     _r4.o = xmlvm_create_java_string_from_pool(47);
704     XMLVM_CHECK_NPE(3)
705     java_lang_StringBuilder___INIT____java_lang_String(_r3.o, _r4.o);
706     XMLVM_CHECK_NPE(3)
707     _r1.o = java_lang_StringBuilder_append___int(_r3.o, _r1.i);
708     // " more"
709     _r3.o = xmlvm_create_java_string_from_pool(48);
710     XMLVM_CHECK_NPE(1)
711     _r1.o = java_lang_StringBuilder_append___java_lang_String(_r1.o, _r3.o);
712     //java_lang_StringBuilder_toString__[5]
713     XMLVM_CHECK_NPE(1)
714     _r1.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_StringBuilder*) _r1.o)->tib->vtable[5])(_r1.o);
715 
716 
717     // Red class access removed: java.io.PrintWriter::println
718     XMLVM_RED_CLASS_DEPENDENCY();
719     label98:;
720     XMLVM_SOURCE_POSITION("Throwable.java", 321)
721     //java_lang_Throwable_getCause__[6]
722     XMLVM_CHECK_NPE(0)
723     _r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_Throwable*) _r0.o)->tib->vtable[6])(_r0.o);
724     _r1 = _r2;
725     goto label25;
726     label104:;
727     XMLVM_SOURCE_POSITION("Throwable.java", 315)
728     _r4.o = __NEW_java_lang_StringBuilder();
729     // "\011at "
730     _r5.o = xmlvm_create_java_string_from_pool(45);
731     XMLVM_CHECK_NPE(4)
732     java_lang_StringBuilder___INIT____java_lang_String(_r4.o, _r7.o);
733     XMLVM_CHECK_NPE(2)
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];
736     XMLVM_CHECK_NPE(4)
737     _r4.o = java_lang_StringBuilder_append___java_lang_Object(_r4.o, _r5.o);
738     //java_lang_StringBuilder_toString__[5]
739     XMLVM_CHECK_NPE(4)
740     _r4.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_StringBuilder*) _r4.o)->tib->vtable[5])(_r4.o);
741 
742 
743     // Red class access removed: java.io.PrintWriter::println
744     XMLVM_RED_CLASS_DEPENDENCY();
745     _r3.i = _r3.i + 1;
746     goto label68;
747     //XMLVM_END_WRAPPER
748 }
749 
java_lang_Throwable_toString__(JAVA_OBJECT me)750 JAVA_OBJECT java_lang_Throwable_toString__(JAVA_OBJECT me)
751 {
752     //XMLVM_BEGIN_WRAPPER[java_lang_Throwable_toString__]
753     XMLVM_ENTER_METHOD("java.lang.Throwable", "toString", "?")
754     XMLVMElem _r0;
755     XMLVMElem _r1;
756     XMLVMElem _r2;
757     XMLVMElem _r3;
758     XMLVMElem _r4;
759     XMLVMElem _r5;
760     _r5.o = me;
761     XMLVM_SOURCE_POSITION("Throwable.java", 327)
762     XMLVM_CHECK_NPE(5)
763     _r0.o = java_lang_Throwable_getLocalizedMessage__(_r5.o);
764     XMLVM_SOURCE_POSITION("Throwable.java", 328)
765     //java_lang_Object_getClass__[3]
766     XMLVM_CHECK_NPE(5)
767     _r1.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_Object*) _r5.o)->tib->vtable[3])(_r5.o);
768     XMLVM_CHECK_NPE(1)
769     _r1.o = java_lang_Class_getName__(_r1.o);
770     XMLVM_SOURCE_POSITION("Throwable.java", 329)
771     if (_r0.o != JAVA_NULL) goto label16;
772     _r0 = _r1;
773     label15:;
774     XMLVM_SOURCE_POSITION("Throwable.java", 330)
775     XMLVM_SOURCE_POSITION("Throwable.java", 332)
776     XMLVM_EXIT_METHOD()
777     return _r0.o;
778     label16:;
779     _r2.o = __NEW_java_lang_StringBuilder();
780     //java_lang_String_length__[8]
781     XMLVM_CHECK_NPE(1)
782     _r3.i = (*(JAVA_INT (*)(JAVA_OBJECT)) ((java_lang_String*) _r1.o)->tib->vtable[8])(_r1.o);
783     _r3.i = _r3.i + 2;
784     //java_lang_String_length__[8]
785     XMLVM_CHECK_NPE(0)
786     _r4.i = (*(JAVA_INT (*)(JAVA_OBJECT)) ((java_lang_String*) _r0.o)->tib->vtable[8])(_r0.o);
787     _r3.i = _r3.i + _r4.i;
788     XMLVM_CHECK_NPE(2)
789     java_lang_StringBuilder___INIT____int(_r2.o, _r3.i);
790     XMLVM_CHECK_NPE(2)
791     _r1.o = java_lang_StringBuilder_append___java_lang_String(_r2.o, _r1.o);
792     // ": "
793     _r2.o = xmlvm_create_java_string_from_pool(49);
794     XMLVM_CHECK_NPE(1)
795     _r1.o = java_lang_StringBuilder_append___java_lang_String(_r1.o, _r2.o);
796     XMLVM_SOURCE_POSITION("Throwable.java", 333)
797     XMLVM_CHECK_NPE(1)
798     _r0.o = java_lang_StringBuilder_append___java_lang_String(_r1.o, _r0.o);
799     //java_lang_StringBuilder_toString__[5]
800     XMLVM_CHECK_NPE(0)
801     _r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_StringBuilder*) _r0.o)->tib->vtable[5])(_r0.o);
802     goto label15;
803     //XMLVM_END_WRAPPER
804 }
805 
java_lang_Throwable_initCause___java_lang_Throwable(JAVA_OBJECT me,JAVA_OBJECT n1)806 JAVA_OBJECT java_lang_Throwable_initCause___java_lang_Throwable(JAVA_OBJECT me, JAVA_OBJECT n1)
807 {
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;
814     _r2.o = me;
815     _r3.o = n1;
816     XMLVM_SOURCE_POSITION("Throwable.java", 349)
817     java_lang_Object_acquireLockRecursive__(_r2.o);
818     XMLVM_TRY_BEGIN(w497aaac20b1b5)
819     // Begin try
820     XMLVM_CHECK_NPE(2)
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)
826     XMLVM_CHECK_NPE(2)
827     ((java_lang_Throwable*) _r2.o)->fields.java_lang_Throwable.cause_ = _r3.o;
828     // End try
829     XMLVM_TRY_END
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);
836     XMLVM_EXIT_METHOD()
837     return _r2.o;
838     label11:;
839     XMLVM_TRY_BEGIN(w497aaac20b1c10)
840     // Begin try
841     XMLVM_SOURCE_POSITION("Throwable.java", 354)
842 
843 
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);
848 
849 
850     // Red class access removed: java.lang.IllegalArgumentException::<init>
851     XMLVM_RED_CLASS_DEPENDENCY();
852     XMLVM_THROW_CUSTOM(_r0.o)
853     // End try
854     XMLVM_TRY_END
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)
859     label19:;
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)
864     label22:;
865     XMLVM_TRY_BEGIN(w497aaac20b1c16)
866     // Begin try
867     XMLVM_SOURCE_POSITION("Throwable.java", 356)
868 
869 
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);
874 
875 
876     // Red class access removed: java.lang.IllegalStateException::<init>
877     XMLVM_RED_CLASS_DEPENDENCY();
878     XMLVM_THROW_CUSTOM(_r0.o)
879     // End try
880     XMLVM_TRY_END
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)
885     //XMLVM_END_WRAPPER
886 }
887 
java_lang_Throwable_getCause__(JAVA_OBJECT me)888 JAVA_OBJECT java_lang_Throwable_getCause__(JAVA_OBJECT me)
889 {
890     //XMLVM_BEGIN_WRAPPER[java_lang_Throwable_getCause__]
891     XMLVM_ENTER_METHOD("java.lang.Throwable", "getCause", "?")
892     XMLVMElem _r0;
893     XMLVMElem _r1;
894     _r1.o = me;
895     XMLVM_SOURCE_POSITION("Throwable.java", 366)
896     XMLVM_CHECK_NPE(1)
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)
900     _r0.o = JAVA_NULL;
901     label5:;
902     XMLVM_SOURCE_POSITION("Throwable.java", 369)
903     XMLVM_EXIT_METHOD()
904     return _r0.o;
905     label6:;
906     XMLVM_CHECK_NPE(1)
907     _r0.o = ((java_lang_Throwable*) _r1.o)->fields.java_lang_Throwable.cause_;
908     goto label5;
909     //XMLVM_END_WRAPPER
910 }
911 
java_lang_Throwable_writeObject___java_io_ObjectOutputStream(JAVA_OBJECT me,JAVA_OBJECT n1)912 void java_lang_Throwable_writeObject___java_io_ObjectOutputStream(JAVA_OBJECT me, JAVA_OBJECT n1)
913 {
914     //XMLVM_BEGIN_WRAPPER[java_lang_Throwable_writeObject___java_io_ObjectOutputStream]
915     XMLVM_ENTER_METHOD("java.lang.Throwable", "writeObject", "?")
916     XMLVMElem _r0;
917     XMLVMElem _r1;
918     _r0.o = me;
919     _r1.o = n1;
920     XMLVM_SOURCE_POSITION("Throwable.java", 374)
921     XMLVM_CHECK_NPE(0)
922     java_lang_Throwable_getInternalStackTrace__(_r0.o);
923     XMLVM_SOURCE_POSITION("Throwable.java", 375)
924 
925 
926     // Red class access removed: java.io.ObjectOutputStream::defaultWriteObject
927     XMLVM_RED_CLASS_DEPENDENCY();
928     XMLVM_SOURCE_POSITION("Throwable.java", 376)
929     XMLVM_EXIT_METHOD()
930     return;
931     //XMLVM_END_WRAPPER
932 }
933 
934