~ubuntu-branches/ubuntu/vivid/emscripten/vivid

« back to all changes in this revision

Viewing changes to tests/nbody-java/org_xmlvm_runtime_FinalizerNotifier_1.c

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2013-06-11 15:45:24 UTC
  • mfrom: (1.2.1) (2.1.1 experimental)
  • Revision ID: package-import@ubuntu.com-20130611154524-rppb3w6tixlegv4n
Tags: 1.4.7~20130611~a1eb425-1
* New snapshot release
* Upload to unstable

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include "xmlvm.h"
 
2
#include "java_lang_System.h"
 
3
#include "org_xmlvm_runtime_Condition.h"
 
4
#include "org_xmlvm_runtime_FinalizerNotifier.h"
 
5
#include "org_xmlvm_runtime_Mutex.h"
 
6
 
 
7
#include "org_xmlvm_runtime_FinalizerNotifier_1.h"
 
8
 
 
9
#define XMLVM_CURRENT_CLASS_NAME FinalizerNotifier_1
 
10
#define XMLVM_CURRENT_PKG_CLASS_NAME org_xmlvm_runtime_FinalizerNotifier_1
 
11
 
 
12
__TIB_DEFINITION_org_xmlvm_runtime_FinalizerNotifier_1 __TIB_org_xmlvm_runtime_FinalizerNotifier_1 = {
 
13
    0, // classInitializationBegan
 
14
    0, // classInitialized
 
15
    -1, // initializerThreadId
 
16
    __INIT_org_xmlvm_runtime_FinalizerNotifier_1, // classInitializer
 
17
    "org.xmlvm.runtime.FinalizerNotifier$1", // className
 
18
    "org.xmlvm.runtime", // package
 
19
    "org.xmlvm.runtime.FinalizerNotifier", // enclosingClassName
 
20
    "startFinalizerThread:()Ljava/lang/Thread;", // enclosingMethodName
 
21
    JAVA_NULL, // signature
 
22
    (__TIB_DEFINITION_TEMPLATE*) &__TIB_java_lang_Thread, // extends
 
23
    sizeof(org_xmlvm_runtime_FinalizerNotifier_1), // sizeInstance
 
24
    XMLVM_TYPE_CLASS};
 
25
 
 
26
JAVA_OBJECT __CLASS_org_xmlvm_runtime_FinalizerNotifier_1;
 
27
JAVA_OBJECT __CLASS_org_xmlvm_runtime_FinalizerNotifier_1_1ARRAY;
 
28
JAVA_OBJECT __CLASS_org_xmlvm_runtime_FinalizerNotifier_1_2ARRAY;
 
29
JAVA_OBJECT __CLASS_org_xmlvm_runtime_FinalizerNotifier_1_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
 
 
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
 
 
50
static JAVA_OBJECT method_dispatcher(JAVA_OBJECT method, JAVA_OBJECT receiver, JAVA_OBJECT arguments)
 
51
{
 
52
    XMLVM_NOT_IMPLEMENTED();
 
53
}
 
54
 
 
55
void __INIT_org_xmlvm_runtime_FinalizerNotifier_1()
 
56
{
 
57
    staticInitializerLock(&__TIB_org_xmlvm_runtime_FinalizerNotifier_1);
 
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_org_xmlvm_runtime_FinalizerNotifier_1.classInitializationBegan;
 
62
 
 
63
    // Whether or not class initialization had already began, it has begun now
 
64
    __TIB_org_xmlvm_runtime_FinalizerNotifier_1.classInitializationBegan = 1;
 
65
 
 
66
    staticInitializerUnlock(&__TIB_org_xmlvm_runtime_FinalizerNotifier_1);
 
67
 
 
68
    JAVA_LONG curThreadId = (JAVA_LONG)pthread_self();
 
69
    if (initBegan) {
 
70
        if (__TIB_org_xmlvm_runtime_FinalizerNotifier_1.initializerThreadId != curThreadId) {
 
71
            // Busy wait until the other thread finishes initializing this class
 
72
            while (!__TIB_org_xmlvm_runtime_FinalizerNotifier_1.classInitialized) {
 
73
                // do nothing
 
74
            }
 
75
        }
 
76
    } else {
 
77
        __TIB_org_xmlvm_runtime_FinalizerNotifier_1.initializerThreadId = curThreadId;
 
78
        XMLVM_CLASS_USED("org.xmlvm.runtime.FinalizerNotifier$1")
 
79
        __INIT_IMPL_org_xmlvm_runtime_FinalizerNotifier_1();
 
80
    }
 
81
}
 
