2
#include "java_lang_NullPointerException.h"
3
#include "java_lang_Object.h"
4
#include "java_util_Collection.h"
5
#include "java_util_Iterator.h"
7
#include "java_util_AbstractSet.h"
9
#define XMLVM_CURRENT_CLASS_NAME AbstractSet
10
#define XMLVM_CURRENT_PKG_CLASS_NAME java_util_AbstractSet
12
__TIB_DEFINITION_java_util_AbstractSet __TIB_java_util_AbstractSet = {
13
0, // classInitializationBegan
14
0, // classInitialized
15
-1, // initializerThreadId
16
__INIT_java_util_AbstractSet, // classInitializer
17
"java.util.AbstractSet", // className
18
"java.util", // package
19
JAVA_NULL, // enclosingClassName
20
JAVA_NULL, // enclosingMethodName
21
"<E:Ljava/lang/Object;>Ljava/util/AbstractCollection<TE;>;Ljava/util/Set<TE;>;", // signature
22
(__TIB_DEFINITION_TEMPLATE*) &__TIB_java_util_AbstractCollection, // extends
23
sizeof(java_util_AbstractSet), // sizeInstance
26
JAVA_OBJECT __CLASS_java_util_AbstractSet;
27
JAVA_OBJECT __CLASS_java_util_AbstractSet_1ARRAY;
28
JAVA_OBJECT __CLASS_java_util_AbstractSet_2ARRAY;
29
JAVA_OBJECT __CLASS_java_util_AbstractSet_3ARRAY;
30
//XMLVM_BEGIN_IMPLEMENTATION
31
//XMLVM_END_IMPLEMENTATION
34
#include "xmlvm-reflection.h"
36
static XMLVM_FIELD_REFLECTION_DATA __field_reflection_data[] = {
39
static XMLVM_CONSTRUCTOR_REFLECTION_DATA __constructor_reflection_data[] = {
42
static JAVA_OBJECT constructor_dispatcher(JAVA_OBJECT constructor, JAVA_OBJECT arguments)
44
XMLVM_NOT_IMPLEMENTED();
47
static XMLVM_METHOD_REFLECTION_DATA __method_reflection_data[] = {
50
static JAVA_OBJECT method_dispatcher(JAVA_OBJECT method, JAVA_OBJECT receiver, JAVA_OBJECT arguments)
52
XMLVM_NOT_IMPLEMENTED();
55
void __INIT_java_util_AbstractSet()
57
staticInitializerLock(&__TIB_java_util_AbstractSet);
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_AbstractSet.classInitializationBegan;
63
// Whether or not class initialization had already began, it has begun now
64
__TIB_java_util_AbstractSet.classInitializationBegan = 1;
66
staticInitializerUnlock(&__TIB_java_util_AbstractSet);
68
JAVA_LONG curThreadId = (JAVA_LONG)pthread_self();
70
if (__TIB_java_util_AbstractSet.initializerThreadId != curThreadId) {
71
// Busy wait until the other thread finishes initializing this class
72
while (!__TIB_java_util_AbstractSet.classInitialized) {
77
__TIB_java_util_AbstractSet.initializerThreadId = curThreadId;
78
XMLVM_CLASS_USED("java.util.AbstractSet")
79
__INIT_IMPL_java_util_AbstractSet();
83
void __INIT_IMPL_java_util_AbstractSet()
85
// Initialize base class if necessary
86
XMLVM_CLASS_INIT(java_util_AbstractCollection)
87
__TIB_java_util_AbstractSet.newInstanceFunc = __NEW_INSTANCE_java_util_AbstractSet;
88
// Copy vtable from base class
89
XMLVM_MEMCPY(__TIB_java_util_AbstractSet.vtable, __TIB_java_util_AbstractCollection.vtable, sizeof(__TIB_java_util_AbstractCollection.vtable));
90
// Initialize vtable for this class
91
__TIB_java_util_AbstractSet.vtable[1] = (VTABLE_PTR) &java_util_AbstractSet_equals___java_lang_Object;
92
__TIB_java_util_AbstractSet.vtable[4] = (VTABLE_PTR) &java_util_AbstractSet_hashCode__;
93
__TIB_java_util_AbstractSet.vtable[13] = (VTABLE_PTR) &java_util_AbstractSet_removeAll___java_util_Collection;
94
// Initialize interface information
95
__TIB_java_util_AbstractSet.numImplementedInterfaces = 3;
96
__TIB_java_util_AbstractSet.implementedInterfaces = (__TIB_DEFINITION_TEMPLATE* (*)[1]) XMLVM_MALLOC(sizeof(__TIB_DEFINITION_TEMPLATE*) * 3);
98
// Initialize interfaces if necessary and assign tib to implementedInterfaces
100
XMLVM_CLASS_INIT(java_lang_Iterable)
102
__TIB_java_util_AbstractSet.implementedInterfaces[0][0] = &__TIB_java_lang_Iterable;
104
XMLVM_CLASS_INIT(java_util_Collection)
106
__TIB_java_util_AbstractSet.implementedInterfaces[0][1] = &__TIB_java_util_Collection;
108
XMLVM_CLASS_INIT(java_util_Set)
110
__TIB_java_util_AbstractSet.implementedInterfaces[0][2] = &__TIB_java_util_Set;
111
// Initialize itable for this class
112
__TIB_java_util_AbstractSet.itableBegin = &__TIB_java_util_AbstractSet.itable[0];
113
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_lang_Iterable_iterator__] = __TIB_java_util_AbstractSet.vtable[12];
114
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Collection_addAll___java_util_Collection] = __TIB_java_util_AbstractSet.vtable[6];
115
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Collection_add___java_lang_Object] = __TIB_java_util_AbstractSet.vtable[7];
116
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Collection_clear__] = __TIB_java_util_AbstractSet.vtable[8];
117
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Collection_containsAll___java_util_Collection] = __TIB_java_util_AbstractSet.vtable[9];
118
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Collection_contains___java_lang_Object] = __TIB_java_util_AbstractSet.vtable[10];
119
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Collection_equals___java_lang_Object] = __TIB_java_util_AbstractSet.vtable[1];
120
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Collection_hashCode__] = __TIB_java_util_AbstractSet.vtable[4];
121
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Collection_isEmpty__] = __TIB_java_util_AbstractSet.vtable[11];
122
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Collection_iterator__] = __TIB_java_util_AbstractSet.vtable[12];
123
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Collection_removeAll___java_util_Collection] = __TIB_java_util_AbstractSet.vtable[13];
124
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Collection_remove___java_lang_Object] = __TIB_java_util_AbstractSet.vtable[14];
125
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Collection_retainAll___java_util_Collection] = __TIB_java_util_AbstractSet.vtable[15];
126
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Collection_size__] = __TIB_java_util_AbstractSet.vtable[16];
127
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Collection_toArray__] = __TIB_java_util_AbstractSet.vtable[17];
128
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Collection_toArray___java_lang_Object_1ARRAY] = __TIB_java_util_AbstractSet.vtable[18];
129
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Set_addAll___java_util_Collection] = __TIB_java_util_AbstractSet.vtable[6];
130
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Set_add___java_lang_Object] = __TIB_java_util_AbstractSet.vtable[7];
131
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Set_clear__] = __TIB_java_util_AbstractSet.vtable[8];
132
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Set_containsAll___java_util_Collection] = __TIB_java_util_AbstractSet.vtable[9];
133
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Set_contains___java_lang_Object] = __TIB_java_util_AbstractSet.vtable[10];
134
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Set_equals___java_lang_Object] = __TIB_java_util_AbstractSet.vtable[1];
135
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Set_hashCode__] = __TIB_java_util_AbstractSet.vtable[4];
136
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Set_isEmpty__] = __TIB_java_util_AbstractSet.vtable[11];
137
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Set_iterator__] = __TIB_java_util_AbstractSet.vtable[12];
138
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Set_removeAll___java_util_Collection] = __TIB_java_util_AbstractSet.vtable[13];
139
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Set_remove___java_lang_Object] = __TIB_java_util_AbstractSet.vtable[14];
140
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Set_retainAll___java_util_Collection] = __TIB_java_util_AbstractSet.vtable[15];
141
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Set_size__] = __TIB_java_util_AbstractSet.vtable[16];
142
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Set_toArray__] = __TIB_java_util_AbstractSet.vtable[17];
143
__TIB_java_util_AbstractSet.itable[XMLVM_ITABLE_IDX_java_util_Set_toArray___java_lang_Object_1ARRAY] = __TIB_java_util_AbstractSet.vtable[18];
146
__TIB_java_util_AbstractSet.declaredFields = &__field_reflection_data[0];
147
__TIB_java_util_AbstractSet.numDeclaredFields = sizeof(__field_reflection_data) / sizeof(XMLVM_FIELD_REFLECTION_DATA);
148
__TIB_java_util_AbstractSet.constructorDispatcherFunc = constructor_dispatcher;
149
__TIB_java_util_AbstractSet.declaredConstructors = &__constructor_reflection_data[0];
150
__TIB_java_util_AbstractSet.numDeclaredConstructors = sizeof(__constructor_reflection_data) / sizeof(XMLVM_CONSTRUCTOR_REFLECTION_DATA);
151
__TIB_java_util_AbstractSet.methodDispatcherFunc = method_dispatcher;
152
__TIB_java_util_AbstractSet.declaredMethods = &__method_reflection_data[0];
153
__TIB_java_util_AbstractSet.numDeclaredMethods = sizeof(__method_reflection_data) / sizeof(XMLVM_METHOD_REFLECTION_DATA);
154
__CLASS_java_util_AbstractSet = XMLVM_CREATE_CLASS_OBJECT(&__TIB_java_util_AbstractSet);
155
__TIB_java_util_AbstractSet.clazz = __CLASS_java_util_AbstractSet;
156
__TIB_java_util_AbstractSet.baseType = JAVA_NULL;
157
__CLASS_java_util_AbstractSet_1ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_java_util_AbstractSet);
158
__CLASS_java_util_AbstractSet_2ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_java_util_AbstractSet_1ARRAY);
159
__CLASS_java_util_AbstractSet_3ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_java_util_AbstractSet_2ARRAY);
160
//XMLVM_BEGIN_WRAPPER[__INIT_java_util_AbstractSet]
163
__TIB_java_util_AbstractSet.classInitialized = 1;
166
void __DELETE_java_util_AbstractSet(void* me, void* client_data)
168
//XMLVM_BEGIN_WRAPPER[__DELETE_java_util_AbstractSet]
172
void __INIT_INSTANCE_MEMBERS_java_util_AbstractSet(JAVA_OBJECT me, int derivedClassWillRegisterFinalizer)
174
__INIT_INSTANCE_MEMBERS_java_util_AbstractCollection(me, 0 || derivedClassWillRegisterFinalizer);
175
//XMLVM_BEGIN_WRAPPER[__INIT_INSTANCE_MEMBERS_java_util_AbstractSet]
179
JAVA_OBJECT __NEW_java_util_AbstractSet()
180
{ XMLVM_CLASS_INIT(java_util_AbstractSet)
181
java_util_AbstractSet* me = (java_util_AbstractSet*) XMLVM_MALLOC(sizeof(java_util_AbstractSet));
182
me->tib = &__TIB_java_util_AbstractSet;
183
__INIT_INSTANCE_MEMBERS_java_util_AbstractSet(me, 0);
184
//XMLVM_BEGIN_WRAPPER[__NEW_java_util_AbstractSet]
189
JAVA_OBJECT __NEW_INSTANCE_java_util_AbstractSet()
191
JAVA_OBJECT me = JAVA_NULL;
192
me = __NEW_java_util_AbstractSet();
193
java_util_AbstractSet___INIT___(me);
197
void java_util_AbstractSet___INIT___(JAVA_OBJECT me)
199
//XMLVM_BEGIN_WRAPPER[java_util_AbstractSet___INIT___]
200
XMLVM_ENTER_METHOD("java.util.AbstractSet", "<init>", "?")
203
XMLVM_SOURCE_POSITION("AbstractSet.java", 34)
205
java_util_AbstractCollection___INIT___(_r0.o);
206
XMLVM_SOURCE_POSITION("AbstractSet.java", 35)
212
JAVA_BOOLEAN java_util_AbstractSet_equals___java_lang_Object(JAVA_OBJECT me, JAVA_OBJECT n1)
214
//XMLVM_BEGIN_WRAPPER[java_util_AbstractSet_equals___java_lang_Object]
215
XMLVM_ENTER_METHOD("java.util.AbstractSet", "equals", "?")
216
volatile XMLVMElem _r0;
217
volatile XMLVMElem _r1;
218
volatile XMLVMElem _r2;
219
volatile XMLVMElem _r3;
220
volatile XMLVMElem _r4;
221
volatile XMLVMElem _r5;
226
XMLVM_SOURCE_POSITION("AbstractSet.java", 50)
227
if (_r4.o != _r5.o) goto label6;
230
XMLVM_SOURCE_POSITION("AbstractSet.java", 51)
231
XMLVM_SOURCE_POSITION("AbstractSet.java", 64)
235
XMLVM_SOURCE_POSITION("AbstractSet.java", 53)
236
XMLVM_CLASS_INIT(java_util_Set)
237
_r0.i = XMLVM_ISA(_r5.o, __CLASS_java_util_Set);
238
if (_r0.i == 0) goto label38;
239
XMLVM_SOURCE_POSITION("AbstractSet.java", 54)
241
XMLVM_TRY_BEGIN(w1612aaab1b1c18)
243
XMLVM_SOURCE_POSITION("AbstractSet.java", 57)
244
//java_util_AbstractSet_size__[16]
246
_r0.i = (*(JAVA_INT (*)(JAVA_OBJECT)) ((java_util_AbstractSet*) _r4.o)->tib->vtable[16])(_r4.o);
248
_r1.i = (*(JAVA_INT (*)(JAVA_OBJECT)) *(((java_lang_Object*)_r5.o)->tib->itableBegin)[XMLVM_ITABLE_IDX_java_util_Set_size__])(_r5.o);
249
if (_r0.i != _r1.i) { XMLVM_MEMCPY(curThread_w1612aaab1b1c18->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w1612aaab1b1c18, sizeof(XMLVM_JMP_BUF)); goto label30; };
250
//java_util_AbstractSet_containsAll___java_util_Collection[9]
252
_r0.i = (*(JAVA_BOOLEAN (*)(JAVA_OBJECT, JAVA_OBJECT)) ((java_util_AbstractSet*) _r4.o)->tib->vtable[9])(_r4.o, _r5.o);
255
XMLVM_CATCH_BEGIN(w1612aaab1b1c18)
256
XMLVM_CATCH_SPECIFIC(w1612aaab1b1c18,java_lang_NullPointerException,32)
257
XMLVM_CATCH_END(w1612aaab1b1c18)
258
XMLVM_RESTORE_EXCEPTION_ENV(w1612aaab1b1c18)
259
if (_r0.i == 0) goto label30;
266
XMLVM_SOURCE_POSITION("AbstractSet.java", 59)
267
java_lang_Thread* curThread_w1612aaab1b1c27 = (java_lang_Thread*)java_lang_Thread_currentThread__();
268
_r0.o = curThread_w1612aaab1b1c27->fields.java_lang_Thread.xmlvmException_;
272
XMLVM_SOURCE_POSITION("AbstractSet.java", 61)
273
java_lang_Thread* curThread_w1612aaab1b1c32 = (java_lang_Thread*)java_lang_Thread_currentThread__();
274
_r0.o = curThread_w1612aaab1b1c32->fields.java_lang_Thread.xmlvmException_;
283
JAVA_INT java_util_AbstractSet_hashCode__(JAVA_OBJECT me)
285
//XMLVM_BEGIN_WRAPPER[java_util_AbstractSet_hashCode__]
286
XMLVM_ENTER_METHOD("java.util.AbstractSet", "hashCode", "?")
294
XMLVM_SOURCE_POSITION("AbstractSet.java", 77)
295
XMLVM_SOURCE_POSITION("AbstractSet.java", 78)
296
//java_util_AbstractSet_iterator__[12]
298
_r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_util_AbstractSet*) _r4.o)->tib->vtable[12])(_r4.o);
301
XMLVM_SOURCE_POSITION("AbstractSet.java", 79)
303
_r2.i = (*(JAVA_BOOLEAN (*)(JAVA_OBJECT)) *(((java_lang_Object*)_r0.o)->tib->itableBegin)[XMLVM_ITABLE_IDX_java_util_Iterator_hasNext__])(_r0.o);
304
if (_r2.i != 0) goto label13;
305
XMLVM_SOURCE_POSITION("AbstractSet.java", 83)
309
XMLVM_SOURCE_POSITION("AbstractSet.java", 80)
311
_r2.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) *(((java_lang_Object*)_r0.o)->tib->itableBegin)[XMLVM_ITABLE_IDX_java_util_Iterator_next__])(_r0.o);
312
XMLVM_SOURCE_POSITION("AbstractSet.java", 81)
313
if (_r2.o != JAVA_NULL) goto label22;
316
_r1.i = _r1.i + _r2.i;
319
//java_lang_Object_hashCode__[4]
321
_r2.i = (*(JAVA_INT (*)(JAVA_OBJECT)) ((java_lang_Object*) _r2.o)->tib->vtable[4])(_r2.o);
326
JAVA_BOOLEAN java_util_AbstractSet_removeAll___java_util_Collection(JAVA_OBJECT me, JAVA_OBJECT n1)
328
//XMLVM_BEGIN_WRAPPER[java_util_AbstractSet_removeAll___java_util_Collection]
329
XMLVM_ENTER_METHOD("java.util.AbstractSet", "removeAll", "?")
341
XMLVM_SOURCE_POSITION("AbstractSet.java", 99)
342
XMLVM_SOURCE_POSITION("AbstractSet.java", 100)
343
//java_util_AbstractSet_size__[16]
345
_r0.i = (*(JAVA_INT (*)(JAVA_OBJECT)) ((java_util_AbstractSet*) _r5.o)->tib->vtable[16])(_r5.o);
347
_r1.i = (*(JAVA_INT (*)(JAVA_OBJECT)) *(((java_lang_Object*)_r6.o)->tib->itableBegin)[XMLVM_ITABLE_IDX_java_util_Collection_size__])(_r6.o);
348
if (_r0.i > _r1.i) goto label40;
349
XMLVM_SOURCE_POSITION("AbstractSet.java", 101)
350
//java_util_AbstractSet_iterator__[12]
352
_r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) ((java_util_AbstractSet*) _r5.o)->tib->vtable[12])(_r5.o);
355
XMLVM_SOURCE_POSITION("AbstractSet.java", 102)
357
_r2.i = (*(JAVA_BOOLEAN (*)(JAVA_OBJECT)) *(((java_lang_Object*)_r0.o)->tib->itableBegin)[XMLVM_ITABLE_IDX_java_util_Iterator_hasNext__])(_r0.o);
358
if (_r2.i != 0) goto label25;
361
XMLVM_SOURCE_POSITION("AbstractSet.java", 114)
365
XMLVM_SOURCE_POSITION("AbstractSet.java", 103)
367
_r2.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) *(((java_lang_Object*)_r0.o)->tib->itableBegin)[XMLVM_ITABLE_IDX_java_util_Iterator_next__])(_r0.o);
369
_r2.i = (*(JAVA_BOOLEAN (*)(JAVA_OBJECT, JAVA_OBJECT)) *(((java_lang_Object*)_r6.o)->tib->itableBegin)[XMLVM_ITABLE_IDX_java_util_Collection_contains___java_lang_Object])(_r6.o, _r2.o);
370
if (_r2.i == 0) goto label17;
371
XMLVM_SOURCE_POSITION("AbstractSet.java", 104)
373
(*(void (*)(JAVA_OBJECT)) *(((java_lang_Object*)_r0.o)->tib->itableBegin)[XMLVM_ITABLE_IDX_java_util_Iterator_remove__])(_r0.o);
375
XMLVM_SOURCE_POSITION("AbstractSet.java", 105)
378
XMLVM_SOURCE_POSITION("AbstractSet.java", 109)
380
_r0.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) *(((java_lang_Object*)_r6.o)->tib->itableBegin)[XMLVM_ITABLE_IDX_java_util_Collection_iterator__])(_r6.o);
383
XMLVM_SOURCE_POSITION("AbstractSet.java", 110)
385
_r2.i = (*(JAVA_BOOLEAN (*)(JAVA_OBJECT)) *(((java_lang_Object*)_r0.o)->tib->itableBegin)[XMLVM_ITABLE_IDX_java_util_Iterator_hasNext__])(_r0.o);
386
if (_r2.i != 0) goto label53;
390
XMLVM_SOURCE_POSITION("AbstractSet.java", 111)
392
_r2.o = (*(JAVA_OBJECT (*)(JAVA_OBJECT)) *(((java_lang_Object*)_r0.o)->tib->itableBegin)[XMLVM_ITABLE_IDX_java_util_Iterator_next__])(_r0.o);
393
//java_util_AbstractSet_remove___java_lang_Object[14]
395
_r2.i = (*(JAVA_BOOLEAN (*)(JAVA_OBJECT, JAVA_OBJECT)) ((java_util_AbstractSet*) _r5.o)->tib->vtable[14])(_r5.o, _r2.o);
396
if (_r2.i != 0) goto label67;
397
if (_r1.i != 0) goto label67;