Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/hotspot/jtreg/vmTestbase/nsk/share/jpda/libNativeMethodsTestThread.cpp
41161 views
1
/*
2
* Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
#include "jni.h"
24
#include <stdlib.h>
25
26
extern "C" {
27
28
29
static void logMessage(JNIEnv *env, jobject thisObject, jstring message)
30
{
31
jclass klass;
32
klass = env->GetObjectClass(thisObject);
33
env->CallVoidMethod(thisObject,
34
env->GetMethodID(klass, "log", "(Ljava/lang/String;)V"),
35
message);
36
}
37
38
JNIEXPORT void JNICALL
39
Java_nsk_share_jpda_NativeMethodsTestThread_VoidMethod(JNIEnv *env,
40
jobject thisObject, jstring message)
41
{
42
logMessage(env, thisObject, message);
43
}
44
45
JNIEXPORT jboolean JNICALL
46
Java_nsk_share_jpda_NativeMethodsTestThread_BooleanMethod(JNIEnv *env,
47
jobject thisObject, jstring message)
48
{
49
jclass klass;
50
jfieldID valueField;
51
52
logMessage(env, thisObject, message);
53
54
klass = env->GetObjectClass(thisObject);
55
56
valueField = env->GetStaticFieldID(klass, "expectedBooleanValue", "Z");
57
58
return env->GetStaticBooleanField(klass, valueField);
59
}
60
61
JNIEXPORT jbyte JNICALL
62
Java_nsk_share_jpda_NativeMethodsTestThread_ByteMethod(JNIEnv *env,
63
jobject thisObject, jstring message)
64
{
65
jclass klass;
66
jfieldID valueField;
67
68
logMessage(env, thisObject, message);
69
70
klass = env->GetObjectClass(thisObject);
71
72
valueField = env->GetStaticFieldID(klass, "expectedByteValue", "B");
73
74
return env->GetStaticByteField(klass, valueField);
75
}
76
77
JNIEXPORT jshort JNICALL
78
Java_nsk_share_jpda_NativeMethodsTestThread_ShortMethod(JNIEnv *env,
79
jobject thisObject, jstring message)
80
{
81
jclass klass;
82
jfieldID valueField;
83
84
logMessage(env, thisObject, message);
85
86
klass = env->GetObjectClass(thisObject);
87
88
valueField = env->GetStaticFieldID(klass, "expectedShortValue", "S");
89
90
return env->GetStaticShortField(klass, valueField);
91
}
92
93
JNIEXPORT jchar JNICALL
94
Java_nsk_share_jpda_NativeMethodsTestThread_CharMethod(JNIEnv *env,
95
jobject thisObject, jstring message)
96
{
97
jclass klass;
98
jfieldID valueField;
99
100
logMessage(env, thisObject, message);
101
102
klass = env->GetObjectClass(thisObject);
103
104
valueField = env->GetStaticFieldID(klass, "expectedCharValue", "C");
105
106
return env->GetStaticCharField(klass, valueField);
107
}
108
109
JNIEXPORT jint JNICALL
110
Java_nsk_share_jpda_NativeMethodsTestThread_IntMethod(JNIEnv *env,
111
jobject thisObject, jstring message)
112
{
113
jclass klass;
114
jfieldID valueField;
115
116
logMessage(env, thisObject, message);
117
118
klass = env->GetObjectClass(thisObject);
119
120
valueField = env->GetStaticFieldID(klass, "expectedIntValue", "I");
121
122
return env->GetStaticIntField(klass, valueField);
123
}
124
125
JNIEXPORT jlong JNICALL
126
Java_nsk_share_jpda_NativeMethodsTestThread_LongMethod(JNIEnv *env,
127
jobject thisObject, jstring message)
128
{
129
jclass klass;
130
jfieldID valueField;
131
132
logMessage(env, thisObject, message);
133
134
klass = env->GetObjectClass(thisObject);
135
136
valueField = env->GetStaticFieldID(klass, "expectedLongValue", "J");
137
138
return env->GetStaticLongField(klass, valueField);
139
}
140
141
JNIEXPORT jfloat JNICALL
142
Java_nsk_share_jpda_NativeMethodsTestThread_FloatMethod(JNIEnv *env,
143
jobject thisObject, jstring message)
144
{
145
jclass klass;
146
jfieldID valueField;
147
148
logMessage(env, thisObject, message);
149
150
klass = env->GetObjectClass(thisObject);
151
152
valueField = env->GetStaticFieldID(klass, "expectedFloatValue", "F");
153
154
return env->GetStaticFloatField(klass, valueField);
155
}
156
157
JNIEXPORT jdouble JNICALL
158
Java_nsk_share_jpda_NativeMethodsTestThread_DoubleMethod(JNIEnv *env,
159
jobject thisObject, jstring message)
160
{
161
jclass klass;
162
jfieldID valueField;
163
164
logMessage(env, thisObject, message);
165
166
klass = env->GetObjectClass(thisObject);
167
168
valueField = env->GetStaticFieldID(klass, "expectedDoubleValue", "D");
169
170
return env->GetStaticDoubleField(klass, valueField);
171
}
172
173
JNIEXPORT jobject JNICALL
174
Java_nsk_share_jpda_NativeMethodsTestThread_ObjectArrayMethod(JNIEnv *env,
175
jobject thisObject, jstring message)
176
{
177
jclass klass;
178
jfieldID valueField;
179
180
logMessage(env, thisObject, message);
181
182
klass = env->GetObjectClass(thisObject);
183
184
valueField = env->GetStaticFieldID(klass, "expectedObjectArrayValue",
185
"[Ljava/lang/Object;");
186
187
return env->GetStaticObjectField(klass, valueField);
188
}
189
190
JNIEXPORT jobject JNICALL
191
Java_nsk_share_jpda_NativeMethodsTestThread_StringMethod(JNIEnv *env,
192
jobject thisObject, jstring message)
193
{
194
jclass klass;
195
jfieldID valueField;
196
197
logMessage(env, thisObject, message);
198
199
klass = env->GetObjectClass(thisObject);
200
201
valueField = env->GetStaticFieldID(klass, "expectedStringValue",
202
"Ljava/lang/String;");
203
204
return env->GetStaticObjectField(klass, valueField);
205
}
206
207
JNIEXPORT jobject JNICALL
208
Java_nsk_share_jpda_NativeMethodsTestThread_ThreadMethod(JNIEnv *env,
209
jobject thisObject, jstring message)
210
{
211
jclass klass;
212
jfieldID valueField;
213
214
logMessage(env, thisObject, message);
215
216
klass = env->GetObjectClass(thisObject);
217
218
valueField = env->GetStaticFieldID(klass, "expectedThreadValue",
219
"Ljava/lang/Thread;");
220
221
return env->GetStaticObjectField(klass, valueField);
222
}
223
224
JNIEXPORT jobject JNICALL
225
Java_nsk_share_jpda_NativeMethodsTestThread_ThreadGroupMethod(JNIEnv *env,
226
jobject thisObject, jstring message)
227
{
228
jclass klass;
229
jfieldID valueField;
230
231
logMessage(env, thisObject, message);
232
233
klass = env->GetObjectClass(thisObject);
234
235
valueField = env->GetStaticFieldID(klass, "expectedThreadGroupValue",
236
"Ljava/lang/ThreadGroup;");
237
238
return env->GetStaticObjectField(klass, valueField);
239
}
240
241
JNIEXPORT jobject JNICALL
242
Java_nsk_share_jpda_NativeMethodsTestThread_ClassObjectMethod(JNIEnv *env,
243
jobject thisObject, jstring message)
244
{
245
jclass klass;
246
jfieldID valueField;
247
248
logMessage(env, thisObject, message);
249
250
klass = env->GetObjectClass(thisObject);
251
252
valueField = env->GetStaticFieldID(klass, "expectedClassObjectValue",
253
"Ljava/lang/Class;");
254
255
return env->GetStaticObjectField(klass, valueField);
256
}
257
258
JNIEXPORT jobject JNICALL
259
Java_nsk_share_jpda_NativeMethodsTestThread_ClassLoaderMethod(JNIEnv *env,
260
jobject thisObject, jstring message)
261
{
262
jclass klass;
263
jfieldID valueField;
264
265
logMessage(env, thisObject, message);
266
267
klass = env->GetObjectClass(thisObject);
268
269
valueField = env->GetStaticFieldID(klass, "expectedClassLoaderValue",
270
"Ljava/lang/ClassLoader;");
271
272
return env->GetStaticObjectField(klass, valueField);
273
}
274
275
JNIEXPORT jobject JNICALL
276
Java_nsk_share_jpda_NativeMethodsTestThread_ObjectMethod(JNIEnv *env,
277
jobject thisObject, jstring message)
278
{
279
jclass klass;
280
jfieldID valueField;
281
282
logMessage(env, thisObject, message);
283
284
klass = env->GetObjectClass(thisObject);
285
286
valueField = env->GetStaticFieldID(klass, "expectedObjectValue",
287
"Ljava/lang/Object;");
288
289
return env->GetStaticObjectField(klass, valueField);
290
}
291
292
JNIEXPORT jobject JNICALL
293
Java_nsk_share_jpda_NativeMethodsTestThread_BooleanWrapperMethod(JNIEnv *env,
294
jobject thisObject, jstring message)
295
{
296
jclass klass;
297
jfieldID valueField;
298
299
logMessage(env, thisObject, message);
300
301
klass = env->GetObjectClass(thisObject);
302
303
valueField = env->GetStaticFieldID(klass, "expectedBooleanWrapperValue",
304
"Ljava/lang/Boolean;");
305
306
return env->GetStaticObjectField(klass, valueField);
307
}
308
309
JNIEXPORT jobject JNICALL
310
Java_nsk_share_jpda_NativeMethodsTestThread_ByteWrapperMethod(JNIEnv *env,
311
jobject thisObject, jstring message)
312
{
313
jclass klass;
314
jfieldID valueField;
315
316
logMessage(env, thisObject, message);
317
318
klass = env->GetObjectClass(thisObject);
319
320
valueField = env->GetStaticFieldID(klass, "expectedByteWrapperValue",
321
"Ljava/lang/Byte;");
322
323
return env->GetStaticObjectField(klass, valueField);
324
}
325
326
JNIEXPORT jobject JNICALL
327
Java_nsk_share_jpda_NativeMethodsTestThread_ShortWrapperMethod(JNIEnv *env,
328
jobject thisObject, jstring message)
329
{
330
jclass klass;
331
jfieldID valueField;
332
333
logMessage(env, thisObject, message);
334
335
klass = env->GetObjectClass(thisObject);
336
337
valueField = env->GetStaticFieldID(klass, "expectedShortWrapperValue",
338
"Ljava/lang/Short;");
339
340
return env->GetStaticObjectField(klass, valueField);
341
}
342
343
JNIEXPORT jobject JNICALL
344
Java_nsk_share_jpda_NativeMethodsTestThread_CharWrapperMethod(JNIEnv *env,
345
jobject thisObject, jstring message)
346
{
347
jclass klass;
348
jfieldID valueField;
349
350
logMessage(env, thisObject, message);
351
352
klass = env->GetObjectClass(thisObject);
353
354
valueField = env->GetStaticFieldID(klass, "expectedCharWrapperValue",
355
"Ljava/lang/Character;");
356
357
return env->GetStaticObjectField(klass, valueField);
358
}
359
360
JNIEXPORT jobject JNICALL
361
Java_nsk_share_jpda_NativeMethodsTestThread_IntWrapperMethod(JNIEnv *env,
362
jobject thisObject, jstring message)
363
{
364
jclass klass;
365
jfieldID valueField;
366
367
logMessage(env, thisObject, message);
368
369
klass = env->GetObjectClass(thisObject);
370
371
valueField = env->GetStaticFieldID(klass, "expectedIntWrapperValue",
372
"Ljava/lang/Integer;");
373
374
return env->GetStaticObjectField(klass, valueField);
375
}
376
377
JNIEXPORT jobject JNICALL
378
Java_nsk_share_jpda_NativeMethodsTestThread_LongWrapperMethod(JNIEnv *env,
379
jobject thisObject, jstring message)
380
{
381
jclass klass;
382
jfieldID valueField;
383
384
logMessage(env, thisObject, message);
385
386
klass = env->GetObjectClass(thisObject);
387
388
valueField = env->GetStaticFieldID(klass, "expectedLongWrapperValue",
389
"Ljava/lang/Long;");
390
391
return env->GetStaticObjectField(klass, valueField);
392
}
393
394
JNIEXPORT jobject JNICALL
395
Java_nsk_share_jpda_NativeMethodsTestThread_FloatWrapperMethod(JNIEnv *env,
396
jobject thisObject, jstring message)
397
{
398
jclass klass;
399
jfieldID valueField;
400
401
logMessage(env, thisObject, message);
402
403
klass = env->GetObjectClass(thisObject);
404
405
valueField = env->GetStaticFieldID(klass, "expectedFloatWrapperValue",
406
"Ljava/lang/Float;");
407
408
return env->GetStaticObjectField(klass, valueField);
409
}
410
411
JNIEXPORT jobject JNICALL
412
Java_nsk_share_jpda_NativeMethodsTestThread_DoubleWrapperMethod(JNIEnv *env,
413
jobject thisObject, jstring message)
414
{
415
jclass klass;
416
jfieldID valueField;
417
418
logMessage(env, thisObject, message);
419
420
klass = env->GetObjectClass(thisObject);
421
422
valueField = env->GetStaticFieldID(klass, "expectedDoubleWrapperValue",
423
"Ljava/lang/Double;");
424
425
return env->GetStaticObjectField(klass, valueField);
426
}
427
428
}
429
430