82
 
 
83
void __INIT_IMPL_org_xmlvm_runtime_FinalizerNotifier_1()
 
84
{
 
85
    // Initialize base class if necessary
 
86
    XMLVM_CLASS_INIT(java_lang_Thread)
 
87
    __TIB_org_xmlvm_runtime_FinalizerNotifier_1.newInstanceFunc = __NEW_INSTANCE_org_xmlvm_runtime_FinalizerNotifier_1;
 
88
    // Copy vtable from base class
 
89
    XMLVM_MEMCPY(__TIB_org_xmlvm_runtime_FinalizerNotifier_1.vtable, __TIB_java_lang_Thread.vtable, sizeof(__TIB_java_lang_Thread.vtable));
 
90
    // Initialize vtable for this class
 
91
    __TIB_org_xmlvm_runtime_FinalizerNotifier_1.vtable[6] = (VTABLE_PTR) &org_xmlvm_runtime_FinalizerNotifier_1_run__;
 
92
    // Initialize interface information
 
93
    __TIB_org_xmlvm_runtime_FinalizerNotifier_1.numImplementedInterfaces = 1;
 
94
    __TIB_org_xmlvm_runtime_FinalizerNotifier_1.implementedInterfaces = (__TIB_DEFINITION_TEMPLATE* (*)[1]) XMLVM_MALLOC(sizeof(__TIB_DEFINITION_TEMPLATE*) * 1);
 
95
 
 
96
    // Initialize interfaces if necessary and assign tib to implementedInterfaces
 
97
 
 
98
    XMLVM_CLASS_INIT(java_lang_Runnable)
 
99
 
 
100
    __TIB_org_xmlvm_runtime_FinalizerNotifier_1.implementedInterfaces[0][0] = &__TIB_java_lang_Runnable;
 
101
    // Initialize itable for this class
 
102
    __TIB_org_xmlvm_runtime_FinalizerNotifier_1.itableBegin = &__TIB_org_xmlvm_runtime_FinalizerNotifier_1.itable[0];
 
103
    __TIB_org_xmlvm_runtime_FinalizerNotifier_1.itable[XMLVM_ITABLE_IDX_java_lang_Runnable_run__] = __TIB_org_xmlvm_runtime_FinalizerNotifier_1.vtable[6];
 
104
 
 
105
 
 
106
    __TIB_org_xmlvm_runtime_FinalizerNotifier_1.declaredFields = &__field_reflection_data[0];
 
107
    __TIB_org_xmlvm_runtime_FinalizerNotifier_1.numDeclaredFields = sizeof(__field_reflection_data) / sizeof(XMLVM_FIELD_REFLECTION_DATA);
 
108
    __TIB_org_xmlvm_runtime_FinalizerNotifier_1.constructorDispatcherFunc = constructor_dispatcher;
 
109
    __TIB_org_xmlvm_runtime_FinalizerNotifier_1.declaredConstructors = &__constructor_reflection_data[0];
 
110
    __TIB_org_xmlvm_runtime_FinalizerNotifier_1.numDeclaredConstructors = sizeof(__constructor_reflection_data) / sizeof(XMLVM_CONSTRUCTOR_REFLECTION_DATA);
 
111
    __TIB_org_xmlvm_runtime_FinalizerNotifier_1.methodDispatcherFunc = method_dispatcher;
 
112
    __TIB_org_xmlvm_runtime_FinalizerNotifier_1.declaredMethods = &__method_reflection_data[0];
 
113
    __TIB_org_xmlvm_runtime_FinalizerNotifier_1.numDeclaredMethods = sizeof(__method_reflection_data) / sizeof(XMLVM_METHOD_REFLECTION_DATA);
 
114
    __CLASS_org_xmlvm_runtime_FinalizerNotifier_1 = XMLVM_CREATE_CLASS_OBJECT(&__TIB_org_xmlvm_runtime_FinalizerNotifier_1);
 
115
    __TIB_org_xmlvm_runtime_FinalizerNotifier_1.clazz = __CLASS_org_xmlvm_runtime_FinalizerNotifier_1;
 
116
    __TIB_org_xmlvm_runtime_FinalizerNotifier_1.baseType = JAVA_NULL;
 
117
    __CLASS_org_xmlvm_runtime_FinalizerNotifier_1_1ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_org_xmlvm_runtime_FinalizerNotifier_1);
 
