1 #include "xmlvm.h"
2 #include "java_lang_Class.h"
3 #include "java_lang_Exception.h"
4 #include "java_lang_NullPointerException.h"
5 #include "java_lang_String.h"
6 #include "java_lang_reflect_Method.h"
7 #include "java_security_AccessController.h"
8 #include "org_apache_harmony_luni_internal_nls_Messages.h"
9 
10 #include "java_lang_Enum.h"
11 
12 #define XMLVM_CURRENT_CLASS_NAME Enum
13 #define XMLVM_CURRENT_PKG_CLASS_NAME java_lang_Enum
14 
15 __TIB_DEFINITION_java_lang_Enum __TIB_java_lang_Enum = {
16     0, // classInitializationBegan
17     0, // classInitialized
18     -1, // initializerThreadId
19     __INIT_java_lang_Enum, // classInitializer
20     "java.lang.Enum", // className
21     "java.lang", // package
22     JAVA_NULL, // enclosingClassName
23     JAVA_NULL, // enclosingMethodName
24     "<E:Ljava/lang/Enum<TE;>;>Ljava/lang/Object;Ljava/io/Serializable;Ljava/lang/Comparable<TE;>;", // signature
25     (__TIB_DEFINITION_TEMPLATE*) &__TIB_java_lang_Object, // extends
26     sizeof(java_lang_Enum), // sizeInstance
27     XMLVM_TYPE_CLASS};
28 
29 JAVA_OBJECT __CLASS_java_lang_Enum;
30 JAVA_OBJECT __CLASS_java_lang_Enum_1ARRAY;
31 JAVA_OBJECT __CLASS_java_lang_Enum_2ARRAY;
32 JAVA_OBJECT __CLASS_java_lang_Enum_3ARRAY;
33 //XMLVM_BEGIN_IMPLEMENTATION
34 //XMLVM_END_IMPLEMENTATION
35 
36 static JAVA_LONG _STATIC_java_lang_Enum_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_Enum()59 void __INIT_java_lang_Enum()
60 {
61     staticInitializerLock(&__TIB_java_lang_Enum);
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_Enum.classInitializationBegan;
66 
67     // Whether or not class initialization had already began, it has begun now
68     __TIB_java_lang_Enum.classInitializationBegan = 1;
69 
70     staticInitializerUnlock(&__TIB_java_lang_Enum);
71 
72     JAVA_LONG curThreadId = (JAVA_LONG)pthread_self();
73     if (initBegan) {
74         if (__TIB_java_lang_Enum.initializerThreadId != curThreadId) {
75             // Busy wait until the other thread finishes initializing this class
76             while (!__TIB_java_lang_Enum.classInitialized) {
77                 // do nothing
78             }
79         }
80     } else {
81         __TIB_java_lang_Enum.initializerThreadId = curThreadId;
82         XMLVM_CLASS_USED("java.lang.Enum")
83         __INIT_IMPL_java_lang_Enum();
84     }
85 }
86 
__INIT_IMPL_java_lang_Enum()87 void __INIT_IMPL_java_lang_Enum()
88 {
89     // Initialize base class if necessary
90     XMLVM_CLASS_INIT(java_lang_Object)
91     __TIB_java_lang_Enum.newInstanceFunc = __NEW_INSTANCE_java_lang_Enum;
92     // Copy vtable from base class
93     XMLVM_MEMCPY(__TIB_java_lang_Enum.vtable, __TIB_java_lang_Object.vtable, sizeof(__TIB_java_lang_Object.vtable));
94     // Initialize vtable for this class
95     __TIB_java_lang_Enum.vtable[5] = (VTABLE_PTR) &java_lang_Enum_toString__;
96     __TIB_java_lang_Enum.vtable[1] = (VTABLE_PTR) &java_lang_Enum_equals___java_lang_Object;
97     __TIB_java_lang_Enum.vtable[4] = (VTABLE_PTR) &java_lang_Enum_hashCode__;
98     __TIB_java_lang_Enum.vtable[0] = (VTABLE_PTR) &java_lang_Enum_clone__;
99     __TIB_java_lang_Enum.vtable[2] = (VTABLE_PTR) &java_lang_Enum_finalize_java_lang_Enum__;
100     __TIB_java_lang_Enum.vtable[6] = (VTABLE_PTR) &java_lang_Enum_compareTo___java_lang_Object;
101     // Initialize interface information
102     __TIB_java_lang_Enum.numImplementedInterfaces = 2;
103     __TIB_java_lang_Enum.implementedInterfaces = (__TIB_DEFINITION_TEMPLATE* (*)[1]) XMLVM_MALLOC(sizeof(__TIB_DEFINITION_TEMPLATE*) * 2);
104 
105     // Initialize interfaces if necessary and assign tib to implementedInterfaces
106 
107     XMLVM_CLASS_INIT(java_io_Serializable)
108 
109     __TIB_java_lang_Enum.implementedInterfaces[0][0] = &__TIB_java_io_Serializable;
110 
111     XMLVM_CLASS_INIT(java_lang_Comparable)
112 
113     __TIB_java_lang_Enum.implementedInterfaces[0][1] = &__TIB_java_lang_Comparable;
114     // Initialize itable for this class
115     __TIB_java_lang_Enum.itableBegin = &__TIB_java_lang_Enum.itable[0];
116     __TIB_java_lang_Enum.itable[XMLVM_ITABLE_IDX_java_lang_Comparable_compareTo___java_lang_Object] = __TIB_java_lang_Enum.vtable[6];
117 
118     _STATIC_java_lang_Enum_serialVersionUID = -4300926546619394005;
119 
120     __TIB_java_lang_Enum.declaredFields = &__field_reflection_data[0];
121     __TIB_java_lang_Enum.numDeclaredFields = sizeof(__field_reflection_data) / sizeof(XMLVM_FIELD_REFLECTION_DATA);
122     __TIB_java_lang_Enum.constructorDispatcherFunc = constructor_dispatcher;
123     __TIB_java_lang_Enum.declaredConstructors = &__constructor_reflection_data[0];
124     __TIB_java_lang_Enum.numDeclaredConstructors = sizeof(__constructor_reflection_data) / sizeof(XMLVM_CONSTRUCTOR_REFLECTION_DATA);
125     __TIB_java_lang_Enum.methodDispatcherFunc = method_dispatcher;
126     __TIB_java_lang_Enum.declaredMethods = &__method_reflection_data[0];
127     __TIB_java_lang_Enum.numDeclaredMethods = sizeof(__method_reflection_data) / sizeof(XMLVM_METHOD_REFLECTION_DATA);
128     __CLASS_java_lang_Enum = XMLVM_CREATE_CLASS_OBJECT(&__TIB_java_lang_Enum);
129     __TIB_java_lang_Enum.clazz = __CLASS_java_lang_Enum;
130     __TIB_java_lang_Enum.baseType = JAVA_NULL;
131     __CLASS_java_lang_Enum_1ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_java_lang_Enum);
132     __CLASS_java_lang_Enum_2ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_java_lang_Enum_1ARRAY);
133     __CLASS_java_lang_Enum_3ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_java_lang_Enum_2ARRAY);
134     //XMLVM_BEGIN_WRAPPER[__INIT_java_lang_Enum]
135     //XMLVM_END_WRAPPER
136 
137     __TIB_java_lang_Enum.classInitialized = 1;
138 }
139 
__DELETE_java_lang_Enum(void * me,void * client_data)140 void __DELETE_java_lang_Enum(void* me, void* client_data)
141 {
142     //XMLVM_BEGIN_WRAPPER[__DELETE_java_lang_Enum]
143     //XMLVM_END_WRAPPER
144     // Call the finalizer
145     (*(void (*)(JAVA_OBJECT)) ((java_lang_Object*) me)->tib->vtable[XMLVM_VTABLE_IDX_java_lang_Object_finalize_java_lang_Object__])(me);
146 }
147 
__INIT_INSTANCE_MEMBERS_java_lang_Enum(JAVA_OBJECT me,int derivedClassWillRegisterFinalizer)148 void __INIT_INSTANCE_MEMBERS_java_lang_Enum(JAVA_OBJECT me, int derivedClassWillRegisterFinalizer)
149 {
150     __INIT_INSTANCE_MEMBERS_java_lang_Object(me, 1 || derivedClassWillRegisterFinalizer);
151     ((java_lang_Enum*) me)->fields.java_lang_Enum.name_ = (java_lang_String*) JAVA_NULL;
152     ((java_lang_Enum*) me)->fields.java_lang_Enum.ordinal_ = 0;
153     //XMLVM_BEGIN_WRAPPER[__INIT_INSTANCE_MEMBERS_java_lang_Enum]
154     //XMLVM_END_WRAPPER
155     if (!derivedClassWillRegisterFinalizer) {
156         // Tell the GC to finalize us
157         XMLVM_FINALIZE(me, __DELETE_java_lang_Enum);
158     }
159 }
160 
__NEW_java_lang_Enum()161 JAVA_OBJECT __NEW_java_lang_Enum()
162 {    XMLVM_CLASS_INIT(java_lang_Enum)
163 java_lang_Enum* me = (java_lang_Enum*) XMLVM_MALLOC(sizeof(java_lang_Enum));
164     me->tib = &__TIB_java_lang_Enum;
165     __INIT_INSTANCE_MEMBERS_java_lang_Enum(me, 0);
166     //XMLVM_BEGIN_WRAPPER[__NEW_java_lang_Enum]
167     //XMLVM_END_WRAPPER
168     return me;
169 }
170 
__NEW_INSTANCE_java_lang_Enum()171 JAVA_OBJECT __NEW_INSTANCE_java_lang_Enum()
172 {
173     JAVA_OBJECT me = JAVA_NULL;
174     return me;
175 }
176 
java_lang_Enum_GET_serialVersionUID()177 JAVA_LONG java_lang_Enum_GET_serialVersionUID()
178 {
179     XMLVM_CLASS_INIT(java_lang_Enum)
180     return _STATIC_java_lang_Enum_serialVersionUID;
181 }
182 
java_lang_Enum_PUT_serialVersionUID(JAVA_LONG v)183 void java_lang_Enum_PUT_serialVersionUID(JAVA_LONG v)
184 {
185     XMLVM_CLASS_INIT(java_lang_Enum)
186 _STATIC_java_lang_Enum_serialVersionUID = v;
187 }
188 
java_lang_Enum___INIT____java_lang_String_int(JAVA_OBJECT me,JAVA_OBJECT n1,JAVA_INT n2)189 void java_lang_Enum___INIT____java_lang_String_int(JAVA_OBJECT me, JAVA_OBJECT n1, JAVA_INT n2)
190 {
191     //XMLVM_BEGIN_WRAPPER[java_lang_Enum___INIT____java_lang_String_int]
192     XMLVM_ENTER_METHOD("java.lang.Enum", "<init>", "?")
193     XMLVMElem _r0;
194     XMLVMElem _r1;
195     XMLVMElem _r2;
196     _r0.o = me;
197     _r1.o = n1;
198     _r2.i = n2;
199     XMLVM_SOURCE_POSITION("Enum.java", 49)
200     XMLVM_CHECK_NPE(0)
201     java_lang_Object___INIT___(_r0.o);
202     XMLVM_SOURCE_POSITION("Enum.java", 50)
203     XMLVM_CHECK_NPE(0)
204     ((java_lang_Enum*) _r0.o)->fields.java_lang_Enum.name_ = _r1.o;
205     XMLVM_SOURCE_POSITION("Enum.java", 51)
206     XMLVM_CHECK_NPE(0)
207     ((java_lang_Enum*) _r0.o)->fields.java_lang_Enum.ordinal_ = _r2.i;
208     XMLVM_SOURCE_POSITION("Enum.java", 52)
209     XMLVM_EXIT_METHOD()
210     return;
211     //XMLVM_END_WRAPPER
212 }
213 
java_lang_Enum_name__(JAVA_OBJECT me)214 JAVA_OBJECT java_lang_Enum_name__(JAVA_OBJECT me)
215 {
216     //XMLVM_BEGIN_WRAPPER[java_lang_Enum_name__]
217     XMLVM_ENTER_METHOD("java.lang.Enum", "name", "?")
218     XMLVMElem _r0;
219     XMLVMElem _r1;
220     _r1.o = me;
221     XMLVM_SOURCE_POSITION("Enum.java", 62)
222     XMLVM_CHECK_NPE(1)
223     _r0.o = ((java_lang_Enum*) _r1.o)->fields.java_lang_Enum.name_;
224     XMLVM_EXIT_METHOD()
225     return _r0.o;
226     //XMLVM_END_WRAPPER
227 }
228 
java_lang_Enum_ordinal__(JAVA_OBJECT me)229 JAVA_INT java_lang_Enum_ordinal__(JAVA_OBJECT me)
230 {
231     //XMLVM_BEGIN_WRAPPER[java_lang_Enum_ordinal__]
232     XMLVM_ENTER_METHOD("java.lang.Enum", "ordinal", "?")
233     XMLVMElem _r0;
234     XMLVMElem _r1;
235     _r1.o = me;
236     XMLVM_SOURCE_POSITION("Enum.java", 72)
237     XMLVM_CHECK_NPE(1)
238     _r0.i = ((java_lang_Enum*) _r1.o)->fields.java_lang_Enum.ordinal_;
239     XMLVM_EXIT_METHOD()
240     return _r0.i;
241     //XMLVM_END_WRAPPER
242 }
243 
java_lang_Enum_toString__(JAVA_OBJECT me)244 JAVA_OBJECT java_lang_Enum_toString__(JAVA_OBJECT me)
245 {
246     //XMLVM_BEGIN_WRAPPER[java_lang_Enum_toString__]
247     XMLVM_ENTER_METHOD("java.lang.Enum", "toString", "?")
248     XMLVMElem _r0;
249     XMLVMElem _r1;
250     _r1.o = me;
251     XMLVM_SOURCE_POSITION("Enum.java", 83)
252     XMLVM_CHECK_NPE(1)
253     _r0.o = ((java_lang_Enum*) _r1.o)->fields.java_lang_Enum.name_;
254     XMLVM_EXIT_METHOD()
255     return _r0.o;
256     //XMLVM_END_WRAPPER
257 }
258 
java_lang_Enum_equals___java_lang_Object(JAVA_OBJECT me,JAVA_OBJECT n1)259 JAVA_BOOLEAN java_lang_Enum_equals___java_lang_Object(JAVA_OBJECT me, JAVA_OBJECT n1)
260 {
261     //XMLVM_BEGIN_WRAPPER[java_lang_Enum_equals___java_lang_Object]
262     XMLVM_ENTER_METHOD("java.lang.Enum", "equals", "?")
263     XMLVMElem _r0;
264     XMLVMElem _r1;
265     XMLVMElem _r2;
266     _r1.o = me;
267     _r2.o = n1;
268     XMLVM_SOURCE_POSITION("Enum.java", 98)
269     if (_r1.o != _r2.o) goto label4;
270     _r0.i = 1;
271     label3:;
272     XMLVM_EXIT_METHOD()
273     return _r0.i;
274     label4:;
275     _r0.i = 0;
276     goto label3;
277     //XMLVM_END_WRAPPER
278 }
279 
java_lang_Enum_hashCode__(JAVA_OBJECT me)280 JAVA_INT java_lang_Enum_hashCode__(JAVA_OBJECT me)
281 {
282     //XMLVM_BEGIN_WRAPPER[java_lang_Enum_hashCode__]
283     XMLVM_ENTER_METHOD("java.lang.Enum", "hashCode", "?")
284     XMLVMElem _r0;
285     XMLVMElem _r1;
286     XMLVMElem _r2;
287     _r2.o = me;
288     XMLVM_SOURCE_POSITION("Enum.java", 103)
289     XMLVM_CHECK_NPE(2)
290     _r0.i = ((java_lang_Enum*) _r2.o)->fields.java_lang_Enum.ordinal_;
291     XMLVM_CHECK_NPE(2)
292     _r1.o = ((java_lang_Enum*) _r2.o)->fields.java_lang_Enum.name_;
293     if (_r1.o != JAVA_NULL) goto label9;
294     _r1.i = 0;
295     label7:;
296     _r0.i = _r0.i + _r1.i;
297     XMLVM_EXIT_METHOD()
298     return _r0.i;
299     label9:;
300     XMLVM_CHECK_NPE(2)
301     _r1.o = ((java_lang_Enum*) _r2.o)->fields.java_lang_Enum.name_;
302     //java_lang_String_hashCode__[4]
303     XMLVM_CHECK_NPE(1)
304     _r1.i = (*(JAVA_INT (*)(JAVA_OBJECT)) ((java_lang_String*) _r1.o)->tib->vtable[4])(_r1.o);
305     goto label7;
306     //XMLVM_END_WRAPPER
307 }
308 
java_lang_Enum_clone__(JAVA_OBJECT me)309 JAVA_OBJECT java_lang_Enum_clone__(JAVA_OBJECT me)
310 {
311     //XMLVM_BEGIN_WRAPPER[java_lang_Enum_clone__]
312     XMLVM_ENTER_METHOD("java.lang.Enum", "clone", "?")
313     XMLVMElem _r0;
314     XMLVMElem _r1;
315     XMLVMElem _r2;
316     _r2.o = me;
317     XMLVM_SOURCE_POSITION("Enum.java", 117)
318 
319 
320     // Red class access removed: java.lang.CloneNotSupportedException::new-instance
321     XMLVM_RED_CLASS_DEPENDENCY();
322     // "luni.4C"
323     _r1.o = xmlvm_create_java_string_from_pool(832);
324     _r1.o = org_apache_harmony_luni_internal_nls_Messages_getString___java_lang_String(_r1.o);
325 
326 
327     // Red class access removed: java.lang.CloneNotSupportedException::<init>
328     XMLVM_RED_CLASS_DEPENDENCY();
329     XMLVM_THROW_CUSTOM(_r0.o)
330     //XMLVM_END_WRAPPER
331 }
332 
java_lang_Enum_compareTo___java_lang_Enum(JAVA_OBJECT me,JAVA_OBJECT n1)333 JAVA_INT java_lang_Enum_compareTo___java_lang_Enum(JAVA_OBJECT me, JAVA_OBJECT n1)
334 {
335     //XMLVM_BEGIN_WRAPPER[java_lang_Enum_compareTo___java_lang_Enum]
336     XMLVM_ENTER_METHOD("java.lang.Enum", "compareTo", "?")
337     XMLVMElem _r0;
338     XMLVMElem _r1;
339     XMLVMElem _r2;
340     XMLVMElem _r3;
341     _r2.o = me;
342     _r3.o = n1;
343     XMLVM_SOURCE_POSITION("Enum.java", 135)
344     XMLVM_CHECK_NPE(2)
345     _r0.i = ((java_lang_Enum*) _r2.o)->fields.java_lang_Enum.ordinal_;
346     XMLVM_CHECK_NPE(3)
347     _r1.i = ((java_lang_Enum*) _r3.o)->fields.java_lang_Enum.ordinal_;
348     _r0.i = _r0.i - _r1.i;
349     XMLVM_EXIT_METHOD()
350     return _r0.i;
351     //XMLVM_END_WRAPPER
352 }
353 
java_lang_Enum_getDeclaringClass__(JAVA_OBJECT me)354 JAVA_OBJECT java_lang_Enum_getDeclaringClass__(JAVA_OBJECT me)
355 {
356     //XMLVM_BEGIN_WRAPPER[java_lang_Enum_getDeclaringClass__]
357     XMLVM_ENTER_METHOD("java.lang.Enum", "getDeclaringClass", "?")
358     XMLVMElem _r0;
359     XMLVMElem _r1;
360     XMLVMElem _r2;
361     XMLVMElem _r3;
362     _r3.o = me;
363     XMLVM_SOURCE_POSITION("Enum.java", 145)
364     //java_lang_Object_getClass__[3]
365     XMLVM_CHECK_NPE(3)
366     _r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_Object*) _r3.o)->tib->vtable[3])(_r3.o);
367     XMLVM_SOURCE_POSITION("Enum.java", 146)
368     XMLVM_CHECK_NPE(0)
369     _r1.o = java_lang_Class_getSuperclass__(_r0.o);
370     XMLVM_SOURCE_POSITION("Enum.java", 147)
371     XMLVM_CLASS_INIT(java_lang_Enum)
372     _r2.o = __CLASS_java_lang_Enum;
373     if (_r2.o != _r1.o) goto label13;
374     label12:;
375     XMLVM_SOURCE_POSITION("Enum.java", 150)
376     XMLVM_EXIT_METHOD()
377     return _r0.o;
378     label13:;
379     _r0 = _r1;
380     goto label12;
381     //XMLVM_END_WRAPPER
382 }
383 
java_lang_Enum_valueOf___java_lang_Class_java_lang_String(JAVA_OBJECT n1,JAVA_OBJECT n2)384 JAVA_OBJECT java_lang_Enum_valueOf___java_lang_Class_java_lang_String(JAVA_OBJECT n1, JAVA_OBJECT n2)
385 {
386     XMLVM_CLASS_INIT(java_lang_Enum)
387     //XMLVM_BEGIN_WRAPPER[java_lang_Enum_valueOf___java_lang_Class_java_lang_String]
388     XMLVM_ENTER_METHOD("java.lang.Enum", "valueOf", "?")
389     XMLVMElem _r0;
390     XMLVMElem _r1;
391     XMLVMElem _r2;
392     XMLVMElem _r3;
393     XMLVMElem _r4;
394     XMLVMElem _r5;
395     XMLVMElem _r6;
396     _r5.o = n1;
397     _r6.o = n2;
398     XMLVM_SOURCE_POSITION("Enum.java", 169)
399     if (_r5.o == JAVA_NULL) goto label4;
400     if (_r6.o != JAVA_NULL) goto label16;
401     label4:;
402     XMLVM_SOURCE_POSITION("Enum.java", 171)
403     _r0.o = __NEW_java_lang_NullPointerException();
404     // "luni.4D"
405     _r1.o = xmlvm_create_java_string_from_pool(833);
406     _r1.o = org_apache_harmony_luni_internal_nls_Messages_getString___java_lang_String(_r1.o);
407     XMLVM_CHECK_NPE(0)
408     java_lang_NullPointerException___INIT____java_lang_String(_r0.o, _r1.o);
409     XMLVM_THROW_CUSTOM(_r0.o)
410     label16:;
411     XMLVM_SOURCE_POSITION("Enum.java", 173)
412     _r0.o = java_lang_Enum_getValues___java_lang_Class(_r5.o);
413     XMLVM_SOURCE_POSITION("Enum.java", 174)
414     if (_r0.o != JAVA_NULL) goto label34;
415     XMLVM_SOURCE_POSITION("Enum.java", 176)
416 
417 
418     // Red class access removed: java.lang.IllegalArgumentException::new-instance
419     XMLVM_RED_CLASS_DEPENDENCY();
420     // "luni.4E"
421     _r1.o = xmlvm_create_java_string_from_pool(834);
422     _r1.o = org_apache_harmony_luni_internal_nls_Messages_getString___java_lang_String_java_lang_Object(_r1.o, _r5.o);
423 
424 
425     // Red class access removed: java.lang.IllegalArgumentException::<init>
426     XMLVM_RED_CLASS_DEPENDENCY();
427     XMLVM_THROW_CUSTOM(_r0.o)
428     label34:;
429     XMLVM_SOURCE_POSITION("Enum.java", 178)
430     _r1.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r0.o));
431     _r2.i = 0;
432     label36:;
433     if (_r2.i < _r1.i) goto label50;
434     XMLVM_SOURCE_POSITION("Enum.java", 184)
435 
436 
437     // Red class access removed: java.lang.IllegalArgumentException::new-instance
438     XMLVM_RED_CLASS_DEPENDENCY();
439     // "luni.4F"
440     _r1.o = xmlvm_create_java_string_from_pool(835);
441     XMLVM_SOURCE_POSITION("Enum.java", 185)
442     _r1.o = org_apache_harmony_luni_internal_nls_Messages_getString___java_lang_String_java_lang_Object_java_lang_Object(_r1.o, _r6.o, _r5.o);
443 
444 
445     // Red class access removed: java.lang.IllegalArgumentException::<init>
446     XMLVM_RED_CLASS_DEPENDENCY();
447     XMLVM_THROW_CUSTOM(_r0.o)
448     label50:;
449     XMLVM_CHECK_NPE(0)
450     XMLVM_CHECK_ARRAY_BOUNDS(_r0.o, _r2.i);
451     _r3.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r0.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r2.i];
452     XMLVM_SOURCE_POSITION("Enum.java", 179)
453     XMLVM_CHECK_NPE(3)
454     _r4.o = ((java_lang_Enum*) _r3.o)->fields.java_lang_Enum.name_;
455     //java_lang_String_equals___java_lang_Object[1]
456     XMLVM_CHECK_NPE(4)
457     _r4.i = (*(JAVA_BOOLEAN (*)(JAVA_OBJECT, JAVA_OBJECT)) ((java_lang_String*) _r4.o)->tib->vtable[1])(_r4.o, _r6.o);
458     if (_r4.i == 0) goto label61;
459     XMLVM_SOURCE_POSITION("Enum.java", 180)
460     XMLVM_EXIT_METHOD()
461     return _r3.o;
462     label61:;
463     _r2.i = _r2.i + 1;
464     goto label36;
465     //XMLVM_END_WRAPPER
466 }
467 
java_lang_Enum_getValues___java_lang_Class(JAVA_OBJECT n1)468 JAVA_OBJECT java_lang_Enum_getValues___java_lang_Class(JAVA_OBJECT n1)
469 {
470     XMLVM_CLASS_INIT(java_lang_Enum)
471     //XMLVM_BEGIN_WRAPPER[java_lang_Enum_getValues___java_lang_Class]
472     XMLVM_ENTER_METHOD("java.lang.Enum", "getValues", "?")
473     volatile XMLVMElem _r0;
474     volatile XMLVMElem _r1;
475     volatile XMLVMElem _r2;
476     volatile XMLVMElem _r3;
477     _r3.o = n1;
478     _r2.o = JAVA_NULL;
479     XMLVM_TRY_BEGIN(w6397aaac13b1b3)
480     // Begin try
481     XMLVM_SOURCE_POSITION("Enum.java", 196)
482 
483 
484     // Red class access removed: java.lang.Enum$1::new-instance
485     XMLVM_RED_CLASS_DEPENDENCY();
486 
487 
488     // Red class access removed: java.lang.Enum$1::<init>
489     XMLVM_RED_CLASS_DEPENDENCY();
490     _r0.o = java_security_AccessController_doPrivileged___java_security_PrivilegedExceptionAction(_r0.o);
491     _r0.o = _r0.o;
492     XMLVM_SOURCE_POSITION("Enum.java", 204)
493     _r1.o = JAVA_NULL;
494     //java_lang_reflect_Method_invoke___java_lang_Object_java_lang_Object_1ARRAY[15]
495     XMLVM_CHECK_NPE(0)
496     _r3.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT, JAVA_OBJECT, JAVA_OBJECT)) ((java_lang_reflect_Method*) _r0.o)->tib->vtable[15])(_r0.o, _r3.o, _r1.o);
497     _r3.o = _r3.o;
498     // End try
499     XMLVM_TRY_END
500     XMLVM_CATCH_BEGIN(w6397aaac13b1b3)
501         XMLVM_CATCH_SPECIFIC(w6397aaac13b1b3,java_lang_Exception,21)
502     XMLVM_CATCH_END(w6397aaac13b1b3)
503     XMLVM_RESTORE_EXCEPTION_ENV(w6397aaac13b1b3)
504     _r0 = _r3;
505     label20:;
506     XMLVM_SOURCE_POSITION("Enum.java", 206)
507     XMLVM_EXIT_METHOD()
508     return _r0.o;
509     label21:;
510     java_lang_Thread* curThread_w6397aaac13b1b9 = (java_lang_Thread*)java_lang_Thread_currentThread__();
511     _r0.o = curThread_w6397aaac13b1b9->fields.java_lang_Thread.xmlvmException_;
512     _r0 = _r2;
513     goto label20;
514     //XMLVM_END_WRAPPER
515 }
516 
java_lang_Enum_finalize_java_lang_Enum__(JAVA_OBJECT me)517 void java_lang_Enum_finalize_java_lang_Enum__(JAVA_OBJECT me)
518 {
519     //XMLVM_BEGIN_WRAPPER[java_lang_Enum_finalize_java_lang_Enum__]
520     XMLVM_ENTER_METHOD("java.lang.Enum", "finalize", "?")
521     XMLVMElem _r0;
522     _r0.o = me;
523     XMLVM_SOURCE_POSITION("Enum.java", 219)
524     XMLVM_EXIT_METHOD()
525     return;
526     //XMLVM_END_WRAPPER
527 }
528 
java_lang_Enum_compareTo___java_lang_Object(JAVA_OBJECT me,JAVA_OBJECT n1)529 JAVA_INT java_lang_Enum_compareTo___java_lang_Object(JAVA_OBJECT me, JAVA_OBJECT n1)
530 {
531     //XMLVM_BEGIN_WRAPPER[java_lang_Enum_compareTo___java_lang_Object]
532     XMLVM_ENTER_METHOD("java.lang.Enum", "compareTo", "?")
533     XMLVMElem _r0;
534     XMLVMElem _r1;
535     XMLVMElem _r2;
536     _r1.o = me;
537     _r2.o = n1;
538     XMLVM_SOURCE_POSITION("Enum.java", 1)
539     _r2.o = _r2.o;
540     XMLVM_CHECK_NPE(1)
541     _r0.i = java_lang_Enum_compareTo___java_lang_Enum(_r1.o, _r2.o);
542     XMLVM_EXIT_METHOD()
543     return _r0.i;
544     //XMLVM_END_WRAPPER
545 }
546 
547