1 #include "xmlvm.h"
2 #include "java_lang_NullPointerException.h"
3 #include "java_lang_Object.h"
4 #include "java_lang_String.h"
5 #include "java_lang_StringBuilder.h"
6 
7 #include "java_util_Hashtable_Entry.h"
8 
9 #define XMLVM_CURRENT_CLASS_NAME Hashtable_Entry
10 #define XMLVM_CURRENT_PKG_CLASS_NAME java_util_Hashtable_Entry
11 
12 __TIB_DEFINITION_java_util_Hashtable_Entry __TIB_java_util_Hashtable_Entry = {
13     0, // classInitializationBegan
14     0, // classInitialized
15     -1, // initializerThreadId
16     __INIT_java_util_Hashtable_Entry, // classInitializer
17     "java.util.Hashtable$Entry", // className
18     "java.util", // package
19     JAVA_NULL, // enclosingClassName
20     JAVA_NULL, // enclosingMethodName
21     "<K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/util/MapEntry<TK;TV;>;", // signature
22     (__TIB_DEFINITION_TEMPLATE*) &__TIB_java_util_MapEntry, // extends
23     sizeof(java_util_Hashtable_Entry), // sizeInstance
24     XMLVM_TYPE_CLASS};
25 
26 JAVA_OBJECT __CLASS_java_util_Hashtable_Entry;
27 JAVA_OBJECT __CLASS_java_util_Hashtable_Entry_1ARRAY;
28 JAVA_OBJECT __CLASS_java_util_Hashtable_Entry_2ARRAY;
29 JAVA_OBJECT __CLASS_java_util_Hashtable_Entry_3ARRAY;
30 //XMLVM_BEGIN_IMPLEMENTATION
31 //XMLVM_END_IMPLEMENTATION
32 
33 
34 #include "xmlvm-reflection.h"
35 
36 static XMLVM_FIELD_REFLECTION_DATA __field_reflection_data[] = {
37 };
38 
39 static XMLVM_CONSTRUCTOR_REFLECTION_DATA __constructor_reflection_data[] = {
40 };
41 
constructor_dispatcher(JAVA_OBJECT constructor,JAVA_OBJECT arguments)42 static JAVA_OBJECT constructor_dispatcher(JAVA_OBJECT constructor, JAVA_OBJECT arguments)
43 {
44     XMLVM_NOT_IMPLEMENTED();
45 }
46 
47 static XMLVM_METHOD_REFLECTION_DATA __method_reflection_data[] = {
48 };
49 
method_dispatcher(JAVA_OBJECT method,JAVA_OBJECT receiver,JAVA_OBJECT arguments)50 static JAVA_OBJECT method_dispatcher(JAVA_OBJECT method, JAVA_OBJECT receiver, JAVA_OBJECT arguments)
51 {
52     XMLVM_NOT_IMPLEMENTED();
53 }
54 
__INIT_java_util_Hashtable_Entry()55 void __INIT_java_util_Hashtable_Entry()
56 {
57     staticInitializerLock(&__TIB_java_util_Hashtable_Entry);
58 
59     // While the static initializer mutex is locked, locally store the value of
60     // whether class initialization began or not
61     int initBegan = __TIB_java_util_Hashtable_Entry.classInitializationBegan;
62 
63     // Whether or not class initialization had already began, it has begun now
64     __TIB_java_util_Hashtable_Entry.classInitializationBegan = 1;
65 
66     staticInitializerUnlock(&__TIB_java_util_Hashtable_Entry);
67 
68     JAVA_LONG curThreadId = (JAVA_LONG)pthread_self();
69     if (initBegan) {
70         if (__TIB_java_util_Hashtable_Entry.initializerThreadId != curThreadId) {
71             // Busy wait until the other thread finishes initializing this class
72             while (!__TIB_java_util_Hashtable_Entry.classInitialized) {
73                 // do nothing
74             }
75         }
76     } else {
77         __TIB_java_util_Hashtable_Entry.initializerThreadId = curThreadId;
78         XMLVM_CLASS_USED("java.util.Hashtable$Entry")
79         __INIT_IMPL_java_util_Hashtable_Entry();
80     }
81 }
82 
__INIT_IMPL_java_util_Hashtable_Entry()83 void __INIT_IMPL_java_util_Hashtable_Entry()
84 {
85     // Initialize base class if necessary
86     XMLVM_CLASS_INIT(java_util_MapEntry)
87     __TIB_java_util_Hashtable_Entry.newInstanceFunc = __NEW_INSTANCE_java_util_Hashtable_Entry;
88     // Copy vtable from base class
89     XMLVM_MEMCPY(__TIB_java_util_Hashtable_Entry.vtable, __TIB_java_util_MapEntry.vtable, sizeof(__TIB_java_util_MapEntry.vtable));
90     // Initialize vtable for this class
91     __TIB_java_util_Hashtable_Entry.vtable[0] = (VTABLE_PTR) &java_util_Hashtable_Entry_clone__;
92     __TIB_java_util_Hashtable_Entry.vtable[8] = (VTABLE_PTR) &java_util_Hashtable_Entry_setValue___java_lang_Object;
93     __TIB_java_util_Hashtable_Entry.vtable[5] = (VTABLE_PTR) &java_util_Hashtable_Entry_toString__;
94     // Initialize interface information
95     __TIB_java_util_Hashtable_Entry.numImplementedInterfaces = 2;
96     __TIB_java_util_Hashtable_Entry.implementedInterfaces = (__TIB_DEFINITION_TEMPLATE* (*)[1]) XMLVM_MALLOC(sizeof(__TIB_DEFINITION_TEMPLATE*) * 2);
97 
98     // Initialize interfaces if necessary and assign tib to implementedInterfaces
99 
100     XMLVM_CLASS_INIT(java_lang_Cloneable)
101 
102     __TIB_java_util_Hashtable_Entry.implementedInterfaces[0][0] = &__TIB_java_lang_Cloneable;
103 
104     XMLVM_CLASS_INIT(java_util_Map_Entry)
105 
106     __TIB_java_util_Hashtable_Entry.implementedInterfaces[0][1] = &__TIB_java_util_Map_Entry;
107     // Initialize itable for this class
108     __TIB_java_util_Hashtable_Entry.itableBegin = &__TIB_java_util_Hashtable_Entry.itable[0];
109     __TIB_java_util_Hashtable_Entry.itable[XMLVM_ITABLE_IDX_java_util_Map_Entry_equals___java_lang_Object] = __TIB_java_util_Hashtable_Entry.vtable[1];
110     __TIB_java_util_Hashtable_Entry.itable[XMLVM_ITABLE_IDX_java_util_Map_Entry_getKey__] = __TIB_java_util_Hashtable_Entry.vtable[6];
111     __TIB_java_util_Hashtable_Entry.itable[XMLVM_ITABLE_IDX_java_util_Map_Entry_getValue__] = __TIB_java_util_Hashtable_Entry.vtable[7];
112     __TIB_java_util_Hashtable_Entry.itable[XMLVM_ITABLE_IDX_java_util_Map_Entry_hashCode__] = __TIB_java_util_Hashtable_Entry.vtable[4];
113     __TIB_java_util_Hashtable_Entry.itable[XMLVM_ITABLE_IDX_java_util_Map_Entry_setValue___java_lang_Object] = __TIB_java_util_Hashtable_Entry.vtable[8];
114 
115 
116     __TIB_java_util_Hashtable_Entry.declaredFields = &__field_reflection_data[0];
117     __TIB_java_util_Hashtable_Entry.numDeclaredFields = sizeof(__field_reflection_data) / sizeof(XMLVM_FIELD_REFLECTION_DATA);
118     __TIB_java_util_Hashtable_Entry.constructorDispatcherFunc = constructor_dispatcher;
119     __TIB_java_util_Hashtable_Entry.declaredConstructors = &__constructor_reflection_data[0];
120     __TIB_java_util_Hashtable_Entry.numDeclaredConstructors = sizeof(__constructor_reflection_data) / sizeof(XMLVM_CONSTRUCTOR_REFLECTION_DATA);
121     __TIB_java_util_Hashtable_Entry.methodDispatcherFunc = method_dispatcher;
122     __TIB_java_util_Hashtable_Entry.declaredMethods = &__method_reflection_data[0];
123     __TIB_java_util_Hashtable_Entry.numDeclaredMethods = sizeof(__method_reflection_data) / sizeof(XMLVM_METHOD_REFLECTION_DATA);
124     __CLASS_java_util_Hashtable_Entry = XMLVM_CREATE_CLASS_OBJECT(&__TIB_java_util_Hashtable_Entry);
125     __TIB_java_util_Hashtable_Entry.clazz = __CLASS_java_util_Hashtable_Entry;
126     __TIB_java_util_Hashtable_Entry.baseType = JAVA_NULL;
127     __CLASS_java_util_Hashtable_Entry_1ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_java_util_Hashtable_Entry);
128     __CLASS_java_util_Hashtable_Entry_2ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_java_util_Hashtable_Entry_1ARRAY);
129     __CLASS_java_util_Hashtable_Entry_3ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_java_util_Hashtable_Entry_2ARRAY);
130     //XMLVM_BEGIN_WRAPPER[__INIT_java_util_Hashtable_Entry]
131     //XMLVM_END_WRAPPER
132 
133     __TIB_java_util_Hashtable_Entry.classInitialized = 1;
134 }
135 
__DELETE_java_util_Hashtable_Entry(void * me,void * client_data)136 void __DELETE_java_util_Hashtable_Entry(void* me, void* client_data)
137 {
138     //XMLVM_BEGIN_WRAPPER[__DELETE_java_util_Hashtable_Entry]
139     //XMLVM_END_WRAPPER
140 }
141 
__INIT_INSTANCE_MEMBERS_java_util_Hashtable_Entry(JAVA_OBJECT me,int derivedClassWillRegisterFinalizer)142 void __INIT_INSTANCE_MEMBERS_java_util_Hashtable_Entry(JAVA_OBJECT me, int derivedClassWillRegisterFinalizer)
143 {
144     __INIT_INSTANCE_MEMBERS_java_util_MapEntry(me, 0 || derivedClassWillRegisterFinalizer);
145     ((java_util_Hashtable_Entry*) me)->fields.java_util_Hashtable_Entry.next_ = (java_util_Hashtable_Entry*) JAVA_NULL;
146     ((java_util_Hashtable_Entry*) me)->fields.java_util_Hashtable_Entry.hashcode_ = 0;
147     //XMLVM_BEGIN_WRAPPER[__INIT_INSTANCE_MEMBERS_java_util_Hashtable_Entry]
148     //XMLVM_END_WRAPPER
149 }
150 
__NEW_java_util_Hashtable_Entry()151 JAVA_OBJECT __NEW_java_util_Hashtable_Entry()
152 {    XMLVM_CLASS_INIT(java_util_Hashtable_Entry)
153 java_util_Hashtable_Entry* me = (java_util_Hashtable_Entry*) XMLVM_MALLOC(sizeof(java_util_Hashtable_Entry));
154     me->tib = &__TIB_java_util_Hashtable_Entry;
155     __INIT_INSTANCE_MEMBERS_java_util_Hashtable_Entry(me, 0);
156     //XMLVM_BEGIN_WRAPPER[__NEW_java_util_Hashtable_Entry]
157     //XMLVM_END_WRAPPER
158     return me;
159 }
160 
__NEW_INSTANCE_java_util_Hashtable_Entry()161 JAVA_OBJECT __NEW_INSTANCE_java_util_Hashtable_Entry()
162 {
163     JAVA_OBJECT me = JAVA_NULL;
164     return me;
165 }
166 
java_util_Hashtable_Entry___INIT____java_lang_Object_java_lang_Object(JAVA_OBJECT me,JAVA_OBJECT n1,JAVA_OBJECT n2)167 void java_util_Hashtable_Entry___INIT____java_lang_Object_java_lang_Object(JAVA_OBJECT me, JAVA_OBJECT n1, JAVA_OBJECT n2)
168 {
169     //XMLVM_BEGIN_WRAPPER[java_util_Hashtable_Entry___INIT____java_lang_Object_java_lang_Object]
170     XMLVM_ENTER_METHOD("java.util.Hashtable$Entry", "<init>", "?")
171     XMLVMElem _r0;
172     XMLVMElem _r1;
173     XMLVMElem _r2;
174     XMLVMElem _r3;
175     _r1.o = me;
176     _r2.o = n1;
177     _r3.o = n2;
178     XMLVM_SOURCE_POSITION("Hashtable.java", 95)
179     XMLVM_CHECK_NPE(1)
180     java_util_MapEntry___INIT____java_lang_Object_java_lang_Object(_r1.o, _r2.o, _r3.o);
181     XMLVM_SOURCE_POSITION("Hashtable.java", 96)
182     //java_lang_Object_hashCode__[4]
183     XMLVM_CHECK_NPE(2)
184     _r0.i = (*(JAVA_INT (*)(JAVA_OBJECT)) ((java_lang_Object*) _r2.o)->tib->vtable[4])(_r2.o);
185     XMLVM_CHECK_NPE(1)
186     ((java_util_Hashtable_Entry*) _r1.o)->fields.java_util_Hashtable_Entry.hashcode_ = _r0.i;
187     XMLVM_SOURCE_POSITION("Hashtable.java", 97)
188     XMLVM_EXIT_METHOD()
189     return;
190     //XMLVM_END_WRAPPER
191 }
192 
java_util_Hashtable_Entry_clone__(JAVA_OBJECT me)193 JAVA_OBJECT java_util_Hashtable_Entry_clone__(JAVA_OBJECT me)
194 {
195     //XMLVM_BEGIN_WRAPPER[java_util_Hashtable_Entry_clone__]
196     XMLVM_ENTER_METHOD("java.util.Hashtable$Entry", "clone", "?")
197     XMLVMElem _r0;
198     XMLVMElem _r1;
199     XMLVMElem _r2;
200     _r2.o = me;
201     XMLVM_SOURCE_POSITION("Hashtable.java", 102)
202     XMLVM_CHECK_NPE(2)
203     _r0.o = java_util_MapEntry_clone__(_r2.o);
204     _r0.o = _r0.o;
205     XMLVM_SOURCE_POSITION("Hashtable.java", 103)
206     XMLVM_CHECK_NPE(2)
207     _r1.o = ((java_util_Hashtable_Entry*) _r2.o)->fields.java_util_Hashtable_Entry.next_;
208     if (_r1.o == JAVA_NULL) goto label20;
209     XMLVM_SOURCE_POSITION("Hashtable.java", 104)
210     XMLVM_CHECK_NPE(2)
211     _r1.o = ((java_util_Hashtable_Entry*) _r2.o)->fields.java_util_Hashtable_Entry.next_;
212     //java_util_Hashtable_Entry_clone__[0]
213     XMLVM_CHECK_NPE(1)
214     _r2.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_util_Hashtable_Entry*) _r1.o)->tib->vtable[0])(_r1.o);
215     _r2.o = _r2.o;
216     XMLVM_CHECK_NPE(0)
217     ((java_util_Hashtable_Entry*) _r0.o)->fields.java_util_Hashtable_Entry.next_ = _r2.o;
218     label20:;
219     XMLVM_SOURCE_POSITION("Hashtable.java", 106)
220     XMLVM_EXIT_METHOD()
221     return _r0.o;
222     //XMLVM_END_WRAPPER
223 }
224 
java_util_Hashtable_Entry_setValue___java_lang_Object(JAVA_OBJECT me,JAVA_OBJECT n1)225 JAVA_OBJECT java_util_Hashtable_Entry_setValue___java_lang_Object(JAVA_OBJECT me, JAVA_OBJECT n1)
226 {
227     //XMLVM_BEGIN_WRAPPER[java_util_Hashtable_Entry_setValue___java_lang_Object]
228     XMLVM_ENTER_METHOD("java.util.Hashtable$Entry", "setValue", "?")
229     XMLVMElem _r0;
230     XMLVMElem _r1;
231     XMLVMElem _r2;
232     _r1.o = me;
233     _r2.o = n1;
234     XMLVM_SOURCE_POSITION("Hashtable.java", 111)
235     if (_r2.o != JAVA_NULL) goto label8;
236     XMLVM_SOURCE_POSITION("Hashtable.java", 112)
237     _r0.o = __NEW_java_lang_NullPointerException();
238     XMLVM_CHECK_NPE(0)
239     java_lang_NullPointerException___INIT___(_r0.o);
240     XMLVM_THROW_CUSTOM(_r0.o)
241     label8:;
242     XMLVM_SOURCE_POSITION("Hashtable.java", 114)
243     XMLVM_CHECK_NPE(1)
244     _r0.o = ((java_util_MapEntry*) _r1.o)->fields.java_util_MapEntry.value_;
245     XMLVM_SOURCE_POSITION("Hashtable.java", 115)
246     XMLVM_CHECK_NPE(1)
247     ((java_util_MapEntry*) _r1.o)->fields.java_util_MapEntry.value_ = _r2.o;
248     XMLVM_SOURCE_POSITION("Hashtable.java", 116)
249     XMLVM_EXIT_METHOD()
250     return _r0.o;
251     //XMLVM_END_WRAPPER
252 }
253 
java_util_Hashtable_Entry_getKeyHash__(JAVA_OBJECT me)254 JAVA_INT java_util_Hashtable_Entry_getKeyHash__(JAVA_OBJECT me)
255 {
256     //XMLVM_BEGIN_WRAPPER[java_util_Hashtable_Entry_getKeyHash__]
257     XMLVM_ENTER_METHOD("java.util.Hashtable$Entry", "getKeyHash", "?")
258     XMLVMElem _r0;
259     XMLVMElem _r1;
260     _r1.o = me;
261     XMLVM_SOURCE_POSITION("Hashtable.java", 120)
262     XMLVM_CHECK_NPE(1)
263     _r0.o = ((java_util_MapEntry*) _r1.o)->fields.java_util_MapEntry.key_;
264     //java_lang_Object_hashCode__[4]
265     XMLVM_CHECK_NPE(0)
266     _r0.i = (*(JAVA_INT (*)(JAVA_OBJECT)) ((java_lang_Object*) _r0.o)->tib->vtable[4])(_r0.o);
267     XMLVM_EXIT_METHOD()
268     return _r0.i;
269     //XMLVM_END_WRAPPER
270 }
271 
java_util_Hashtable_Entry_equalsKey___java_lang_Object_int(JAVA_OBJECT me,JAVA_OBJECT n1,JAVA_INT n2)272 JAVA_BOOLEAN java_util_Hashtable_Entry_equalsKey___java_lang_Object_int(JAVA_OBJECT me, JAVA_OBJECT n1, JAVA_INT n2)
273 {
274     //XMLVM_BEGIN_WRAPPER[java_util_Hashtable_Entry_equalsKey___java_lang_Object_int]
275     XMLVM_ENTER_METHOD("java.util.Hashtable$Entry", "equalsKey", "?")
276     XMLVMElem _r0;
277     XMLVMElem _r1;
278     XMLVMElem _r2;
279     XMLVMElem _r3;
280     XMLVMElem _r4;
281     _r2.o = me;
282     _r3.o = n1;
283     _r4.i = n2;
284     XMLVM_SOURCE_POSITION("Hashtable.java", 124)
285     XMLVM_CHECK_NPE(2)
286     _r0.i = ((java_util_Hashtable_Entry*) _r2.o)->fields.java_util_Hashtable_Entry.hashcode_;
287     //java_lang_Object_hashCode__[4]
288     XMLVM_CHECK_NPE(3)
289     _r1.i = (*(JAVA_INT (*)(JAVA_OBJECT)) ((java_lang_Object*) _r3.o)->tib->vtable[4])(_r3.o);
290     if (_r0.i != _r1.i) goto label18;
291     XMLVM_CHECK_NPE(2)
292     _r0.o = ((java_util_MapEntry*) _r2.o)->fields.java_util_MapEntry.key_;
293     //java_lang_Object_equals___java_lang_Object[1]
294     XMLVM_CHECK_NPE(0)
295     _r0.i = (*(JAVA_BOOLEAN (*)(JAVA_OBJECT, JAVA_OBJECT)) ((java_lang_Object*) _r0.o)->tib->vtable[1])(_r0.o, _r3.o);
296     if (_r0.i == 0) goto label18;
297     _r0.i = 1;
298     label17:;
299     XMLVM_EXIT_METHOD()
300     return _r0.i;
301     label18:;
302     _r0.i = 0;
303     goto label17;
304     //XMLVM_END_WRAPPER
305 }
306 
java_util_Hashtable_Entry_toString__(JAVA_OBJECT me)307 JAVA_OBJECT java_util_Hashtable_Entry_toString__(JAVA_OBJECT me)
308 {
309     //XMLVM_BEGIN_WRAPPER[java_util_Hashtable_Entry_toString__]
310     XMLVM_ENTER_METHOD("java.util.Hashtable$Entry", "toString", "?")
311     XMLVMElem _r0;
312     XMLVMElem _r1;
313     XMLVMElem _r2;
314     _r2.o = me;
315     XMLVM_SOURCE_POSITION("Hashtable.java", 129)
316     _r0.o = __NEW_java_lang_StringBuilder();
317     XMLVM_CHECK_NPE(0)
318     java_lang_StringBuilder___INIT___(_r0.o);
319     XMLVM_CHECK_NPE(2)
320     _r1.o = ((java_util_MapEntry*) _r2.o)->fields.java_util_MapEntry.key_;
321     XMLVM_CHECK_NPE(0)
322     _r0.o = java_lang_StringBuilder_append___java_lang_Object(_r0.o, _r1.o);
323     // "="
324     _r1.o = xmlvm_create_java_string_from_pool(648);
325     XMLVM_CHECK_NPE(0)
326     _r0.o = java_lang_StringBuilder_append___java_lang_String(_r0.o, _r1.o);
327     XMLVM_CHECK_NPE(2)
328     _r1.o = ((java_util_MapEntry*) _r2.o)->fields.java_util_MapEntry.value_;
329     XMLVM_CHECK_NPE(0)
330     _r0.o = java_lang_StringBuilder_append___java_lang_Object(_r0.o, _r1.o);
331     //java_lang_StringBuilder_toString__[5]
332     XMLVM_CHECK_NPE(0)
333     _r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_lang_StringBuilder*) _r0.o)->tib->vtable[5])(_r0.o);
334     XMLVM_EXIT_METHOD()
335     return _r0.o;
336     //XMLVM_END_WRAPPER
337 }
338 
339