118
    __CLASS_org_xmlvm_runtime_FinalizerNotifier_1_2ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_org_xmlvm_runtime_FinalizerNotifier_1_1ARRAY);
 
119
    __CLASS_org_xmlvm_runtime_FinalizerNotifier_1_3ARRAY = XMLVM_CREATE_ARRAY_CLASS_OBJECT(__CLASS_org_xmlvm_runtime_FinalizerNotifier_1_2ARRAY);
 
120
    //XMLVM_BEGIN_WRAPPER[__INIT_org_xmlvm_runtime_FinalizerNotifier_1]
 
121
    //XMLVM_END_WRAPPER
 
122
 
 
123
    __TIB_org_xmlvm_runtime_FinalizerNotifier_1.classInitialized = 1;
 
124
}
 
125
 
 
126
void __DELETE_org_xmlvm_runtime_FinalizerNotifier_1(void* me, void* client_data)
 
127
{
 
128
    //XMLVM_BEGIN_WRAPPER[__DELETE_org_xmlvm_runtime_FinalizerNotifier_1]
 
129
    //XMLVM_END_WRAPPER
 
130
}
 
131
 
 
132
void __INIT_INSTANCE_MEMBERS_org_xmlvm_runtime_FinalizerNotifier_1(JAVA_OBJECT me, int derivedClassWillRegisterFinalizer)
 
133
{
 
134
    __INIT_INSTANCE_MEMBERS_java_lang_Thread(me, 0 || derivedClassWillRegisterFinalizer);
 
135
    //XMLVM_BEGIN_WRAPPER[__INIT_INSTANCE_MEMBERS_org_xmlvm_runtime_FinalizerNotifier_1]
 
136
    //XMLVM_END_WRAPPER
 
137
}
 
138
 
 
139
JAVA_OBJECT __NEW_org_xmlvm_runtime_FinalizerNotifier_1()
 
140
{    XMLVM_CLASS_INIT(org_xmlvm_runtime_FinalizerNotifier_1)
 
141
org_xmlvm_runtime_FinalizerNotifier_1* me = (org_xmlvm_runtime_FinalizerNotifier_1*) XMLVM_MALLOC(sizeof(org_xmlvm_runtime_FinalizerNotifier_1));
 
142
    me->tib = &__TIB_org_xmlvm_runtime_FinalizerNotifier_1;
 
143
    __INIT_INSTANCE_MEMBERS_org_xmlvm_runtime_FinalizerNotifier_1(me, 0);
 
144
    //XMLVM_BEGIN_WRAPPER[__NEW_org_xmlvm_runtime_FinalizerNotifier_1]
 
145
    //XMLVM_END_WRAPPER
 
146
    return me;
 
147
}
 
148
 
 
149
JAVA_OBJECT __NEW_INSTANCE_org_xmlvm_runtime_FinalizerNotifier_1()
 
150
{
 
151
    JAVA_OBJECT me = JAVA_NULL;
 
152
    me = __NEW_org_xmlvm_runtime_FinalizerNotifier_1();
 
153
    org_xmlvm_runtime_FinalizerNotifier_1___INIT___(me);
 
154
    return me;
 
155
}
 
156
 
 
157
void org_xmlvm_runtime_FinalizerNotifier_1___INIT___(JAVA_OBJECT me)
 
158
{
 
159
    //XMLVM_BEGIN_WRAPPER[org_xmlvm_runtime_FinalizerNotifier_1___INIT___]
 
160
    XMLVM_ENTER_METHOD("org.xmlvm.runtime.FinalizerNotifier$1", "<init>", "?")
 
161
    XMLVMElem _r0;
 
162
    _r0.o = me;
 
163
    XMLVM_SOURCE_POSITION("FinalizerNotifier.java", 34)
 
164
    XMLVM_CHECK_NPE(0)
 
165
    java_lang_Thread___INIT___(_r0.o);
 
166
    XMLVM_EXIT_METHOD()
 
167
    return;
 
168
    //XMLVM_END_WRAPPER
 
169
}
 
