1 #include "xmlvm.h"
2 #include "java_lang_Class.h"
3 #include "java_lang_System.h"
4 #include "java_lang_ref_Reference.h"
5
6 #include "java_lang_ref_ReferenceQueue.h"
7
8 #define XMLVM_CURRENT_CLASS_NAME ReferenceQueue
9 #define XMLVM_CURRENT_PKG_CLASS_NAME java_lang_ref_ReferenceQueue
10
11 __TIB_DEFINITION_java_lang_ref_ReferenceQueue __TIB_java_lang_ref_ReferenceQueue = {
12 0, // classInitializationBegan
13 0, // classInitialized
14 -1, // initializerThreadId
15 __INIT_java_lang_ref_ReferenceQueue, // classInitializer
16 "java.lang.ref.ReferenceQueue", // className
17 "java.lang.ref", // package
18 JAVA_NULL, // enclosingClassName
19 JAVA_NULL, // enclosingMethodName
20 "<T:Ljava/lang/Object;>Ljava/lang/Object;", // signature
21 (__TIB_DEFINITION_TEMPLATE*) &__TIB_java_lang_Object, // extends
22 sizeof(java_lang_ref_ReferenceQueue), // sizeInstance
23 XMLVM_TYPE_CLASS};
24
25 JAVA_OBJECT __CLASS_java_lang_ref_ReferenceQueue;
26 JAVA_OBJECT __CLASS_java_lang_ref_ReferenceQueue_1ARRAY;
27 JAVA_OBJECT __CLASS_java_lang_ref_ReferenceQueue_2ARRAY;
28 JAVA_OBJECT __CLASS_java_lang_ref_ReferenceQueue_3ARRAY;
29 //XMLVM_BEGIN_IMPLEMENTATION
30 //XMLVM_END_IMPLEMENTATION
31
32 static JAVA_INT _STATIC_java_lang_ref_ReferenceQueue_DEFAULT_QUEUE_SIZE;
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_lang_ref_ReferenceQueue()55 void __INIT_java_lang_ref_ReferenceQueue()
56 {
57 staticInitializerLock(&__TIB_java_lang_ref_ReferenceQueue);
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_lang_ref_ReferenceQueue.classInitializationBegan;
62
63 // Whether or not class initialization had already began, it has begun now
64 __TIB_java_lang_ref_ReferenceQueue.classInitializationBegan = 1;
65
66 staticInitializerUnlock(&__TIB_java_lang_ref_ReferenceQueue);
67
68 JAVA_LONG curThreadId = (JAVA_LONG)pthread_self();
69 if (initBegan) {
70 if (__TIB_java_lang_ref_ReferenceQueue.initializerThreadId != curThreadId) {
71 // Busy wait until the other thread finishes initializing this class
72 while (!__TIB_java_lang_ref_ReferenceQueue.classInitialized) {
73 // do nothing
74 }
75 }
76 } else {
77 __TIB_java_lang_ref_ReferenceQueue.initializerThreadId = curThreadId;
78 XMLVM_CLASS_USED("java.lang.ref.ReferenceQueue")
79 __INIT_IMPL_java_lang_ref_ReferenceQueue();
80 }
81 }
82
__INIT_IMPL_java_lang_ref_ReferenceQueue()83 void __INIT_IMPL_java_lang_ref_ReferenceQueue()
84 {
85 // Initialize base class if necessary
86 XMLVM_CLASS_INIT(java_lang_Object)
87 __TIB_java_lang_ref_ReferenceQueue.newInstanceFunc = __NEW_INSTANCE_java_lang_ref_ReferenceQueue;
88 // Copy vtable from base class
89 XMLVM_MEMCPY(__TIB_java_lang_ref_ReferenceQueue.vtable, __TIB_java_lang_Object.vtable, sizeof(__TIB_java_lang_Object.vtable));
90 // Initialize vtable for this class
91 // Initialize interface information
92 __TIB_java_lang_ref_ReferenceQueue.numImplementedInterfaces = 0;
93 __TIB_java_lang_ref_ReferenceQueue.implementedInterfaces = (__TIB_DEFINITION_TEMPLATE* (*)[1]) XMLVM_MALLOC(sizeof(__TIB_DEFINITION_TEMPLATE*) * 0);
94
95 // Initialize interfaces if necessary and assign tib to implementedInterfaces
96 _STATIC_java_lang_ref_ReferenceQueue_DEFAULT_QUEUE_SIZE = 128;
97
98 __TIB_java_lang_ref_ReferenceQueue.declaredFields = &__field_reflection_data[0];
99 __TIB_java_lang_ref_ReferenceQueue.numDeclaredFields = sizeof(__field_reflection_data) / sizeof(XMLVM_FIELD_REFLECTION_DATA);
100 __TIB_java_lang_ref_ReferenceQueue.constructorDispatcherFunc = constructor_dispatcher;
101 __TIB_java_lang_ref_ReferenceQueue.declaredConstructors = &__constructor_reflection_data[0];
102 __TIB_java_lang_ref_ReferenceQueue.numDeclaredConstructors = sizeof(__constructor_reflection_data) / sizeof(XMLVM_CONSTRUCTOR_REFLECTION_DATA);
103 __TIB_java_lang_ref_ReferenceQueue.methodDispatcherFunc = method_dispatcher;
104 __TIB_java_lang_ref_ReferenceQueue.declaredMethods = &__method_reflection_data[0];
105 __TIB_java_lang_ref_ReferenceQueue.numDeclaredMethods = sizeof(__method_reflection_data) / sizeof(XMLVM_METHOD_REFLECTION_DATA);
106 __CLASS_java_lang_ref_ReferenceQueue = XMLVM_CREATE_CLASS_OBJECT(&__TIB_java_lang_ref_ReferenceQueue);
107 __TIB_java_lang_ref_ReferenceQueue.clazz = __CLASS_java_lang_ref_ReferenceQueue;
108 __TIB_java_lang_ref_ReferenceQueue.baseType = JAVA_NULL;
109 __CLASS_java_lang_ref_ReferenceQueue_1ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_java_lang_ref_ReferenceQueue);
110 __CLASS_java_lang_ref_ReferenceQueue_2ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_java_lang_ref_ReferenceQueue_1ARRAY);
111 __CLASS_java_lang_ref_ReferenceQueue_3ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_java_lang_ref_ReferenceQueue_2ARRAY);
112 //XMLVM_BEGIN_WRAPPER[__INIT_java_lang_ref_ReferenceQueue]
113 //XMLVM_END_WRAPPER
114
115 __TIB_java_lang_ref_ReferenceQueue.classInitialized = 1;
116 }
117
__DELETE_java_lang_ref_ReferenceQueue(void * me,void * client_data)118 void __DELETE_java_lang_ref_ReferenceQueue(void* me, void* client_data)
119 {
120 //XMLVM_BEGIN_WRAPPER[__DELETE_java_lang_ref_ReferenceQueue]
121 //XMLVM_END_WRAPPER
122 }
123
__INIT_INSTANCE_MEMBERS_java_lang_ref_ReferenceQueue(JAVA_OBJECT me,int derivedClassWillRegisterFinalizer)124 void __INIT_INSTANCE_MEMBERS_java_lang_ref_ReferenceQueue(JAVA_OBJECT me, int derivedClassWillRegisterFinalizer)
125 {
126 __INIT_INSTANCE_MEMBERS_java_lang_Object(me, 0 || derivedClassWillRegisterFinalizer);
127 ((java_lang_ref_ReferenceQueue*) me)->fields.java_lang_ref_ReferenceQueue.references_ = (org_xmlvm_runtime_XMLVMArray*) JAVA_NULL;
128 ((java_lang_ref_ReferenceQueue*) me)->fields.java_lang_ref_ReferenceQueue.head_ = 0;
129 ((java_lang_ref_ReferenceQueue*) me)->fields.java_lang_ref_ReferenceQueue.tail_ = 0;
130 ((java_lang_ref_ReferenceQueue*) me)->fields.java_lang_ref_ReferenceQueue.empty_ = 0;
131 //XMLVM_BEGIN_WRAPPER[__INIT_INSTANCE_MEMBERS_java_lang_ref_ReferenceQueue]
132 //XMLVM_END_WRAPPER
133 }
134
__NEW_java_lang_ref_ReferenceQueue()135 JAVA_OBJECT __NEW_java_lang_ref_ReferenceQueue()
136 { XMLVM_CLASS_INIT(java_lang_ref_ReferenceQueue)
137 java_lang_ref_ReferenceQueue* me = (java_lang_ref_ReferenceQueue*) XMLVM_MALLOC(sizeof(java_lang_ref_ReferenceQueue));
138 me->tib = &__TIB_java_lang_ref_ReferenceQueue;
139 __INIT_INSTANCE_MEMBERS_java_lang_ref_ReferenceQueue(me, 0);
140 //XMLVM_BEGIN_WRAPPER[__NEW_java_lang_ref_ReferenceQueue]
141 //XMLVM_END_WRAPPER
142 return me;
143 }
144
__NEW_INSTANCE_java_lang_ref_ReferenceQueue()145 JAVA_OBJECT __NEW_INSTANCE_java_lang_ref_ReferenceQueue()
146 {
147 JAVA_OBJECT me = JAVA_NULL;
148 me = __NEW_java_lang_ref_ReferenceQueue();
149 java_lang_ref_ReferenceQueue___INIT___(me);
150 return me;
151 }
152
java_lang_ref_ReferenceQueue_GET_DEFAULT_QUEUE_SIZE()153 JAVA_INT java_lang_ref_ReferenceQueue_GET_DEFAULT_QUEUE_SIZE()
154 {
155 XMLVM_CLASS_INIT(java_lang_ref_ReferenceQueue)
156 return _STATIC_java_lang_ref_ReferenceQueue_DEFAULT_QUEUE_SIZE;
157 }
158
java_lang_ref_ReferenceQueue_PUT_DEFAULT_QUEUE_SIZE(JAVA_INT v)159 void java_lang_ref_ReferenceQueue_PUT_DEFAULT_QUEUE_SIZE(JAVA_INT v)
160 {
161 XMLVM_CLASS_INIT(java_lang_ref_ReferenceQueue)
162 _STATIC_java_lang_ref_ReferenceQueue_DEFAULT_QUEUE_SIZE = v;
163 }
164
java_lang_ref_ReferenceQueue___INIT___(JAVA_OBJECT me)165 void java_lang_ref_ReferenceQueue___INIT___(JAVA_OBJECT me)
166 {
167 //XMLVM_BEGIN_WRAPPER[java_lang_ref_ReferenceQueue___INIT___]
168 XMLVM_ENTER_METHOD("java.lang.ref.ReferenceQueue", "<init>", "?")
169 XMLVMElem _r0;
170 XMLVMElem _r1;
171 XMLVMElem _r2;
172 _r2.o = me;
173 _r1.i = 0;
174 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 43)
175 XMLVM_CHECK_NPE(2)
176 java_lang_Object___INIT___(_r2.o);
177 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 44)
178 _r0.i = 128;
179 XMLVM_CHECK_NPE(2)
180 _r0.o = java_lang_ref_ReferenceQueue_newArray___int(_r2.o, _r0.i);
181 XMLVM_CHECK_NPE(2)
182 ((java_lang_ref_ReferenceQueue*) _r2.o)->fields.java_lang_ref_ReferenceQueue.references_ = _r0.o;
183 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 45)
184 XMLVM_CHECK_NPE(2)
185 ((java_lang_ref_ReferenceQueue*) _r2.o)->fields.java_lang_ref_ReferenceQueue.head_ = _r1.i;
186 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 46)
187 XMLVM_CHECK_NPE(2)
188 ((java_lang_ref_ReferenceQueue*) _r2.o)->fields.java_lang_ref_ReferenceQueue.tail_ = _r1.i;
189 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 47)
190 _r0.i = 1;
191 XMLVM_CHECK_NPE(2)
192 ((java_lang_ref_ReferenceQueue*) _r2.o)->fields.java_lang_ref_ReferenceQueue.empty_ = _r0.i;
193 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 48)
194 XMLVM_EXIT_METHOD()
195 return;
196 //XMLVM_END_WRAPPER
197 }
198
java_lang_ref_ReferenceQueue_newArray___int(JAVA_OBJECT me,JAVA_INT n1)199 JAVA_OBJECT java_lang_ref_ReferenceQueue_newArray___int(JAVA_OBJECT me, JAVA_INT n1)
200 {
201 //XMLVM_BEGIN_WRAPPER[java_lang_ref_ReferenceQueue_newArray___int]
202 XMLVM_ENTER_METHOD("java.lang.ref.ReferenceQueue", "newArray", "?")
203 XMLVMElem _r0;
204 XMLVMElem _r1;
205 XMLVMElem _r2;
206 _r1.o = me;
207 _r2.i = n1;
208 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 52)
209 XMLVM_CLASS_INIT(java_lang_ref_Reference)
210 _r0.o = XMLVMArray_createSingleDimension(__CLASS_java_lang_ref_Reference, _r2.i);
211 XMLVM_EXIT_METHOD()
212 return _r0.o;
213 //XMLVM_END_WRAPPER
214 }
215
java_lang_ref_ReferenceQueue_poll__(JAVA_OBJECT me)216 JAVA_OBJECT java_lang_ref_ReferenceQueue_poll__(JAVA_OBJECT me)
217 {
218 //XMLVM_BEGIN_WRAPPER[java_lang_ref_ReferenceQueue_poll__]
219 XMLVM_ENTER_METHOD("java.lang.ref.ReferenceQueue", "poll", "?")
220 volatile XMLVMElem _r0;
221 volatile XMLVMElem _r1;
222 volatile XMLVMElem _r2;
223 volatile XMLVMElem _r3;
224 _r3.o = me;
225 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 65)
226 java_lang_Object_acquireLockRecursive__(_r3.o);
227 XMLVM_TRY_BEGIN(w1725aaab7b1b4)
228 // Begin try
229 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 66)
230 XMLVM_CHECK_NPE(3)
231 _r0.i = ((java_lang_ref_ReferenceQueue*) _r3.o)->fields.java_lang_ref_ReferenceQueue.empty_;
232 if (_r0.i == 0) { XMLVM_MEMCPY(curThread_w1725aaab7b1b4->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w1725aaab7b1b4, sizeof(XMLVM_JMP_BUF)); goto label8; };
233 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 67)
234 java_lang_Object_releaseLockRecursive__(_r3.o);
235 _r0.o = JAVA_NULL;
236 // End try
237 XMLVM_TRY_END
238 XMLVM_CATCH_BEGIN(w1725aaab7b1b4)
239 XMLVM_CATCH_SPECIFIC(w1725aaab7b1b4,java_lang_Object,42)
240 XMLVM_CATCH_END(w1725aaab7b1b4)
241 XMLVM_RESTORE_EXCEPTION_ENV(w1725aaab7b1b4)
242 label7:;
243 XMLVM_TRY_BEGIN(w1725aaab7b1b6)
244 // Begin try
245 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 78)
246 XMLVM_MEMCPY(curThread_w1725aaab7b1b6->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w1725aaab7b1b6, sizeof(XMLVM_JMP_BUF));
247 XMLVM_EXIT_METHOD()
248 return _r0.o;
249 // End try
250 XMLVM_TRY_END
251 XMLVM_CATCH_BEGIN(w1725aaab7b1b6)
252 XMLVM_CATCH_SPECIFIC(w1725aaab7b1b6,java_lang_Object,42)
253 XMLVM_CATCH_END(w1725aaab7b1b6)
254 XMLVM_RESTORE_EXCEPTION_ENV(w1725aaab7b1b6)
255 label8:;
256 XMLVM_TRY_BEGIN(w1725aaab7b1b8)
257 // Begin try
258 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 69)
259 XMLVM_CHECK_NPE(3)
260 _r0.o = ((java_lang_ref_ReferenceQueue*) _r3.o)->fields.java_lang_ref_ReferenceQueue.references_;
261 XMLVM_CHECK_NPE(3)
262 _r1.i = ((java_lang_ref_ReferenceQueue*) _r3.o)->fields.java_lang_ref_ReferenceQueue.head_;
263 _r2.i = _r1.i + 1;
264 XMLVM_CHECK_NPE(3)
265 ((java_lang_ref_ReferenceQueue*) _r3.o)->fields.java_lang_ref_ReferenceQueue.head_ = _r2.i;
266 XMLVM_CHECK_NPE(0)
267 XMLVM_CHECK_ARRAY_BOUNDS(_r0.o, _r1.i);
268 _r0.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r0.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r1.i];
269 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 70)
270 XMLVM_CHECK_NPE(0)
271 java_lang_ref_Reference_dequeue__(_r0.o);
272 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 71)
273 XMLVM_CHECK_NPE(3)
274 _r1.i = ((java_lang_ref_ReferenceQueue*) _r3.o)->fields.java_lang_ref_ReferenceQueue.head_;
275 XMLVM_CHECK_NPE(3)
276 _r2.o = ((java_lang_ref_ReferenceQueue*) _r3.o)->fields.java_lang_ref_ReferenceQueue.references_;
277 _r2.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r2.o));
278 if (_r1.i != _r2.i) { XMLVM_MEMCPY(curThread_w1725aaab7b1b8->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w1725aaab7b1b8, sizeof(XMLVM_JMP_BUF)); goto label31; };
279 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 72)
280 _r1.i = 0;
281 XMLVM_CHECK_NPE(3)
282 ((java_lang_ref_ReferenceQueue*) _r3.o)->fields.java_lang_ref_ReferenceQueue.head_ = _r1.i;
283 // End try
284 XMLVM_TRY_END
285 XMLVM_CATCH_BEGIN(w1725aaab7b1b8)
286 XMLVM_CATCH_SPECIFIC(w1725aaab7b1b8,java_lang_Object,42)
287 XMLVM_CATCH_END(w1725aaab7b1b8)
288 XMLVM_RESTORE_EXCEPTION_ENV(w1725aaab7b1b8)
289 label31:;
290 XMLVM_TRY_BEGIN(w1725aaab7b1c10)
291 // Begin try
292 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 74)
293 XMLVM_CHECK_NPE(3)
294 _r1.i = ((java_lang_ref_ReferenceQueue*) _r3.o)->fields.java_lang_ref_ReferenceQueue.head_;
295 XMLVM_CHECK_NPE(3)
296 _r2.i = ((java_lang_ref_ReferenceQueue*) _r3.o)->fields.java_lang_ref_ReferenceQueue.tail_;
297 if (_r1.i != _r2.i) { XMLVM_MEMCPY(curThread_w1725aaab7b1c10->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w1725aaab7b1c10, sizeof(XMLVM_JMP_BUF)); goto label40; };
298 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 75)
299 _r1.i = 1;
300 XMLVM_CHECK_NPE(3)
301 ((java_lang_ref_ReferenceQueue*) _r3.o)->fields.java_lang_ref_ReferenceQueue.empty_ = _r1.i;
302 // End try
303 XMLVM_TRY_END
304 XMLVM_CATCH_BEGIN(w1725aaab7b1c10)
305 XMLVM_CATCH_SPECIFIC(w1725aaab7b1c10,java_lang_Object,42)
306 XMLVM_CATCH_END(w1725aaab7b1c10)
307 XMLVM_RESTORE_EXCEPTION_ENV(w1725aaab7b1c10)
308 label40:;
309 XMLVM_TRY_BEGIN(w1725aaab7b1c12)
310 // Begin try
311 java_lang_Object_releaseLockRecursive__(_r3.o);
312 { XMLVM_MEMCPY(curThread_w1725aaab7b1c12->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w1725aaab7b1c12, sizeof(XMLVM_JMP_BUF)); goto label7; };
313 // End try
314 XMLVM_TRY_END
315 XMLVM_CATCH_BEGIN(w1725aaab7b1c12)
316 XMLVM_CATCH_SPECIFIC(w1725aaab7b1c12,java_lang_Object,42)
317 XMLVM_CATCH_END(w1725aaab7b1c12)
318 XMLVM_RESTORE_EXCEPTION_ENV(w1725aaab7b1c12)
319 label42:;
320 XMLVM_TRY_BEGIN(w1725aaab7b1c14)
321 // Begin try
322 java_lang_Thread* curThread_w1725aaab7b1c14aa = (java_lang_Thread*)java_lang_Thread_currentThread__();
323 _r0.o = curThread_w1725aaab7b1c14aa->fields.java_lang_Thread.xmlvmException_;
324 java_lang_Object_releaseLockRecursive__(_r3.o);
325 // End try
326 XMLVM_TRY_END
327 XMLVM_CATCH_BEGIN(w1725aaab7b1c14)
328 XMLVM_CATCH_SPECIFIC(w1725aaab7b1c14,java_lang_Object,42)
329 XMLVM_CATCH_END(w1725aaab7b1c14)
330 XMLVM_RESTORE_EXCEPTION_ENV(w1725aaab7b1c14)
331 XMLVM_THROW_CUSTOM(_r0.o)
332 //XMLVM_END_WRAPPER
333 }
334
java_lang_ref_ReferenceQueue_remove__(JAVA_OBJECT me)335 JAVA_OBJECT java_lang_ref_ReferenceQueue_remove__(JAVA_OBJECT me)
336 {
337 //XMLVM_BEGIN_WRAPPER[java_lang_ref_ReferenceQueue_remove__]
338 XMLVM_ENTER_METHOD("java.lang.ref.ReferenceQueue", "remove", "?")
339 XMLVMElem _r0;
340 XMLVMElem _r1;
341 XMLVMElem _r2;
342 _r2.o = me;
343 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 91)
344 _r0.l = 0;
345 XMLVM_CHECK_NPE(2)
346 _r0.o = java_lang_ref_ReferenceQueue_remove___long(_r2.o, _r0.l);
347 XMLVM_EXIT_METHOD()
348 return _r0.o;
349 //XMLVM_END_WRAPPER
350 }
351
java_lang_ref_ReferenceQueue_remove___long(JAVA_OBJECT me,JAVA_LONG n1)352 JAVA_OBJECT java_lang_ref_ReferenceQueue_remove___long(JAVA_OBJECT me, JAVA_LONG n1)
353 {
354 //XMLVM_BEGIN_WRAPPER[java_lang_ref_ReferenceQueue_remove___long]
355 XMLVM_ENTER_METHOD("java.lang.ref.ReferenceQueue", "remove", "?")
356 volatile XMLVMElem _r0;
357 volatile XMLVMElem _r1;
358 volatile XMLVMElem _r2;
359 volatile XMLVMElem _r3;
360 volatile XMLVMElem _r4;
361 volatile XMLVMElem _r5;
362 _r3.o = me;
363 _r4.l = n1;
364 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 112)
365 _r0.l = 0;
366 _r0.i = _r4.l > _r0.l ? 1 : (_r4.l == _r0.l ? 0 : -1);
367 if (_r0.i >= 0) goto label12;
368 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 113)
369
370
371 // Red class access removed: java.lang.IllegalArgumentException::new-instance
372 XMLVM_RED_CLASS_DEPENDENCY();
373
374
375 // Red class access removed: java.lang.IllegalArgumentException::<init>
376 XMLVM_RED_CLASS_DEPENDENCY();
377 XMLVM_THROW_CUSTOM(_r0.o)
378 label12:;
379 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 117)
380 java_lang_Object_acquireLockRecursive__(_r3.o);
381 XMLVM_TRY_BEGIN(w1725aaab9b1c14)
382 // Begin try
383 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 118)
384 XMLVM_CHECK_NPE(3)
385 _r0.i = ((java_lang_ref_ReferenceQueue*) _r3.o)->fields.java_lang_ref_ReferenceQueue.empty_;
386 if (_r0.i == 0) { XMLVM_MEMCPY(curThread_w1725aaab9b1c14->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w1725aaab9b1c14, sizeof(XMLVM_JMP_BUF)); goto label27; };
387 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 119)
388 XMLVM_CHECK_NPE(3)
389 java_lang_Object_wait___long(_r3.o, _r4.l);
390 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 120)
391 XMLVM_CHECK_NPE(3)
392 _r0.i = ((java_lang_ref_ReferenceQueue*) _r3.o)->fields.java_lang_ref_ReferenceQueue.empty_;
393 if (_r0.i == 0) { XMLVM_MEMCPY(curThread_w1725aaab9b1c14->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w1725aaab9b1c14, sizeof(XMLVM_JMP_BUF)); goto label27; };
394 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 121)
395 java_lang_Object_releaseLockRecursive__(_r3.o);
396 _r0.o = JAVA_NULL;
397 // End try
398 XMLVM_TRY_END
399 XMLVM_CATCH_BEGIN(w1725aaab9b1c14)
400 XMLVM_CATCH_SPECIFIC(w1725aaab9b1c14,java_lang_Object,61)
401 XMLVM_CATCH_END(w1725aaab9b1c14)
402 XMLVM_RESTORE_EXCEPTION_ENV(w1725aaab9b1c14)
403 label26:;
404 XMLVM_TRY_BEGIN(w1725aaab9b1c16)
405 // Begin try
406 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 135)
407 XMLVM_MEMCPY(curThread_w1725aaab9b1c16->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w1725aaab9b1c16, sizeof(XMLVM_JMP_BUF));
408 XMLVM_EXIT_METHOD()
409 return _r0.o;
410 // End try
411 XMLVM_TRY_END
412 XMLVM_CATCH_BEGIN(w1725aaab9b1c16)
413 XMLVM_CATCH_SPECIFIC(w1725aaab9b1c16,java_lang_Object,61)
414 XMLVM_CATCH_END(w1725aaab9b1c16)
415 XMLVM_RESTORE_EXCEPTION_ENV(w1725aaab9b1c16)
416 label27:;
417 XMLVM_TRY_BEGIN(w1725aaab9b1c18)
418 // Begin try
419 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 124)
420 XMLVM_CHECK_NPE(3)
421 _r0.o = ((java_lang_ref_ReferenceQueue*) _r3.o)->fields.java_lang_ref_ReferenceQueue.references_;
422 XMLVM_CHECK_NPE(3)
423 _r1.i = ((java_lang_ref_ReferenceQueue*) _r3.o)->fields.java_lang_ref_ReferenceQueue.head_;
424 _r2.i = _r1.i + 1;
425 XMLVM_CHECK_NPE(3)
426 ((java_lang_ref_ReferenceQueue*) _r3.o)->fields.java_lang_ref_ReferenceQueue.head_ = _r2.i;
427 XMLVM_CHECK_NPE(0)
428 XMLVM_CHECK_ARRAY_BOUNDS(_r0.o, _r1.i);
429 _r0.o = ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r0.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r1.i];
430 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 125)
431 XMLVM_CHECK_NPE(0)
432 java_lang_ref_Reference_dequeue__(_r0.o);
433 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 126)
434 XMLVM_CHECK_NPE(3)
435 _r1.i = ((java_lang_ref_ReferenceQueue*) _r3.o)->fields.java_lang_ref_ReferenceQueue.head_;
436 XMLVM_CHECK_NPE(3)
437 _r2.o = ((java_lang_ref_ReferenceQueue*) _r3.o)->fields.java_lang_ref_ReferenceQueue.references_;
438 _r2.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r2.o));
439 if (_r1.i != _r2.i) { XMLVM_MEMCPY(curThread_w1725aaab9b1c18->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w1725aaab9b1c18, sizeof(XMLVM_JMP_BUF)); goto label50; };
440 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 127)
441 _r1.i = 0;
442 XMLVM_CHECK_NPE(3)
443 ((java_lang_ref_ReferenceQueue*) _r3.o)->fields.java_lang_ref_ReferenceQueue.head_ = _r1.i;
444 // End try
445 XMLVM_TRY_END
446 XMLVM_CATCH_BEGIN(w1725aaab9b1c18)
447 XMLVM_CATCH_SPECIFIC(w1725aaab9b1c18,java_lang_Object,61)
448 XMLVM_CATCH_END(w1725aaab9b1c18)
449 XMLVM_RESTORE_EXCEPTION_ENV(w1725aaab9b1c18)
450 label50:;
451 XMLVM_TRY_BEGIN(w1725aaab9b1c20)
452 // Begin try
453 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 129)
454 XMLVM_CHECK_NPE(3)
455 _r1.i = ((java_lang_ref_ReferenceQueue*) _r3.o)->fields.java_lang_ref_ReferenceQueue.head_;
456 XMLVM_CHECK_NPE(3)
457 _r2.i = ((java_lang_ref_ReferenceQueue*) _r3.o)->fields.java_lang_ref_ReferenceQueue.tail_;
458 if (_r1.i != _r2.i) { XMLVM_MEMCPY(curThread_w1725aaab9b1c20->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w1725aaab9b1c20, sizeof(XMLVM_JMP_BUF)); goto label64; };
459 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 130)
460 _r1.i = 1;
461 XMLVM_CHECK_NPE(3)
462 ((java_lang_ref_ReferenceQueue*) _r3.o)->fields.java_lang_ref_ReferenceQueue.empty_ = _r1.i;
463 // End try
464 XMLVM_TRY_END
465 XMLVM_CATCH_BEGIN(w1725aaab9b1c20)
466 XMLVM_CATCH_SPECIFIC(w1725aaab9b1c20,java_lang_Object,61)
467 XMLVM_CATCH_END(w1725aaab9b1c20)
468 XMLVM_RESTORE_EXCEPTION_ENV(w1725aaab9b1c20)
469 label59:;
470 XMLVM_TRY_BEGIN(w1725aaab9b1c22)
471 // Begin try
472 java_lang_Object_releaseLockRecursive__(_r3.o);
473 { XMLVM_MEMCPY(curThread_w1725aaab9b1c22->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w1725aaab9b1c22, sizeof(XMLVM_JMP_BUF)); goto label26; };
474 // End try
475 XMLVM_TRY_END
476 XMLVM_CATCH_BEGIN(w1725aaab9b1c22)
477 XMLVM_CATCH_SPECIFIC(w1725aaab9b1c22,java_lang_Object,61)
478 XMLVM_CATCH_END(w1725aaab9b1c22)
479 XMLVM_RESTORE_EXCEPTION_ENV(w1725aaab9b1c22)
480 label61:;
481 XMLVM_TRY_BEGIN(w1725aaab9b1c24)
482 // Begin try
483 java_lang_Thread* curThread_w1725aaab9b1c24aa = (java_lang_Thread*)java_lang_Thread_currentThread__();
484 _r0.o = curThread_w1725aaab9b1c24aa->fields.java_lang_Thread.xmlvmException_;
485 java_lang_Object_releaseLockRecursive__(_r3.o);
486 // End try
487 XMLVM_TRY_END
488 XMLVM_CATCH_BEGIN(w1725aaab9b1c24)
489 XMLVM_CATCH_SPECIFIC(w1725aaab9b1c24,java_lang_Object,61)
490 XMLVM_CATCH_END(w1725aaab9b1c24)
491 XMLVM_RESTORE_EXCEPTION_ENV(w1725aaab9b1c24)
492 XMLVM_THROW_CUSTOM(_r0.o)
493 label64:;
494 XMLVM_TRY_BEGIN(w1725aaab9b1c27)
495 // Begin try
496 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 132)
497 XMLVM_CHECK_NPE(3)
498 java_lang_Object_notifyAll__(_r3.o);
499 // End try
500 XMLVM_TRY_END
501 XMLVM_CATCH_BEGIN(w1725aaab9b1c27)
502 XMLVM_CATCH_SPECIFIC(w1725aaab9b1c27,java_lang_Object,61)
503 XMLVM_CATCH_END(w1725aaab9b1c27)
504 XMLVM_RESTORE_EXCEPTION_ENV(w1725aaab9b1c27)
505 goto label59;
506 //XMLVM_END_WRAPPER
507 }
508
java_lang_ref_ReferenceQueue_enqueue___java_lang_ref_Reference(JAVA_OBJECT me,JAVA_OBJECT n1)509 JAVA_BOOLEAN java_lang_ref_ReferenceQueue_enqueue___java_lang_ref_Reference(JAVA_OBJECT me, JAVA_OBJECT n1)
510 {
511 //XMLVM_BEGIN_WRAPPER[java_lang_ref_ReferenceQueue_enqueue___java_lang_ref_Reference]
512 XMLVM_ENTER_METHOD("java.lang.ref.ReferenceQueue", "enqueue", "?")
513 volatile XMLVMElem _r0;
514 volatile XMLVMElem _r1;
515 volatile XMLVMElem _r2;
516 volatile XMLVMElem _r3;
517 volatile XMLVMElem _r4;
518 volatile XMLVMElem _r5;
519 volatile XMLVMElem _r6;
520 volatile XMLVMElem _r7;
521 _r6.o = me;
522 _r7.o = n1;
523 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 147)
524 java_lang_Object_acquireLockRecursive__(_r6.o);
525 XMLVM_TRY_BEGIN(w1725aaac10b1b5)
526 // Begin try
527 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 148)
528 XMLVM_CHECK_NPE(6)
529 _r0.i = ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.empty_;
530 if (_r0.i != 0) { XMLVM_MEMCPY(curThread_w1725aaac10b1b5->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w1725aaac10b1b5, sizeof(XMLVM_JMP_BUF)); goto label68; };
531 XMLVM_CHECK_NPE(6)
532 _r0.i = ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.head_;
533 XMLVM_CHECK_NPE(6)
534 _r1.i = ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.tail_;
535 if (_r0.i != _r1.i) { XMLVM_MEMCPY(curThread_w1725aaac10b1b5->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w1725aaac10b1b5, sizeof(XMLVM_JMP_BUF)); goto label68; };
536 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 150)
537 XMLVM_CHECK_NPE(6)
538 _r0.o = ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.references_;
539 _r0.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r0.o));
540 _r0.d = (JAVA_DOUBLE) _r0.i;
541 _r2.d = 1.1;
542 _r0.d = _r0.d * _r2.d;
543 _r0.i = (JAVA_INT) _r0.d;
544 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 151)
545 XMLVM_CHECK_NPE(6)
546 _r0.o = java_lang_ref_ReferenceQueue_newArray___int(_r6.o, _r0.i);
547 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 152)
548 XMLVM_CHECK_NPE(6)
549 _r1.o = ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.references_;
550 XMLVM_CHECK_NPE(6)
551 _r2.i = ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.head_;
552 _r3.i = 0;
553 XMLVM_CHECK_NPE(6)
554 _r4.o = ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.references_;
555 _r4.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r4.o));
556 XMLVM_CHECK_NPE(6)
557 _r5.i = ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.head_;
558 _r4.i = _r4.i - _r5.i;
559 java_lang_System_arraycopy___java_lang_Object_int_java_lang_Object_int_int(_r1.o, _r2.i, _r0.o, _r3.i, _r4.i);
560 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 153)
561 XMLVM_CHECK_NPE(6)
562 _r1.i = ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.tail_;
563 if (_r1.i <= 0) { XMLVM_MEMCPY(curThread_w1725aaac10b1b5->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w1725aaac10b1b5, sizeof(XMLVM_JMP_BUF)); goto label58; };
564 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 154)
565 XMLVM_CHECK_NPE(6)
566 _r1.o = ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.references_;
567 _r2.i = 0;
568 XMLVM_CHECK_NPE(6)
569 _r3.o = ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.references_;
570 _r3.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r3.o));
571 XMLVM_CHECK_NPE(6)
572 _r4.i = ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.head_;
573 _r3.i = _r3.i - _r4.i;
574 XMLVM_CHECK_NPE(6)
575 _r4.i = ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.tail_;
576 java_lang_System_arraycopy___java_lang_Object_int_java_lang_Object_int_int(_r1.o, _r2.i, _r0.o, _r3.i, _r4.i);
577 // End try
578 XMLVM_TRY_END
579 XMLVM_CATCH_BEGIN(w1725aaac10b1b5)
580 XMLVM_CATCH_SPECIFIC(w1725aaac10b1b5,java_lang_Object,97)
581 XMLVM_CATCH_END(w1725aaac10b1b5)
582 XMLVM_RESTORE_EXCEPTION_ENV(w1725aaac10b1b5)
583 label58:;
584 XMLVM_TRY_BEGIN(w1725aaac10b1b7)
585 // Begin try
586 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 156)
587 _r1.i = 0;
588 XMLVM_CHECK_NPE(6)
589 ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.head_ = _r1.i;
590 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 157)
591 XMLVM_CHECK_NPE(6)
592 _r1.o = ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.references_;
593 _r1.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r1.o));
594 XMLVM_CHECK_NPE(6)
595 ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.tail_ = _r1.i;
596 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 158)
597 XMLVM_CHECK_NPE(6)
598 ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.references_ = _r0.o;
599 // End try
600 XMLVM_TRY_END
601 XMLVM_CATCH_BEGIN(w1725aaac10b1b7)
602 XMLVM_CATCH_SPECIFIC(w1725aaac10b1b7,java_lang_Object,97)
603 XMLVM_CATCH_END(w1725aaac10b1b7)
604 XMLVM_RESTORE_EXCEPTION_ENV(w1725aaac10b1b7)
605 label68:;
606 XMLVM_TRY_BEGIN(w1725aaac10b1b9)
607 // Begin try
608 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 160)
609 XMLVM_CHECK_NPE(6)
610 _r0.o = ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.references_;
611 XMLVM_CHECK_NPE(6)
612 _r1.i = ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.tail_;
613 _r2.i = _r1.i + 1;
614 XMLVM_CHECK_NPE(6)
615 ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.tail_ = _r2.i;
616 XMLVM_CHECK_NPE(0)
617 XMLVM_CHECK_ARRAY_BOUNDS(_r0.o, _r1.i);
618 ((JAVA_ARRAY_OBJECT*) (((org_xmlvm_runtime_XMLVMArray*) _r0.o)->fields.org_xmlvm_runtime_XMLVMArray.array_))[_r1.i] = _r7.o;
619 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 161)
620 XMLVM_CHECK_NPE(6)
621 _r0.i = ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.tail_;
622 XMLVM_CHECK_NPE(6)
623 _r1.o = ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.references_;
624 _r1.i = XMLVMArray_count(((org_xmlvm_runtime_XMLVMArray*) _r1.o));
625 if (_r0.i != _r1.i) { XMLVM_MEMCPY(curThread_w1725aaac10b1b9->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w1725aaac10b1b9, sizeof(XMLVM_JMP_BUF)); goto label88; };
626 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 162)
627 _r0.i = 0;
628 XMLVM_CHECK_NPE(6)
629 ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.tail_ = _r0.i;
630 // End try
631 XMLVM_TRY_END
632 XMLVM_CATCH_BEGIN(w1725aaac10b1b9)
633 XMLVM_CATCH_SPECIFIC(w1725aaac10b1b9,java_lang_Object,97)
634 XMLVM_CATCH_END(w1725aaac10b1b9)
635 XMLVM_RESTORE_EXCEPTION_ENV(w1725aaac10b1b9)
636 label88:;
637 XMLVM_TRY_BEGIN(w1725aaac10b1c11)
638 // Begin try
639 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 164)
640 _r0.i = 0;
641 XMLVM_CHECK_NPE(6)
642 ((java_lang_ref_ReferenceQueue*) _r6.o)->fields.java_lang_ref_ReferenceQueue.empty_ = _r0.i;
643 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 165)
644 XMLVM_CHECK_NPE(6)
645 java_lang_Object_notifyAll__(_r6.o);
646 java_lang_Object_releaseLockRecursive__(_r6.o);
647 XMLVM_SOURCE_POSITION("ReferenceQueue.java", 167)
648 _r0.i = 1;
649 XMLVM_MEMCPY(curThread_w1725aaac10b1c11->fields.java_lang_Thread.xmlvmExceptionEnv_, local_env_w1725aaac10b1c11, sizeof(XMLVM_JMP_BUF));
650 XMLVM_EXIT_METHOD()
651 return _r0.i;
652 // End try
653 XMLVM_TRY_END
654 XMLVM_CATCH_BEGIN(w1725aaac10b1c11)
655 XMLVM_CATCH_SPECIFIC(w1725aaac10b1c11,java_lang_Object,97)
656 XMLVM_CATCH_END(w1725aaac10b1c11)
657 XMLVM_RESTORE_EXCEPTION_ENV(w1725aaac10b1c11)
658 label97:;
659 XMLVM_TRY_BEGIN(w1725aaac10b1c13)
660 // Begin try
661 java_lang_Thread* curThread_w1725aaac10b1c13aa = (java_lang_Thread*)java_lang_Thread_currentThread__();
662 _r0.o = curThread_w1725aaac10b1c13aa->fields.java_lang_Thread.xmlvmException_;
663 java_lang_Object_releaseLockRecursive__(_r6.o);
664 // End try
665 XMLVM_TRY_END
666 XMLVM_CATCH_BEGIN(w1725aaac10b1c13)
667 XMLVM_CATCH_SPECIFIC(w1725aaac10b1c13,java_lang_Object,97)
668 XMLVM_CATCH_END(w1725aaac10b1c13)
669 XMLVM_RESTORE_EXCEPTION_ENV(w1725aaac10b1c13)
670 XMLVM_THROW_CUSTOM(_r0.o)
671 //XMLVM_END_WRAPPER
672 }
673
674