170
 
 
171
void org_xmlvm_runtime_FinalizerNotifier_1_run__(JAVA_OBJECT me)
 
172
{
 
173
    //XMLVM_BEGIN_WRAPPER[org_xmlvm_runtime_FinalizerNotifier_1_run__]
 
174
    XMLVM_ENTER_METHOD("org.xmlvm.runtime.FinalizerNotifier$1", "run", "?")
 
175
    XMLVMElem _r0;
 
176
    XMLVMElem _r1;
 
177
    XMLVMElem _r2;
 
178
    XMLVMElem _r3;
 
179
    XMLVMElem _r4;
 
180
    _r4.o = me;
 
181
    _r3.i = 1;
 
182
    XMLVM_SOURCE_POSITION("FinalizerNotifier.java", 37)
 
183
    _r0.i = 0;
 
184
    label2:;
 
185
    XMLVM_SOURCE_POSITION("FinalizerNotifier.java", 38)
 
186
    if (_r0.i != 0) goto label63;
 
187
    XMLVM_SOURCE_POSITION("FinalizerNotifier.java", 41)
 
188
    _r1.o = org_xmlvm_runtime_FinalizerNotifier_access$000__();
 
189
    XMLVM_CHECK_NPE(1)
 
190
    org_xmlvm_runtime_Mutex_lock__(_r1.o);
 
191
    XMLVM_SOURCE_POSITION("FinalizerNotifier.java", 50)
 
192
    _r1.i = org_xmlvm_runtime_FinalizerNotifier_access$100__();
 
193
    if (_r1.i != 0) goto label31;
 
194
    XMLVM_SOURCE_POSITION("FinalizerNotifier.java", 54)
 
195
    org_xmlvm_runtime_FinalizerNotifier_access$200___boolean(_r3.i);
 
196
    XMLVM_SOURCE_POSITION("FinalizerNotifier.java", 59)
 
197
    _r1.o = org_xmlvm_runtime_FinalizerNotifier_access$300__();
 
198
    _r2.o = org_xmlvm_runtime_FinalizerNotifier_access$000__();
 
199
    XMLVM_CHECK_NPE(1)
 
200
    org_xmlvm_runtime_Condition_wait___org_xmlvm_runtime_Mutex(_r1.o, _r2.o);
 
201
    label31:;
 
202
    XMLVM_SOURCE_POSITION("FinalizerNotifier.java", 62)
 
203
    _r1.o = org_xmlvm_runtime_FinalizerNotifier_access$000__();
 
204
    XMLVM_CHECK_NPE(1)
 
205
    org_xmlvm_runtime_Mutex_unlock__(_r1.o);
 
206
    XMLVM_SOURCE_POSITION("FinalizerNotifier.java", 64)
 
207
    _r0.i = org_xmlvm_runtime_FinalizerNotifier_access$400__();
 
208
    XMLVM_SOURCE_POSITION("FinalizerNotifier.java", 67)
 
209
    _r1.o = org_xmlvm_runtime_FinalizerNotifier_access$000__();
 
210
    XMLVM_CHECK_NPE(1)
 
211
    org_xmlvm_runtime_Mutex_lock__(_r1.o);
 
212
    XMLVM_SOURCE_POSITION("FinalizerNotifier.java", 68)
 
213
    org_xmlvm_runtime_FinalizerNotifier_access$200___boolean(_r3.i);
 
214
    XMLVM_SOURCE_POSITION("FinalizerNotifier.java", 69)
 
215
    _r1.o = org_xmlvm_runtime_FinalizerNotifier_access$000__();
 
216
    XMLVM_CHECK_NPE(1)
 
217
    org_xmlvm_runtime_Mutex_unlock__(_r1.o);
 
218
    XMLVM_SOURCE_POSITION("FinalizerNotifier.java", 73)
 
219
    java_lang_System_gc__();
 
220
    goto label2;
 
221
    label63:;
 
222
    XMLVM_SOURCE_POSITION("FinalizerNotifier.java", 77)
 
223
    XMLVM_EXIT_METHOD()
 
224
    return;
 
225
    //XMLVM_END_WRAPPER
 
226
}
 
227