Bug Summary

File:jdk/src/hotspot/share/utilities/globalDefinitions.hpp
Warning:line 851, column 28
Undefined or garbage value returned to caller

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -triple x86_64-pc-linux-gnu -analyze -disable-free -disable-llvm-verifier -discard-value-names -main-file-name jni.cpp -analyzer-store=region -analyzer-opt-analyze-nested-blocks -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=cplusplus -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 2 -mthread-model posix -fno-delete-null-pointer-checks -mframe-pointer=all -relaxed-aliasing -fmath-errno -fno-rounding-math -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -dwarf-column-info -fno-split-dwarf-inlining -debugger-tuning=gdb -resource-dir /usr/lib/llvm-10/lib/clang/10.0.0 -I /home/daniel/Projects/java/jdk/build/linux-x86_64-server-fastdebug/hotspot/variant-server/libjvm/objs/precompiled -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS -D _GNU_SOURCE -D _REENTRANT -D LIBC=gnu -D LINUX -D VM_LITTLE_ENDIAN -D _LP64=1 -D ASSERT -D CHECK_UNHANDLED_OOPS -D TARGET_ARCH_x86 -D INCLUDE_SUFFIX_OS=_linux -D INCLUDE_SUFFIX_CPU=_x86 -D INCLUDE_SUFFIX_COMPILER=_gcc -D TARGET_COMPILER_gcc -D AMD64 -D HOTSPOT_LIB_ARCH="amd64" -D COMPILER1 -D COMPILER2 -I /home/daniel/Projects/java/jdk/build/linux-x86_64-server-fastdebug/hotspot/variant-server/gensrc/adfiles -I /home/daniel/Projects/java/jdk/src/hotspot/share -I /home/daniel/Projects/java/jdk/src/hotspot/os/linux -I /home/daniel/Projects/java/jdk/src/hotspot/os/posix -I /home/daniel/Projects/java/jdk/src/hotspot/cpu/x86 -I /home/daniel/Projects/java/jdk/src/hotspot/os_cpu/linux_x86 -I /home/daniel/Projects/java/jdk/build/linux-x86_64-server-fastdebug/hotspot/variant-server/gensrc -I /home/daniel/Projects/java/jdk/src/hotspot/share/precompiled -I /home/daniel/Projects/java/jdk/src/hotspot/share/include -I /home/daniel/Projects/java/jdk/src/hotspot/os/posix/include -I /home/daniel/Projects/java/jdk/build/linux-x86_64-server-fastdebug/support/modules_include/java.base -I /home/daniel/Projects/java/jdk/build/linux-x86_64-server-fastdebug/support/modules_include/java.base/linux -I /home/daniel/Projects/java/jdk/src/java.base/share/native/libjimage -I /home/daniel/Projects/java/jdk/build/linux-x86_64-server-fastdebug/hotspot/variant-server/gensrc/adfiles -I /home/daniel/Projects/java/jdk/src/hotspot/share -I /home/daniel/Projects/java/jdk/src/hotspot/os/linux -I /home/daniel/Projects/java/jdk/src/hotspot/os/posix -I /home/daniel/Projects/java/jdk/src/hotspot/cpu/x86 -I /home/daniel/Projects/java/jdk/src/hotspot/os_cpu/linux_x86 -I /home/daniel/Projects/java/jdk/build/linux-x86_64-server-fastdebug/hotspot/variant-server/gensrc -D _FORTIFY_SOURCE=2 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/x86_64-linux-gnu/c++/7.5.0 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/x86_64-linux-gnu/c++/7.5.0 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/backward -internal-isystem /usr/local/include -internal-isystem /usr/lib/llvm-10/lib/clang/10.0.0/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O3 -Wno-format-zero-length -Wno-unused-parameter -Wno-unused -Wno-parentheses -Wno-comment -Wno-unknown-pragmas -Wno-address -Wno-delete-non-virtual-dtor -Wno-char-subscripts -Wno-array-bounds -Wno-int-in-bool-context -Wno-ignored-qualifiers -Wno-missing-field-initializers -Wno-implicit-fallthrough -Wno-empty-body -Wno-strict-overflow -Wno-sequence-point -Wno-maybe-uninitialized -Wno-misleading-indentation -Wno-cast-function-type -Wno-shift-negative-value -std=c++14 -fdeprecated-macro -fdebug-compilation-dir /home/daniel/Projects/java/jdk/make/hotspot -ferror-limit 19 -fmessage-length 0 -fvisibility hidden -stack-protector 1 -fno-rtti -fgnuc-version=4.2.1 -fobjc-runtime=gcc -fdiagnostics-show-option -vectorize-loops -vectorize-slp -analyzer-output=html -faddrsig -o /home/daniel/Projects/java/scan/2021-12-21-193737-8510-1 -x c++ /home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp

/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp

1/*
2 * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved.
3 * Copyright (c) 2012 Red Hat, Inc.
4 * Copyright (c) 2021, Azul Systems, Inc. All rights reserved.
5 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6 *
7 * This code is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 only, as
9 * published by the Free Software Foundation.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 *
25 */
26
27#include "precompiled.hpp"
28#include "jni.h"
29#include "jvm.h"
30#include "ci/ciReplay.hpp"
31#include "classfile/altHashing.hpp"
32#include "classfile/classFileStream.hpp"
33#include "classfile/classLoader.hpp"
34#include "classfile/classLoadInfo.hpp"
35#include "classfile/javaClasses.hpp"
36#include "classfile/javaClasses.inline.hpp"
37#include "classfile/javaThreadStatus.hpp"
38#include "classfile/moduleEntry.hpp"
39#include "classfile/modules.hpp"
40#include "classfile/symbolTable.hpp"
41#include "classfile/systemDictionary.hpp"
42#include "classfile/vmClasses.hpp"
43#include "classfile/vmSymbols.hpp"
44#include "compiler/compiler_globals.hpp"
45#include "gc/shared/collectedHeap.hpp"
46#include "gc/shared/gcLocker.inline.hpp"
47#include "gc/shared/stringdedup/stringDedup.hpp"
48#include "interpreter/linkResolver.hpp"
49#include "jfr/jfrEvents.hpp"
50#include "jfr/support/jfrThreadId.hpp"
51#include "logging/log.hpp"
52#include "memory/allocation.hpp"
53#include "memory/allocation.inline.hpp"
54#include "memory/oopFactory.hpp"
55#include "memory/resourceArea.hpp"
56#include "memory/universe.hpp"
57#include "oops/access.inline.hpp"
58#include "oops/arrayOop.hpp"
59#include "oops/instanceKlass.inline.hpp"
60#include "oops/instanceOop.hpp"
61#include "oops/klass.inline.hpp"
62#include "oops/markWord.hpp"
63#include "oops/method.hpp"
64#include "oops/objArrayKlass.hpp"
65#include "oops/objArrayOop.inline.hpp"
66#include "oops/oop.inline.hpp"
67#include "oops/symbol.hpp"
68#include "oops/typeArrayKlass.hpp"
69#include "oops/typeArrayOop.inline.hpp"
70#include "prims/jniCheck.hpp"
71#include "prims/jniExport.hpp"
72#include "prims/jniFastGetField.hpp"
73#include "prims/jvm_misc.hpp"
74#include "prims/jvmtiExport.hpp"
75#include "prims/jvmtiThreadState.hpp"
76#include "runtime/atomic.hpp"
77#include "runtime/fieldDescriptor.inline.hpp"
78#include "runtime/handles.inline.hpp"
79#include "runtime/interfaceSupport.inline.hpp"
80#include "runtime/java.hpp"
81#include "runtime/javaCalls.hpp"
82#include "runtime/jfieldIDWorkaround.hpp"
83#include "runtime/jniHandles.inline.hpp"
84#include "runtime/reflection.hpp"
85#include "runtime/safepointVerifiers.hpp"
86#include "runtime/sharedRuntime.hpp"
87#include "runtime/signature.hpp"
88#include "runtime/thread.inline.hpp"
89#include "runtime/vmOperations.hpp"
90#include "services/memTracker.hpp"
91#include "services/runtimeService.hpp"
92#include "utilities/defaultStream.hpp"
93#include "utilities/dtrace.hpp"
94#include "utilities/events.hpp"
95#include "utilities/macros.hpp"
96#include "utilities/vmError.hpp"
97#if INCLUDE_JVMCI1
98#include "jvmci/jvmciCompiler.hpp"
99#endif
100
101static jint CurrentVersion = JNI_VERSION_100x000a0000;
102
103#if defined(_WIN32) && !defined(USE_VECTORED_EXCEPTION_HANDLING)
104extern LONG WINAPI topLevelExceptionFilter(_EXCEPTION_POINTERS* );
105#endif
106
107// The DT_RETURN_MARK macros create a scoped object to fire the dtrace
108// '-return' probe regardless of the return path is taken out of the function.
109// Methods that have multiple return paths use this to avoid having to
110// instrument each return path. Methods that use CHECK or THROW must use this
111// since those macros can cause an immedate uninstrumented return.
112//
113// In order to get the return value, a reference to the variable containing
114// the return value must be passed to the contructor of the object, and
115// the return value must be set before return (since the mark object has
116// a reference to it).
117//
118// Example:
119// DT_RETURN_MARK_DECL(SomeFunc, int);
120// JNI_ENTRY(int, SomeFunc, ...)
121// int return_value = 0;
122// DT_RETURN_MARK(SomeFunc, int, (const int&)return_value);
123// foo(CHECK_0)
124// return_value = 5;
125// return return_value;
126// JNI_END
127#define DT_RETURN_MARK_DECL(name, type, probe) \
128 DTRACE_ONLY( \
129 class DTraceReturnProbeMark_##name { \
130 public: \
131 const type& _ret_ref; \
132 DTraceReturnProbeMark_##name(const type& v) : _ret_ref(v) {} \
133 ~DTraceReturnProbeMark_##name() { \
134 probe; \
135 } \
136 } \
137 )
138// Void functions are simpler since there's no return value
139#define DT_VOID_RETURN_MARK_DECL(name, probe) \
140 DTRACE_ONLY( \
141 class DTraceReturnProbeMark_##name { \
142 public: \
143 ~DTraceReturnProbeMark_##name() { \
144 probe; \
145 } \
146 } \
147 )
148
149// Place these macros in the function to mark the return. Non-void
150// functions need the type and address of the return value.
151#define DT_RETURN_MARK(name, type, ref) \
152 DTRACE_ONLY( DTraceReturnProbeMark_##name dtrace_return_mark(ref) )
153#define DT_VOID_RETURN_MARK(name) \
154 DTRACE_ONLY( DTraceReturnProbeMark_##name dtrace_return_mark )
155
156
157// Use these to select distinct code for floating-point vs. non-floating point
158// situations. Used from within common macros where we need slightly
159// different behavior for Float/Double
160#define FP_SELECT_Boolean(intcode, fpcode)intcode intcode
161#define FP_SELECT_Byte(intcode, fpcode)intcode intcode
162#define FP_SELECT_Char(intcode, fpcode)intcode intcode
163#define FP_SELECT_Short(intcode, fpcode)intcode intcode
164#define FP_SELECT_Object(intcode, fpcode)intcode intcode
165#define FP_SELECT_Int(intcode, fpcode)intcode intcode
166#define FP_SELECT_Long(intcode, fpcode)intcode intcode
167#define FP_SELECT_Float(intcode, fpcode)fpcode fpcode
168#define FP_SELECT_Double(intcode, fpcode)fpcode fpcode
169#define FP_SELECT(TypeName, intcode, fpcode)FP_SELECT_TypeName(intcode, fpcode) \
170 FP_SELECT_##TypeName(intcode, fpcode)
171
172// Choose DT_RETURN_MARK macros based on the type: float/double -> void
173// (dtrace doesn't do FP yet)
174#define DT_RETURN_MARK_DECL_FOR(TypeName, name, type, probe)FP_SELECT_TypeName(, ) \
175 FP_SELECT(TypeName, \FP_SELECT_TypeName(, )
176 DT_RETURN_MARK_DECL(name, type, probe), DT_VOID_RETURN_MARK_DECL(name, probe) )FP_SELECT_TypeName(, )
177#define DT_RETURN_MARK_FOR(TypeName, name, type, ref)FP_SELECT_TypeName(, ) \
178 FP_SELECT(TypeName, \FP_SELECT_TypeName(, )
179 DT_RETURN_MARK(name, type, ref), DT_VOID_RETURN_MARK(name) )FP_SELECT_TypeName(, )
180
181
182// out-of-line helpers for class jfieldIDWorkaround:
183
184bool jfieldIDWorkaround::is_valid_jfieldID(Klass* k, jfieldID id) {
185 if (jfieldIDWorkaround::is_instance_jfieldID(k, id)) {
186 uintptr_t as_uint = (uintptr_t) id;
187 intptr_t offset = raw_instance_offset(id);
188 if (is_checked_jfieldID(id)) {
189 if (!klass_hash_ok(k, id)) {
190 return false;
191 }
192 }
193 return InstanceKlass::cast(k)->contains_field_offset(offset);
194 } else {
195 JNIid* result = (JNIid*) id;
196#ifdef ASSERT1
197 return result != NULL__null && result->is_static_field_id();
198#else
199 return result != NULL__null;
200#endif
201 }
202}
203
204
205intptr_t jfieldIDWorkaround::encode_klass_hash(Klass* k, intptr_t offset) {
206 if (offset <= small_offset_mask) {
207 Klass* field_klass = k;
208 Klass* super_klass = field_klass->super();
209 // With compressed oops the most super class with nonstatic fields would
210 // be the owner of fields embedded in the header.
211 while (InstanceKlass::cast(super_klass)->has_nonstatic_fields() &&
212 InstanceKlass::cast(super_klass)->contains_field_offset(offset)) {
213 field_klass = super_klass; // super contains the field also
214 super_klass = field_klass->super();
215 }
216 debug_only(NoSafepointVerifier nosafepoint;)NoSafepointVerifier nosafepoint;
217 uintptr_t klass_hash = field_klass->identity_hash();
218 return ((klass_hash & klass_mask) << klass_shift) | checked_mask_in_place;
219 } else {
220#if 0
221 #ifndef PRODUCT
222 {
223 ResourceMark rm;
224 warning("VerifyJNIFields: long offset %d in %s", offset, k->external_name());
225 }
226 #endif
227#endif
228 return 0;
229 }
230}
231
232bool jfieldIDWorkaround::klass_hash_ok(Klass* k, jfieldID id) {
233 uintptr_t as_uint = (uintptr_t) id;
234 intptr_t klass_hash = (as_uint >> klass_shift) & klass_mask;
235 do {
236 debug_only(NoSafepointVerifier nosafepoint;)NoSafepointVerifier nosafepoint;
237 // Could use a non-blocking query for identity_hash here...
238 if ((k->identity_hash() & klass_mask) == klass_hash)
239 return true;
240 k = k->super();
241 } while (k != NULL__null);
242 return false;
243}
244
245void jfieldIDWorkaround::verify_instance_jfieldID(Klass* k, jfieldID id) {
246 guarantee(jfieldIDWorkaround::is_instance_jfieldID(k, id), "must be an instance field" )do { if (!(jfieldIDWorkaround::is_instance_jfieldID(k, id))) {
(*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 246, "guarantee(" "jfieldIDWorkaround::is_instance_jfieldID(k, id)"
") failed", "must be an instance field"); ::breakpoint(); } }
while (0)
;
247 uintptr_t as_uint = (uintptr_t) id;
248 intptr_t offset = raw_instance_offset(id);
249 if (VerifyJNIFields) {
250 if (is_checked_jfieldID(id)) {
251 guarantee(klass_hash_ok(k, id),do { if (!(klass_hash_ok(k, id))) { (*g_assert_poison) = 'X';
; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 252, "guarantee(" "klass_hash_ok(k, id)" ") failed", "Bug in native code: jfieldID class must match object"
); ::breakpoint(); } } while (0)
252 "Bug in native code: jfieldID class must match object")do { if (!(klass_hash_ok(k, id))) { (*g_assert_poison) = 'X';
; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 252, "guarantee(" "klass_hash_ok(k, id)" ") failed", "Bug in native code: jfieldID class must match object"
); ::breakpoint(); } } while (0)
;
253 } else {
254#if 0
255 #ifndef PRODUCT
256 if (Verbose) {
257 ResourceMark rm;
258 warning("VerifyJNIFields: unverified offset %d for %s", offset, k->external_name());
259 }
260 #endif
261#endif
262 }
263 }
264 guarantee(InstanceKlass::cast(k)->contains_field_offset(offset),do { if (!(InstanceKlass::cast(k)->contains_field_offset(offset
))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 265, "guarantee(" "InstanceKlass::cast(k)->contains_field_offset(offset)"
") failed", "Bug in native code: jfieldID offset must address interior of object"
); ::breakpoint(); } } while (0)
265 "Bug in native code: jfieldID offset must address interior of object")do { if (!(InstanceKlass::cast(k)->contains_field_offset(offset
))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 265, "guarantee(" "InstanceKlass::cast(k)->contains_field_offset(offset)"
") failed", "Bug in native code: jfieldID offset must address interior of object"
); ::breakpoint(); } } while (0)
;
266}
267
268// Implementation of JNI entries
269
270DT_RETURN_MARK_DECL(DefineClass, jclass
271 , HOTSPOT_JNI_DEFINECLASS_RETURN(_ret_ref));
272
273JNI_ENTRY(jclass, jni_DefineClass(JNIEnv *env, const char *name, jobject loaderRef,extern "C" { jclass jni_DefineClass(JNIEnv *env, const char *
name, jobject loaderRef, const jbyte *buf, jsize bufLen) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 274, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
274 const jbyte *buf, jsize bufLen))extern "C" { jclass jni_DefineClass(JNIEnv *env, const char *
name, jobject loaderRef, const jbyte *buf, jsize bufLen) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 274, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
275 HOTSPOT_JNI_DEFINECLASS_ENTRY(
276 env, (char*) name, loaderRef, (char*) buf, bufLen);
277
278 jclass cls = NULL__null;
279 DT_RETURN_MARK(DefineClass, jclass, (const jclass&)cls);
280
281 // Class resolution will get the class name from the .class stream if the name is null.
282 TempNewSymbol class_name = name == NULL__null ? NULL__null :
283 SystemDictionary::class_name_symbol(name, vmSymbols::java_lang_NoClassDefFoundError(),
284 CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
285
286 ResourceMark rm(THREAD__the_thread__);
287 ClassFileStream st((u1*)buf, bufLen, NULL__null, ClassFileStream::verify);
288 Handle class_loader (THREAD__the_thread__, JNIHandles::resolve(loaderRef));
289 Handle protection_domain;
290 ClassLoadInfo cl_info(protection_domain);
291 Klass* k = SystemDictionary::resolve_from_stream(&st, class_name,
292 class_loader,
293 cl_info,
294 CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
295
296 if (log_is_enabled(Debug, class, resolve)(LogImpl<(LogTag::_class), (LogTag::_resolve), (LogTag::__NO_TAG
), (LogTag::__NO_TAG), (LogTag::__NO_TAG), (LogTag::__NO_TAG)
>::is_level(LogLevel::Debug))
) {
297 trace_class_resolution(k);
298 }
299
300 cls = (jclass)JNIHandles::make_local(THREAD__the_thread__, k->java_mirror());
301 return cls;
302JNI_END} }
303
304
305
306DT_RETURN_MARK_DECL(FindClass, jclass
307 , HOTSPOT_JNI_FINDCLASS_RETURN(_ret_ref));
308
309JNI_ENTRY(jclass, jni_FindClass(JNIEnv *env, const char *name))extern "C" { jclass jni_FindClass(JNIEnv *env, const char *name
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 309, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
310 HOTSPOT_JNI_FINDCLASS_ENTRY(env, (char *)name);
311
312 jclass result = NULL__null;
313 DT_RETURN_MARK(FindClass, jclass, (const jclass&)result);
314
315 // This should be ClassNotFoundException imo.
316 TempNewSymbol class_name =
317 SystemDictionary::class_name_symbol(name, vmSymbols::java_lang_NoClassDefFoundError(),
318 CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
319
320 //%note jni_3
321 Handle protection_domain;
322 // Find calling class
323 Klass* k = thread->security_get_caller_class(0);
324 // default to the system loader when no context
325 Handle loader(THREAD__the_thread__, SystemDictionary::java_system_loader());
326 if (k != NULL__null) {
327 // Special handling to make sure JNI_OnLoad and JNI_OnUnload are executed
328 // in the correct class context.
329 if (k->class_loader() == NULL__null &&
330 k->name() == vmSymbols::jdk_internal_loader_NativeLibraries()) {
331 JavaValue result(T_OBJECT);
332 JavaCalls::call_static(&result, k,
333 vmSymbols::getFromClass_name(),
334 vmSymbols::void_class_signature(),
335 CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
336 // When invoked from JNI_OnLoad, NativeLibraries::getFromClass returns
337 // a non-NULL Class object. When invoked from JNI_OnUnload,
338 // it will return NULL to indicate no context.
339 oop mirror = result.get_oop();
340 if (mirror != NULL__null) {
341 Klass* fromClass = java_lang_Class::as_Klass(mirror);
342 loader = Handle(THREAD__the_thread__, fromClass->class_loader());
343 protection_domain = Handle(THREAD__the_thread__, fromClass->protection_domain());
344 }
345 } else {
346 loader = Handle(THREAD__the_thread__, k->class_loader());
347 }
348 }
349
350 result = find_class_from_class_loader(env, class_name, true, loader,
351 protection_domain, true, thread);
352
353 if (log_is_enabled(Debug, class, resolve)(LogImpl<(LogTag::_class), (LogTag::_resolve), (LogTag::__NO_TAG
), (LogTag::__NO_TAG), (LogTag::__NO_TAG), (LogTag::__NO_TAG)
>::is_level(LogLevel::Debug))
&& result != NULL__null) {
354 trace_class_resolution(java_lang_Class::as_Klass(JNIHandles::resolve_non_null(result)));
355 }
356
357 return result;
358JNI_END} }
359
360DT_RETURN_MARK_DECL(FromReflectedMethod, jmethodID
361 , HOTSPOT_JNI_FROMREFLECTEDMETHOD_RETURN((uintptr_t)_ret_ref));
362
363JNI_ENTRY(jmethodID, jni_FromReflectedMethod(JNIEnv *env, jobject method))extern "C" { jmethodID jni_FromReflectedMethod(JNIEnv *env, jobject
method) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 363, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
364 HOTSPOT_JNI_FROMREFLECTEDMETHOD_ENTRY(env, method);
365
366 jmethodID ret = NULL__null;
367 DT_RETURN_MARK(FromReflectedMethod, jmethodID, (const jmethodID&)ret);
368
369 // method is a handle to a java.lang.reflect.Method object
370 oop reflected = JNIHandles::resolve_non_null(method);
371 oop mirror = NULL__null;
372 int slot = 0;
373
374 if (reflected->klass() == vmClasses::reflect_Constructor_klass()) {
375 mirror = java_lang_reflect_Constructor::clazz(reflected);
376 slot = java_lang_reflect_Constructor::slot(reflected);
377 } else {
378 assert(reflected->klass() == vmClasses::reflect_Method_klass(), "wrong type")do { if (!(reflected->klass() == vmClasses::reflect_Method_klass
())) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 378, "assert(" "reflected->klass() == vmClasses::reflect_Method_klass()"
") failed", "wrong type"); ::breakpoint(); } } while (0)
;
379 mirror = java_lang_reflect_Method::clazz(reflected);
380 slot = java_lang_reflect_Method::slot(reflected);
381 }
382 Klass* k1 = java_lang_Class::as_Klass(mirror);
383
384 // Make sure class is initialized before handing id's out to methods
385 k1->initialize(CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
386 Method* m = InstanceKlass::cast(k1)->method_with_idnum(slot);
387 ret = m==NULL__null? NULL__null : m->jmethod_id(); // return NULL if reflected method deleted
388 return ret;
389JNI_END} }
390
391DT_RETURN_MARK_DECL(FromReflectedField, jfieldID
392 , HOTSPOT_JNI_FROMREFLECTEDFIELD_RETURN((uintptr_t)_ret_ref));
393
394JNI_ENTRY(jfieldID, jni_FromReflectedField(JNIEnv *env, jobject field))extern "C" { jfieldID jni_FromReflectedField(JNIEnv *env, jobject
field) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 394, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
395 HOTSPOT_JNI_FROMREFLECTEDFIELD_ENTRY(env, field);
396
397 jfieldID ret = NULL__null;
398 DT_RETURN_MARK(FromReflectedField, jfieldID, (const jfieldID&)ret);
399
400 // field is a handle to a java.lang.reflect.Field object
401 oop reflected = JNIHandles::resolve_non_null(field);
402 oop mirror = java_lang_reflect_Field::clazz(reflected);
403 Klass* k1 = java_lang_Class::as_Klass(mirror);
404 int slot = java_lang_reflect_Field::slot(reflected);
405 int modifiers = java_lang_reflect_Field::modifiers(reflected);
406
407 // Make sure class is initialized before handing id's out to fields
408 k1->initialize(CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
409
410 // First check if this is a static field
411 if (modifiers & JVM_ACC_STATIC) {
412 intptr_t offset = InstanceKlass::cast(k1)->field_offset( slot );
413 JNIid* id = InstanceKlass::cast(k1)->jni_id_for(offset);
414 assert(id != NULL, "corrupt Field object")do { if (!(id != __null)) { (*g_assert_poison) = 'X';; report_vm_error
("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 414, "assert(" "id != __null" ") failed", "corrupt Field object"
); ::breakpoint(); } } while (0)
;
415 debug_only(id->set_is_static_field_id();)id->set_is_static_field_id();
416 // A jfieldID for a static field is a JNIid specifying the field holder and the offset within the Klass*
417 ret = jfieldIDWorkaround::to_static_jfieldID(id);
418 return ret;
419 }
420
421 // The slot is the index of the field description in the field-array
422 // The jfieldID is the offset of the field within the object
423 // It may also have hash bits for k, if VerifyJNIFields is turned on.
424 intptr_t offset = InstanceKlass::cast(k1)->field_offset( slot );
425 assert(InstanceKlass::cast(k1)->contains_field_offset(offset), "stay within object")do { if (!(InstanceKlass::cast(k1)->contains_field_offset(
offset))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 425, "assert(" "InstanceKlass::cast(k1)->contains_field_offset(offset)"
") failed", "stay within object"); ::breakpoint(); } } while
(0)
;
426 ret = jfieldIDWorkaround::to_instance_jfieldID(k1, offset);
427 return ret;
428JNI_END} }
429
430
431DT_RETURN_MARK_DECL(ToReflectedMethod, jobject
432 , HOTSPOT_JNI_TOREFLECTEDMETHOD_RETURN(_ret_ref));
433
434JNI_ENTRY(jobject, jni_ToReflectedMethod(JNIEnv *env, jclass cls, jmethodID method_id, jboolean isStatic))extern "C" { jobject jni_ToReflectedMethod(JNIEnv *env, jclass
cls, jmethodID method_id, jboolean isStatic) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 434, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
435 HOTSPOT_JNI_TOREFLECTEDMETHOD_ENTRY(env, cls, (uintptr_t) method_id, isStatic);
436
437 jobject ret = NULL__null;
438 DT_RETURN_MARK(ToReflectedMethod, jobject, (const jobject&)ret);
439
440 methodHandle m (THREAD__the_thread__, Method::resolve_jmethod_id(method_id));
441 assert(m->is_static() == (isStatic != 0), "jni_ToReflectedMethod access flags doesn't match")do { if (!(m->is_static() == (isStatic != 0))) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 441, "assert(" "m->is_static() == (isStatic != 0)" ") failed"
, "jni_ToReflectedMethod access flags doesn't match"); ::breakpoint
(); } } while (0)
;
442 oop reflection_method;
443 if (m->is_initializer()) {
444 reflection_method = Reflection::new_constructor(m, CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
445 } else {
446 reflection_method = Reflection::new_method(m, false, CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
447 }
448 ret = JNIHandles::make_local(THREAD__the_thread__, reflection_method);
449 return ret;
450JNI_END} }
451
452DT_RETURN_MARK_DECL(GetSuperclass, jclass
453 , HOTSPOT_JNI_GETSUPERCLASS_RETURN(_ret_ref));
454
455JNI_ENTRY(jclass, jni_GetSuperclass(JNIEnv *env, jclass sub))extern "C" { jclass jni_GetSuperclass(JNIEnv *env, jclass sub
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 455, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
456 HOTSPOT_JNI_GETSUPERCLASS_ENTRY(env, sub);
457
458 jclass obj = NULL__null;
459 DT_RETURN_MARK(GetSuperclass, jclass, (const jclass&)obj);
460
461 oop mirror = JNIHandles::resolve_non_null(sub);
462 // primitive classes return NULL
463 if (java_lang_Class::is_primitive(mirror)) return NULL__null;
464
465 // Rules of Class.getSuperClass as implemented by KLass::java_super:
466 // arrays return Object
467 // interfaces return NULL
468 // proper classes return Klass::super()
469 Klass* k = java_lang_Class::as_Klass(mirror);
470 if (k->is_interface()) return NULL__null;
471
472 // return mirror for superclass
473 Klass* super = k->java_super();
474 // super2 is the value computed by the compiler's getSuperClass intrinsic:
475 debug_only(Klass* super2 = ( k->is_array_klass()Klass* super2 = ( k->is_array_klass() ? vmClasses::Object_klass
() : k->super() )
476 ? vmClasses::Object_klass()Klass* super2 = ( k->is_array_klass() ? vmClasses::Object_klass
() : k->super() )
477 : k->super() ) )Klass* super2 = ( k->is_array_klass() ? vmClasses::Object_klass
() : k->super() )
;
478 assert(super == super2,do { if (!(super == super2)) { (*g_assert_poison) = 'X';; report_vm_error
("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 479, "assert(" "super == super2" ") failed", "java_super computation depends on interface, array, other super"
); ::breakpoint(); } } while (0)
479 "java_super computation depends on interface, array, other super")do { if (!(super == super2)) { (*g_assert_poison) = 'X';; report_vm_error
("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 479, "assert(" "super == super2" ") failed", "java_super computation depends on interface, array, other super"
); ::breakpoint(); } } while (0)
;
480 obj = (super == NULL__null) ? NULL__null : (jclass) JNIHandles::make_local(THREAD__the_thread__, super->java_mirror());
481 return obj;
482JNI_END} }
483
484JNI_ENTRY_NO_PRESERVE(jboolean, jni_IsAssignableFrom(JNIEnv *env, jclass sub, jclass super))extern "C" { jboolean jni_IsAssignableFrom(JNIEnv *env, jclass
sub, jclass super) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 484, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
485 HOTSPOT_JNI_ISASSIGNABLEFROM_ENTRY(env, sub, super);
486
487 oop sub_mirror = JNIHandles::resolve_non_null(sub);
488 oop super_mirror = JNIHandles::resolve_non_null(super);
489 if (java_lang_Class::is_primitive(sub_mirror) ||
490 java_lang_Class::is_primitive(super_mirror)) {
491 jboolean ret = (sub_mirror == super_mirror);
492
493 HOTSPOT_JNI_ISASSIGNABLEFROM_RETURN(ret);
494 return ret;
495 }
496 Klass* sub_klass = java_lang_Class::as_Klass(sub_mirror);
497 Klass* super_klass = java_lang_Class::as_Klass(super_mirror);
498 assert(sub_klass != NULL && super_klass != NULL, "invalid arguments to jni_IsAssignableFrom")do { if (!(sub_klass != __null && super_klass != __null
)) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 498, "assert(" "sub_klass != __null && super_klass != __null"
") failed", "invalid arguments to jni_IsAssignableFrom"); ::
breakpoint(); } } while (0)
;
499 jboolean ret = sub_klass->is_subtype_of(super_klass) ?
500 JNI_TRUE1 : JNI_FALSE0;
501
502 HOTSPOT_JNI_ISASSIGNABLEFROM_RETURN(ret);
503 return ret;
504JNI_END} }
505
506
507DT_RETURN_MARK_DECL(Throw, jint
508 , HOTSPOT_JNI_THROW_RETURN(_ret_ref));
509
510JNI_ENTRY(jint, jni_Throw(JNIEnv *env, jthrowable obj))extern "C" { jint jni_Throw(JNIEnv *env, jthrowable obj) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 510, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
511 HOTSPOT_JNI_THROW_ENTRY(env, obj);
512
513 jint ret = JNI_OK0;
514 DT_RETURN_MARK(Throw, jint, (const jint&)ret);
515
516 THROW_OOP_(JNIHandles::resolve(obj), JNI_OK){ Exceptions::_throw_oop(__the_thread__, "/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 516, JNIHandles::resolve(obj)); return 0; }
;
517 ShouldNotReachHere()do { (*g_assert_poison) = 'X';; report_should_not_reach_here(
"/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 517); ::breakpoint(); } while (0)
;
518 return 0; // Mute compiler.
519JNI_END} }
520
521
522DT_RETURN_MARK_DECL(ThrowNew, jint
523 , HOTSPOT_JNI_THROWNEW_RETURN(_ret_ref));
524
525JNI_ENTRY(jint, jni_ThrowNew(JNIEnv *env, jclass clazz, const char *message))extern "C" { jint jni_ThrowNew(JNIEnv *env, jclass clazz, const
char *message) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 525, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
526 HOTSPOT_JNI_THROWNEW_ENTRY(env, clazz, (char *) message);
527
528 jint ret = JNI_OK0;
529 DT_RETURN_MARK(ThrowNew, jint, (const jint&)ret);
530
531 InstanceKlass* k = InstanceKlass::cast(java_lang_Class::as_Klass(JNIHandles::resolve_non_null(clazz)));
532 Symbol* name = k->name();
533 Handle class_loader (THREAD__the_thread__, k->class_loader());
534 Handle protection_domain (THREAD__the_thread__, k->protection_domain());
535 THROW_MSG_LOADER_(name, (char *)message, class_loader, protection_domain, JNI_OK){ Exceptions::_throw_msg(__the_thread__, "/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 535, name, (char *)message, class_loader, protection_domain
); return 0; }
;
536 ShouldNotReachHere()do { (*g_assert_poison) = 'X';; report_should_not_reach_here(
"/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 536); ::breakpoint(); } while (0)
;
537 return 0; // Mute compiler.
538JNI_END} }
539
540
541// JNI functions only transform a pending async exception to a synchronous
542// exception in ExceptionOccurred and ExceptionCheck calls, since
543// delivering an async exception in other places won't change the native
544// code's control flow and would be harmful when native code further calls
545// JNI functions with a pending exception. Async exception is also checked
546// during the call, so ExceptionOccurred/ExceptionCheck won't return
547// false but deliver the async exception at the very end during
548// state transition.
549
550static void jni_check_async_exceptions(JavaThread *thread) {
551 assert(thread == Thread::current(), "must be itself")do { if (!(thread == Thread::current())) { (*g_assert_poison)
= 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 551, "assert(" "thread == Thread::current()" ") failed", "must be itself"
); ::breakpoint(); } } while (0)
;
552 thread->check_and_handle_async_exceptions();
553}
554
555JNI_ENTRY_NO_PRESERVE(jthrowable, jni_ExceptionOccurred(JNIEnv *env))extern "C" { jthrowable jni_ExceptionOccurred(JNIEnv *env) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 555, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
556 HOTSPOT_JNI_EXCEPTIONOCCURRED_ENTRY(env);
557
558 jni_check_async_exceptions(thread);
559 oop exception = thread->pending_exception();
560 jthrowable ret = (jthrowable) JNIHandles::make_local(THREAD__the_thread__, exception);
561
562 HOTSPOT_JNI_EXCEPTIONOCCURRED_RETURN(ret);
563 return ret;
564JNI_END} }
565
566
567JNI_ENTRY_NO_PRESERVE(void, jni_ExceptionDescribe(JNIEnv *env))extern "C" { void jni_ExceptionDescribe(JNIEnv *env) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 567, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
568 HOTSPOT_JNI_EXCEPTIONDESCRIBE_ENTRY(env);
569
570 if (thread->has_pending_exception()) {
571 Handle ex(thread, thread->pending_exception());
572 thread->clear_pending_exception();
573 if (ex->is_a(vmClasses::ThreadDeath_klass())) {
574 // Don't print anything if we are being killed.
575 } else {
576 jio_fprintf(defaultStream::error_stream(), "Exception ");
577 if (thread != NULL__null && thread->threadObj() != NULL__null) {
578 ResourceMark rm(THREAD__the_thread__);
579 jio_fprintf(defaultStream::error_stream(),
580 "in thread \"%s\" ", thread->name());
581 }
582 if (ex->is_a(vmClasses::Throwable_klass())) {
583 JavaValue result(T_VOID);
584 JavaCalls::call_virtual(&result,
585 ex,
586 vmClasses::Throwable_klass(),
587 vmSymbols::printStackTrace_name(),
588 vmSymbols::void_method_signature(),
589 THREAD__the_thread__);
590 // If an exception is thrown in the call it gets thrown away. Not much
591 // we can do with it. The native code that calls this, does not check
592 // for the exception - hence, it might still be in the thread when DestroyVM gets
593 // called, potentially causing a few asserts to trigger - since no pending exception
594 // is expected.
595 CLEAR_PENDING_EXCEPTION(((ThreadShadow*)__the_thread__)->clear_pending_exception(
))
;
596 } else {
597 ResourceMark rm(THREAD__the_thread__);
598 jio_fprintf(defaultStream::error_stream(),
599 ". Uncaught exception of type %s.",
600 ex->klass()->external_name());
601 }
602 }
603 }
604
605 HOTSPOT_JNI_EXCEPTIONDESCRIBE_RETURN();
606JNI_END} }
607
608
609JNI_ENTRY_NO_PRESERVE(void, jni_ExceptionClear(JNIEnv *env))extern "C" { void jni_ExceptionClear(JNIEnv *env) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 609, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
610 HOTSPOT_JNI_EXCEPTIONCLEAR_ENTRY(env);
611
612 // The jni code might be using this API to clear java thrown exception.
613 // So just mark jvmti thread exception state as exception caught.
614 JvmtiThreadState *state = JavaThread::current()->jvmti_thread_state();
615 if (state != NULL__null && state->is_exception_detected()) {
616 state->set_exception_caught();
617 }
618 thread->clear_pending_exception();
619
620 HOTSPOT_JNI_EXCEPTIONCLEAR_RETURN();
621JNI_END} }
622
623
624JNI_ENTRY(void, jni_FatalError(JNIEnv *env, const char *msg))extern "C" { void jni_FatalError(JNIEnv *env, const char *msg
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 624, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
625 HOTSPOT_JNI_FATALERROR_ENTRY(env, (char *) msg);
626
627 tty->print_cr("FATAL ERROR in native method: %s", msg);
628 thread->print_stack();
629 os::abort(); // Dump core and abort
630JNI_END} }
631
632
633JNI_ENTRY(jint, jni_PushLocalFrame(JNIEnv *env, jint capacity))extern "C" { jint jni_PushLocalFrame(JNIEnv *env, jint capacity
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 633, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
634 HOTSPOT_JNI_PUSHLOCALFRAME_ENTRY(env, capacity);
635
636 //%note jni_11
637 if (capacity < 0 ||
638 ((MaxJNILocalCapacity > 0) && (capacity > MaxJNILocalCapacity))) {
639 HOTSPOT_JNI_PUSHLOCALFRAME_RETURN((uint32_t)JNI_ERR);
640 return JNI_ERR(-1);
641 }
642
643 thread->push_jni_handle_block();
644 jint ret = JNI_OK0;
645 HOTSPOT_JNI_PUSHLOCALFRAME_RETURN(ret);
646 return ret;
647JNI_END} }
648
649
650JNI_ENTRY(jobject, jni_PopLocalFrame(JNIEnv *env, jobject result))extern "C" { jobject jni_PopLocalFrame(JNIEnv *env, jobject result
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 650, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
651 HOTSPOT_JNI_POPLOCALFRAME_ENTRY(env, result);
652
653 //%note jni_11
654 Handle result_handle(thread, JNIHandles::resolve(result));
655 JNIHandleBlock* old_handles = thread->active_handles();
656 JNIHandleBlock* new_handles = old_handles->pop_frame_link();
657 if (new_handles != NULL__null) {
658 // As a sanity check we only release the handle blocks if the pop_frame_link is not NULL.
659 // This way code will still work if PopLocalFrame is called without a corresponding
660 // PushLocalFrame call. Note that we set the pop_frame_link to NULL explicitly, otherwise
661 // the release_block call will release the blocks.
662 thread->set_active_handles(new_handles);
663 old_handles->set_pop_frame_link(NULL__null); // clear link we won't release new_handles below
664 JNIHandleBlock::release_block(old_handles, thread); // may block
665 result = JNIHandles::make_local(thread, result_handle());
666 }
667 HOTSPOT_JNI_POPLOCALFRAME_RETURN(result);
668 return result;
669JNI_END} }
670
671
672JNI_ENTRY(jobject, jni_NewGlobalRef(JNIEnv *env, jobject ref))extern "C" { jobject jni_NewGlobalRef(JNIEnv *env, jobject ref
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 672, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
673 HOTSPOT_JNI_NEWGLOBALREF_ENTRY(env, ref);
674
675 Handle ref_handle(thread, JNIHandles::resolve(ref));
676 jobject ret = JNIHandles::make_global(ref_handle, AllocFailStrategy::RETURN_NULL);
677
678 HOTSPOT_JNI_NEWGLOBALREF_RETURN(ret);
679 return ret;
680JNI_END} }
681
682// Must be JNI_ENTRY (with HandleMark)
683JNI_ENTRY_NO_PRESERVE(void, jni_DeleteGlobalRef(JNIEnv *env, jobject ref))extern "C" { void jni_DeleteGlobalRef(JNIEnv *env, jobject ref
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 683, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
684 HOTSPOT_JNI_DELETEGLOBALREF_ENTRY(env, ref);
685
686 JNIHandles::destroy_global(ref);
687
688 HOTSPOT_JNI_DELETEGLOBALREF_RETURN();
689JNI_END} }
690
691JNI_ENTRY_NO_PRESERVE(void, jni_DeleteLocalRef(JNIEnv *env, jobject obj))extern "C" { void jni_DeleteLocalRef(JNIEnv *env, jobject obj
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 691, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
692 HOTSPOT_JNI_DELETELOCALREF_ENTRY(env, obj);
693
694 JNIHandles::destroy_local(obj);
695
696 HOTSPOT_JNI_DELETELOCALREF_RETURN();
697JNI_END} }
698
699JNI_ENTRY_NO_PRESERVE(jboolean, jni_IsSameObject(JNIEnv *env, jobject r1, jobject r2))extern "C" { jboolean jni_IsSameObject(JNIEnv *env, jobject r1
, jobject r2) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 699, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
700 HOTSPOT_JNI_ISSAMEOBJECT_ENTRY(env, r1, r2);
701
702 jboolean ret = JNIHandles::is_same_object(r1, r2) ? JNI_TRUE1 : JNI_FALSE0;
703
704 HOTSPOT_JNI_ISSAMEOBJECT_RETURN(ret);
705 return ret;
706JNI_END} }
707
708
709JNI_ENTRY(jobject, jni_NewLocalRef(JNIEnv *env, jobject ref))extern "C" { jobject jni_NewLocalRef(JNIEnv *env, jobject ref
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 709, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
710 HOTSPOT_JNI_NEWLOCALREF_ENTRY(env, ref);
711
712 jobject ret = JNIHandles::make_local(THREAD__the_thread__, JNIHandles::resolve(ref),
713 AllocFailStrategy::RETURN_NULL);
714
715 HOTSPOT_JNI_NEWLOCALREF_RETURN(ret);
716 return ret;
717JNI_END} }
718
719JNI_LEAF(jint, jni_EnsureLocalCapacity(JNIEnv *env, jint capacity))extern "C" { jint jni_EnsureLocalCapacity(JNIEnv *env, jint capacity
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 719, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); NoHandleMark __hm; ; os::verify_stack_alignment
();
720 HOTSPOT_JNI_ENSURELOCALCAPACITY_ENTRY(env, capacity);
721
722 jint ret;
723 if (capacity >= 0 &&
724 ((MaxJNILocalCapacity <= 0) || (capacity <= MaxJNILocalCapacity))) {
725 ret = JNI_OK0;
726 } else {
727 ret = JNI_ERR(-1);
728 }
729
730 HOTSPOT_JNI_ENSURELOCALCAPACITY_RETURN(ret);
731 return ret;
732JNI_END} }
733
734// Return the Handle Type
735JNI_LEAF(jobjectRefType, jni_GetObjectRefType(JNIEnv *env, jobject obj))extern "C" { jobjectRefType jni_GetObjectRefType(JNIEnv *env,
jobject obj) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 735, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); NoHandleMark __hm; ; os::verify_stack_alignment
();
736 HOTSPOT_JNI_GETOBJECTREFTYPE_ENTRY(env, obj);
737
738 jobjectRefType ret = JNIInvalidRefType;
739 if (obj != NULL__null) {
740 ret = JNIHandles::handle_type(thread, obj);
741 }
742
743 HOTSPOT_JNI_GETOBJECTREFTYPE_RETURN((void *) ret);
744 return ret;
745JNI_END} }
746
747
748class JNI_ArgumentPusher : public SignatureIterator {
749 protected:
750 JavaCallArguments* _arguments;
751
752 void push_int(jint x) { _arguments->push_int(x); }
753 void push_long(jlong x) { _arguments->push_long(x); }
754 void push_float(jfloat x) { _arguments->push_float(x); }
755 void push_double(jdouble x) { _arguments->push_double(x); }
756 void push_object(jobject x) { _arguments->push_jobject(x); }
757
758 void push_boolean(jboolean b) {
759 // Normalize boolean arguments from native code by converting 1-255 to JNI_TRUE and
760 // 0 to JNI_FALSE. Boolean return values from native are normalized the same in
761 // TemplateInterpreterGenerator::generate_result_handler_for and
762 // SharedRuntime::generate_native_wrapper.
763 push_int(b == 0 ? JNI_FALSE0 : JNI_TRUE1);
764 }
765
766 JNI_ArgumentPusher(Method* method)
767 : SignatureIterator(method->signature(),
768 Fingerprinter(methodHandle(Thread::current(), method)).fingerprint())
769 {
770 _arguments = NULL__null;
771 }
772
773 public:
774 virtual void push_arguments_on(JavaCallArguments* arguments) = 0;
775};
776
777
778class JNI_ArgumentPusherVaArg : public JNI_ArgumentPusher {
779 va_list _ap;
780
781 void set_ap(va_list rap) {
782 va_copy(_ap, rap)__builtin_va_copy(_ap, rap);
783 }
784
785 friend class SignatureIterator; // so do_parameters_on can call do_type
786 void do_type(BasicType type) {
787 switch (type) {
788 // these are coerced to int when using va_arg
789 case T_BYTE:
790 case T_CHAR:
791 case T_SHORT:
792 case T_INT: push_int(va_arg(_ap, jint)__builtin_va_arg(_ap, jint)); break;
793 case T_BOOLEAN: push_boolean((jboolean) va_arg(_ap, jint)__builtin_va_arg(_ap, jint)); break;
794
795 // each of these paths is exercised by the various jck Call[Static,Nonvirtual,][Void,Int,..]Method[A,V,] tests
796
797 case T_LONG: push_long(va_arg(_ap, jlong)__builtin_va_arg(_ap, jlong)); break;
798 // float is coerced to double w/ va_arg
799 case T_FLOAT: push_float((jfloat) va_arg(_ap, jdouble)__builtin_va_arg(_ap, jdouble)); break;
800 case T_DOUBLE: push_double(va_arg(_ap, jdouble)__builtin_va_arg(_ap, jdouble)); break;
801
802 case T_ARRAY:
803 case T_OBJECT: push_object(va_arg(_ap, jobject)__builtin_va_arg(_ap, jobject)); break;
804 default: ShouldNotReachHere()do { (*g_assert_poison) = 'X';; report_should_not_reach_here(
"/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 804); ::breakpoint(); } while (0)
;
805 }
806 }
807
808 public:
809 JNI_ArgumentPusherVaArg(jmethodID method_id, va_list rap)
810 : JNI_ArgumentPusher(Method::resolve_jmethod_id(method_id)) {
811 set_ap(rap);
812 }
813
814 ~JNI_ArgumentPusherVaArg() {
815 va_end(_ap)__builtin_va_end(_ap);
816 }
817
818 virtual void push_arguments_on(JavaCallArguments* arguments) {
819 _arguments = arguments;
820 do_parameters_on(this);
821 }
822};
823
824
825class JNI_ArgumentPusherArray : public JNI_ArgumentPusher {
826 protected:
827 const jvalue *_ap;
828
829 inline void set_ap(const jvalue *rap) { _ap = rap; }
830
831 friend class SignatureIterator; // so do_parameters_on can call do_type
832 void do_type(BasicType type) {
833 switch (type) {
834 case T_CHAR: push_int((_ap++)->c); break;
835 case T_SHORT: push_int((_ap++)->s); break;
836 case T_BYTE: push_int((_ap++)->b); break;
837 case T_INT: push_int((_ap++)->i); break;
838 case T_BOOLEAN: push_boolean((_ap++)->z); break;
839 case T_LONG: push_long((_ap++)->j); break;
840 case T_FLOAT: push_float((_ap++)->f); break;
841 case T_DOUBLE: push_double((_ap++)->d); break;
842 case T_ARRAY:
843 case T_OBJECT: push_object((_ap++)->l); break;
844 default: ShouldNotReachHere()do { (*g_assert_poison) = 'X';; report_should_not_reach_here(
"/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 844); ::breakpoint(); } while (0)
;
845 }
846 }
847
848 public:
849 JNI_ArgumentPusherArray(jmethodID method_id, const jvalue *rap)
850 : JNI_ArgumentPusher(Method::resolve_jmethod_id(method_id)) {
851 set_ap(rap);
852 }
853
854 virtual void push_arguments_on(JavaCallArguments* arguments) {
855 _arguments = arguments;
856 do_parameters_on(this);
857 }
858};
859
860
861enum JNICallType {
862 JNI_STATIC,
863 JNI_VIRTUAL,
864 JNI_NONVIRTUAL
865};
866
867
868
869static void jni_invoke_static(JNIEnv *env, JavaValue* result, jobject receiver, JNICallType call_type, jmethodID method_id, JNI_ArgumentPusher *args, TRAPSJavaThread* __the_thread__) {
870 methodHandle method(THREAD__the_thread__, Method::resolve_jmethod_id(method_id));
871
872 // Create object to hold arguments for the JavaCall, and associate it with
873 // the jni parser
874 ResourceMark rm(THREAD__the_thread__);
875 int number_of_parameters = method->size_of_parameters();
876 JavaCallArguments java_args(number_of_parameters);
877
878 assert(method->is_static(), "method should be static")do { if (!(method->is_static())) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 878, "assert(" "method->is_static()" ") failed", "method should be static"
); ::breakpoint(); } } while (0)
;
879
880 // Fill out JavaCallArguments object
881 args->push_arguments_on(&java_args);
882 // Initialize result type
883 result->set_type(args->return_type());
884
885 // Invoke the method. Result is returned as oop.
886 JavaCalls::call(result, method, &java_args, CHECK__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return ; (void)(0
);
887
888 // Convert result
889 if (is_reference_type(result->get_type())) {
890 result->set_jobject(JNIHandles::make_local(THREAD__the_thread__, result->get_oop()));
891 }
892}
893
894
895static void jni_invoke_nonstatic(JNIEnv *env, JavaValue* result, jobject receiver, JNICallType call_type, jmethodID method_id, JNI_ArgumentPusher *args, TRAPSJavaThread* __the_thread__) {
896 oop recv = JNIHandles::resolve(receiver);
897 if (recv == NULL__null) {
8
Taking true branch
898 THROW(vmSymbols::java_lang_NullPointerException()){ Exceptions::_throw_msg(__the_thread__, "/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 898, vmSymbols::java_lang_NullPointerException(), __null); return
; }
;
9
Returning without writing to 'result->_value.l'
899 }
900 Handle h_recv(THREAD__the_thread__, recv);
901
902 int number_of_parameters;
903 Method* selected_method;
904 {
905 Method* m = Method::resolve_jmethod_id(method_id);
906 number_of_parameters = m->size_of_parameters();
907 InstanceKlass* holder = m->method_holder();
908 if (call_type != JNI_VIRTUAL) {
909 selected_method = m;
910 } else if (!m->has_itable_index()) {
911 // non-interface call -- for that little speed boost, don't handlize
912 debug_only(NoSafepointVerifier nosafepoint;)NoSafepointVerifier nosafepoint;
913 // jni_GetMethodID makes sure class is linked and initialized
914 // so m should have a valid vtable index.
915 assert(m->valid_vtable_index(), "no valid vtable index")do { if (!(m->valid_vtable_index())) { (*g_assert_poison) =
'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 915, "assert(" "m->valid_vtable_index()" ") failed", "no valid vtable index"
); ::breakpoint(); } } while (0)
;
916 int vtbl_index = m->vtable_index();
917 if (vtbl_index != Method::nonvirtual_vtable_index) {
918 selected_method = h_recv->klass()->method_at_vtable(vtbl_index);
919 } else {
920 // final method
921 selected_method = m;
922 }
923 } else {
924 // interface call
925 int itbl_index = m->itable_index();
926 Klass* k = h_recv->klass();
927 selected_method = InstanceKlass::cast(k)->method_at_itable(holder, itbl_index, CHECK__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return ; (void)(0
);
928 }
929 }
930
931 methodHandle method(THREAD__the_thread__, selected_method);
932
933 // Create object to hold arguments for the JavaCall, and associate it with
934 // the jni parser
935 ResourceMark rm(THREAD__the_thread__);
936 JavaCallArguments java_args(number_of_parameters);
937
938 // handle arguments
939 assert(!method->is_static(), "method %s should not be static", method->name_and_sig_as_C_string())do { if (!(!method->is_static())) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 939, "assert(" "!method->is_static()" ") failed", "method %s should not be static"
, method->name_and_sig_as_C_string()); ::breakpoint(); } }
while (0)
;
940 java_args.push_oop(h_recv); // Push jobject handle
941
942 // Fill out JavaCallArguments object
943 args->push_arguments_on(&java_args);
944 // Initialize result type
945 result->set_type(args->return_type());
946
947 // Invoke the method. Result is returned as oop.
948 JavaCalls::call(result, method, &java_args, CHECK__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return ; (void)(0
);
949
950 // Convert result
951 if (is_reference_type(result->get_type())) {
952 result->set_jobject(JNIHandles::make_local(THREAD__the_thread__, result->get_oop()));
953 }
954}
955
956DT_RETURN_MARK_DECL(AllocObject, jobject
957 , HOTSPOT_JNI_ALLOCOBJECT_RETURN(_ret_ref));
958
959JNI_ENTRY(jobject, jni_AllocObject(JNIEnv *env, jclass clazz))extern "C" { jobject jni_AllocObject(JNIEnv *env, jclass clazz
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 959, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
960 HOTSPOT_JNI_ALLOCOBJECT_ENTRY(env, clazz);
961
962 jobject ret = NULL__null;
963 DT_RETURN_MARK(AllocObject, jobject, (const jobject&)ret);
964
965 instanceOop i = InstanceKlass::allocate_instance(JNIHandles::resolve_non_null(clazz), CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
966 ret = JNIHandles::make_local(THREAD__the_thread__, i);
967 return ret;
968JNI_END} }
969
970DT_RETURN_MARK_DECL(NewObjectA, jobject
971 , HOTSPOT_JNI_NEWOBJECTA_RETURN(_ret_ref));
972
973JNI_ENTRY(jobject, jni_NewObjectA(JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args))extern "C" { jobject jni_NewObjectA(JNIEnv *env, jclass clazz
, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 973, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
974 HOTSPOT_JNI_NEWOBJECTA_ENTRY(env, clazz, (uintptr_t) methodID);
975
976 jobject obj = NULL__null;
977 DT_RETURN_MARK(NewObjectA, jobject, (const jobject&)obj);
978
979 instanceOop i = InstanceKlass::allocate_instance(JNIHandles::resolve_non_null(clazz), CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
980 obj = JNIHandles::make_local(THREAD__the_thread__, i);
981 JavaValue jvalue(T_VOID);
982 JNI_ArgumentPusherArray ap(methodID, args);
983 jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
984 return obj;
985JNI_END} }
986
987
988DT_RETURN_MARK_DECL(NewObjectV, jobject
989 , HOTSPOT_JNI_NEWOBJECTV_RETURN(_ret_ref));
990
991JNI_ENTRY(jobject, jni_NewObjectV(JNIEnv *env, jclass clazz, jmethodID methodID, va_list args))extern "C" { jobject jni_NewObjectV(JNIEnv *env, jclass clazz
, jmethodID methodID, va_list args) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 991, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
992 HOTSPOT_JNI_NEWOBJECTV_ENTRY(env, clazz, (uintptr_t) methodID);
993
994 jobject obj = NULL__null;
995 DT_RETURN_MARK(NewObjectV, jobject, (const jobject&)obj);
996
997 instanceOop i = InstanceKlass::allocate_instance(JNIHandles::resolve_non_null(clazz), CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
998 obj = JNIHandles::make_local(THREAD__the_thread__, i);
999 JavaValue jvalue(T_VOID);
1000 JNI_ArgumentPusherVaArg ap(methodID, args);
1001 jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
1002 return obj;
1003JNI_END} }
1004
1005
1006DT_RETURN_MARK_DECL(NewObject, jobject
1007 , HOTSPOT_JNI_NEWOBJECT_RETURN(_ret_ref));
1008
1009JNI_ENTRY(jobject, jni_NewObject(JNIEnv *env, jclass clazz, jmethodID methodID, ...))extern "C" { jobject jni_NewObject(JNIEnv *env, jclass clazz,
jmethodID methodID, ...) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1009, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1010 HOTSPOT_JNI_NEWOBJECT_ENTRY(env, clazz, (uintptr_t) methodID);
1011
1012 jobject obj = NULL__null;
1013 DT_RETURN_MARK(NewObject, jobject, (const jobject&)obj);
1014
1015 instanceOop i = InstanceKlass::allocate_instance(JNIHandles::resolve_non_null(clazz), CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
1016 obj = JNIHandles::make_local(THREAD__the_thread__, i);
1017 va_list args;
1018 va_start(args, methodID)__builtin_va_start(args, methodID);
1019 JavaValue jvalue(T_VOID);
1020 JNI_ArgumentPusherVaArg ap(methodID, args);
1021 jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
1022 va_end(args)__builtin_va_end(args);
1023 return obj;
1024JNI_END} }
1025
1026
1027JNI_ENTRY(jclass, jni_GetObjectClass(JNIEnv *env, jobject obj))extern "C" { jclass jni_GetObjectClass(JNIEnv *env, jobject obj
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1027, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1028 HOTSPOT_JNI_GETOBJECTCLASS_ENTRY(env, obj);
1029
1030 Klass* k = JNIHandles::resolve_non_null(obj)->klass();
1031 jclass ret =
1032 (jclass) JNIHandles::make_local(THREAD__the_thread__, k->java_mirror());
1033
1034 HOTSPOT_JNI_GETOBJECTCLASS_RETURN(ret);
1035 return ret;
1036JNI_END} }
1037
1038JNI_ENTRY_NO_PRESERVE(jboolean, jni_IsInstanceOf(JNIEnv *env, jobject obj, jclass clazz))extern "C" { jboolean jni_IsInstanceOf(JNIEnv *env, jobject obj
, jclass clazz) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1038, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
1039 HOTSPOT_JNI_ISINSTANCEOF_ENTRY(env, obj, clazz);
1040
1041 jboolean ret = JNI_TRUE1;
1042 if (obj != NULL__null) {
1043 ret = JNI_FALSE0;
1044 Klass* k = java_lang_Class::as_Klass(
1045 JNIHandles::resolve_non_null(clazz));
1046 if (k != NULL__null) {
1047 ret = JNIHandles::resolve_non_null(obj)->is_a(k) ? JNI_TRUE1 : JNI_FALSE0;
1048 }
1049 }
1050
1051 HOTSPOT_JNI_ISINSTANCEOF_RETURN(ret);
1052 return ret;
1053JNI_END} }
1054
1055
1056static jmethodID get_method_id(JNIEnv *env, jclass clazz, const char *name_str,
1057 const char *sig, bool is_static, TRAPSJavaThread* __the_thread__) {
1058 // %%%% This code should probably just call into a method in the LinkResolver
1059 //
1060 // The class should have been loaded (we have an instance of the class
1061 // passed in) so the method and signature should already be in the symbol
1062 // table. If they're not there, the method doesn't exist.
1063 const char *name_to_probe = (name_str == NULL__null)
1064 ? vmSymbols::object_initializer_name()->as_C_string()
1065 : name_str;
1066 TempNewSymbol name = SymbolTable::probe(name_to_probe, (int)strlen(name_to_probe));
1067 TempNewSymbol signature = SymbolTable::probe(sig, (int)strlen(sig));
1068
1069 if (name == NULL__null || signature == NULL__null) {
1070 THROW_MSG_0(vmSymbols::java_lang_NoSuchMethodError(), name_str){ Exceptions::_throw_msg(__the_thread__, "/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1070, vmSymbols::java_lang_NoSuchMethodError(), name_str); return
0; }
;
1071 }
1072
1073 oop mirror = JNIHandles::resolve_non_null(clazz);
1074 Klass* klass = java_lang_Class::as_Klass(mirror);
1075
1076 // Throw a NoSuchMethodError exception if we have an instance of a
1077 // primitive java.lang.Class
1078 if (java_lang_Class::is_primitive(mirror)) {
1079 ResourceMark rm(THREAD__the_thread__);
1080 THROW_MSG_0(vmSymbols::java_lang_NoSuchMethodError(), err_msg("%s%s.%s%s", is_static ? "static " : "", klass->signature_name(), name_str, sig)){ Exceptions::_throw_msg(__the_thread__, "/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1080, vmSymbols::java_lang_NoSuchMethodError(), err_msg("%s%s.%s%s"
, is_static ? "static " : "", klass->signature_name(), name_str
, sig)); return 0; }
;
1081 }
1082
1083 // Make sure class is linked and initialized before handing id's out to
1084 // Method*s.
1085 klass->initialize(CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
1086
1087 Method* m;
1088 if (name == vmSymbols::object_initializer_name() ||
1089 name == vmSymbols::class_initializer_name()) {
1090 // Never search superclasses for constructors
1091 if (klass->is_instance_klass()) {
1092 m = InstanceKlass::cast(klass)->find_method(name, signature);
1093 } else {
1094 m = NULL__null;
1095 }
1096 } else {
1097 m = klass->lookup_method(name, signature);
1098 if (m == NULL__null && klass->is_instance_klass()) {
1099 m = InstanceKlass::cast(klass)->lookup_method_in_ordered_interfaces(name, signature);
1100 }
1101 }
1102 if (m == NULL__null || (m->is_static() != is_static)) {
1103 ResourceMark rm(THREAD__the_thread__);
1104 THROW_MSG_0(vmSymbols::java_lang_NoSuchMethodError(), err_msg("%s%s.%s%s", is_static ? "static " : "", klass->signature_name(), name_str, sig)){ Exceptions::_throw_msg(__the_thread__, "/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1104, vmSymbols::java_lang_NoSuchMethodError(), err_msg("%s%s.%s%s"
, is_static ? "static " : "", klass->signature_name(), name_str
, sig)); return 0; }
;
1105 }
1106 return m->jmethod_id();
1107}
1108
1109
1110JNI_ENTRY(jmethodID, jni_GetMethodID(JNIEnv *env, jclass clazz,extern "C" { jmethodID jni_GetMethodID(JNIEnv *env, jclass clazz
, const char *name, const char *sig) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1111, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1111 const char *name, const char *sig))extern "C" { jmethodID jni_GetMethodID(JNIEnv *env, jclass clazz
, const char *name, const char *sig) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1111, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1112 HOTSPOT_JNI_GETMETHODID_ENTRY(env, clazz, (char *) name, (char *) sig);
1113 jmethodID ret = get_method_id(env, clazz, name, sig, false, thread);
1114 HOTSPOT_JNI_GETMETHODID_RETURN((uintptr_t) ret);
1115 return ret;
1116JNI_END} }
1117
1118
1119JNI_ENTRY(jmethodID, jni_GetStaticMethodID(JNIEnv *env, jclass clazz,extern "C" { jmethodID jni_GetStaticMethodID(JNIEnv *env, jclass
clazz, const char *name, const char *sig) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1120, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1120 const char *name, const char *sig))extern "C" { jmethodID jni_GetStaticMethodID(JNIEnv *env, jclass
clazz, const char *name, const char *sig) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1120, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1121 HOTSPOT_JNI_GETSTATICMETHODID_ENTRY(env, (char *) clazz, (char *) name, (char *)sig);
1122 jmethodID ret = get_method_id(env, clazz, name, sig, true, thread);
1123 HOTSPOT_JNI_GETSTATICMETHODID_RETURN((uintptr_t) ret);
1124 return ret;
1125JNI_END} }
1126
1127
1128
1129//
1130// Calling Methods
1131//
1132
1133
1134#define DEFINE_CALLMETHOD(ResultType, Result, Tag \FP_SELECT_Result(, ); extern "C" { ResultType jni_CallResultMethod
(JNIEnv *env, jobject obj, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1135, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ResultType ret = 0; FP_SELECT_Result
(, ); va_list args; __builtin_va_start(args, methodID); JavaValue
jvalue(Tag); JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); __builtin_va_end(args); ret = jvalue
.get_ResultType(); return ret;} }
1135 , EntryProbe, ReturnProbe)FP_SELECT_Result(, ); extern "C" { ResultType jni_CallResultMethod
(JNIEnv *env, jobject obj, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1135, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ResultType ret = 0; FP_SELECT_Result
(, ); va_list args; __builtin_va_start(args, methodID); JavaValue
jvalue(Tag); JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); __builtin_va_end(args); ret = jvalue
.get_ResultType(); return ret;} }
\
1136\
1137 DT_RETURN_MARK_DECL_FOR(Result, Call##Result##Method, ResultType \FP_SELECT_Result(, )
1138 , ReturnProbe)FP_SELECT_Result(, ); \extern "C" { ResultType jni_Call##Result##Method(JNIEnv *env,
jobject obj, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1141, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1139\extern "C" { ResultType jni_Call##Result##Method(JNIEnv *env,
jobject obj, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1141, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1140JNI_ENTRY(ResultType, \extern "C" { ResultType jni_Call##Result##Method(JNIEnv *env,
jobject obj, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1141, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1141 jni_Call##Result##Method(JNIEnv *env, jobject obj, jmethodID methodID, ...))extern "C" { ResultType jni_Call##Result##Method(JNIEnv *env,
jobject obj, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1141, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
\
1142\
1143 EntryProbe; \
1144 ResultType ret = 0;\
1145 DT_RETURN_MARK_FOR(Result, Call##Result##Method, ResultType, \FP_SELECT_Result(, )
1146 (const ResultType&)ret)FP_SELECT_Result(, );\
1147\
1148 va_list args; \
1149 va_start(args, methodID)__builtin_va_start(args, methodID); \
1150 JavaValue jvalue(Tag); \
1151 JNI_ArgumentPusherVaArg ap(methodID, args); \
1152 jni_invoke_nonstatic(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, CHECK_0__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0
); \
1153 va_end(args)__builtin_va_end(args); \
1154 ret = jvalue.get_##ResultType(); \
1155 return ret;\} }
1156JNI_END} }
1157
1158// the runtime type of subword integral basic types is integer
1159DEFINE_CALLMETHOD(jboolean, Boolean, T_BOOLEAN; extern "C" { jboolean jni_CallBooleanMethod(JNIEnv *env, jobject
obj, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1161, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_BOOLEAN); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jboolean(); return
ret;} }
1160 , HOTSPOT_JNI_CALLBOOLEANMETHOD_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jboolean jni_CallBooleanMethod(JNIEnv *env, jobject
obj, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1161, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_BOOLEAN); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jboolean(); return
ret;} }
1161 HOTSPOT_JNI_CALLBOOLEANMETHOD_RETURN(_ret_ref)); extern "C" { jboolean jni_CallBooleanMethod(JNIEnv *env, jobject
obj, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1161, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_BOOLEAN); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jboolean(); return
ret;} }
1162DEFINE_CALLMETHOD(jbyte, Byte, T_BYTE; extern "C" { jbyte jni_CallByteMethod(JNIEnv *env, jobject obj
, jmethodID methodID, ...) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1164, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_BYTE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jbyte(); return
ret;} }
1163 , HOTSPOT_JNI_CALLBYTEMETHOD_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jbyte jni_CallByteMethod(JNIEnv *env, jobject obj
, jmethodID methodID, ...) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1164, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_BYTE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jbyte(); return
ret;} }
1164 HOTSPOT_JNI_CALLBYTEMETHOD_RETURN(_ret_ref)); extern "C" { jbyte jni_CallByteMethod(JNIEnv *env, jobject obj
, jmethodID methodID, ...) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1164, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_BYTE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jbyte(); return
ret;} }
1165DEFINE_CALLMETHOD(jchar, Char, T_CHAR; extern "C" { jchar jni_CallCharMethod(JNIEnv *env, jobject obj
, jmethodID methodID, ...) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1167, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_CHAR); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jchar(); return
ret;} }
1166 , HOTSPOT_JNI_CALLCHARMETHOD_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jchar jni_CallCharMethod(JNIEnv *env, jobject obj
, jmethodID methodID, ...) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1167, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_CHAR); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jchar(); return
ret;} }
1167 HOTSPOT_JNI_CALLCHARMETHOD_RETURN(_ret_ref)); extern "C" { jchar jni_CallCharMethod(JNIEnv *env, jobject obj
, jmethodID methodID, ...) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1167, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_CHAR); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jchar(); return
ret;} }
1168DEFINE_CALLMETHOD(jshort, Short, T_SHORT; extern "C" { jshort jni_CallShortMethod(JNIEnv *env, jobject
obj, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1170, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_SHORT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jshort(); return
ret;} }
1169 , HOTSPOT_JNI_CALLSHORTMETHOD_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jshort jni_CallShortMethod(JNIEnv *env, jobject
obj, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1170, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_SHORT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jshort(); return
ret;} }
1170 HOTSPOT_JNI_CALLSHORTMETHOD_RETURN(_ret_ref)); extern "C" { jshort jni_CallShortMethod(JNIEnv *env, jobject
obj, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1170, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_SHORT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jshort(); return
ret;} }
1171
1172DEFINE_CALLMETHOD(jobject, Object, T_OBJECT; extern "C" { jobject jni_CallObjectMethod(JNIEnv *env, jobject
obj, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1174, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_OBJECT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jobject(); return
ret;} }
1173 , HOTSPOT_JNI_CALLOBJECTMETHOD_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jobject jni_CallObjectMethod(JNIEnv *env, jobject
obj, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1174, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_OBJECT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jobject(); return
ret;} }
1174 HOTSPOT_JNI_CALLOBJECTMETHOD_RETURN(_ret_ref)); extern "C" { jobject jni_CallObjectMethod(JNIEnv *env, jobject
obj, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1174, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_OBJECT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jobject(); return
ret;} }
1175DEFINE_CALLMETHOD(jint, Int, T_INT,; extern "C" { jint jni_CallIntMethod(JNIEnv *env, jobject obj
, jmethodID methodID, ...) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1177, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_INT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jint(); return
ret;} }
1176 HOTSPOT_JNI_CALLINTMETHOD_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jint jni_CallIntMethod(JNIEnv *env, jobject obj
, jmethodID methodID, ...) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1177, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_INT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jint(); return
ret;} }
1177 HOTSPOT_JNI_CALLINTMETHOD_RETURN(_ret_ref)); extern "C" { jint jni_CallIntMethod(JNIEnv *env, jobject obj
, jmethodID methodID, ...) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1177, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_INT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jint(); return
ret;} }
1178DEFINE_CALLMETHOD(jlong, Long, T_LONG; extern "C" { jlong jni_CallLongMethod(JNIEnv *env, jobject obj
, jmethodID methodID, ...) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1180, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_LONG); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jlong(); return
ret;} }
1179 , HOTSPOT_JNI_CALLLONGMETHOD_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jlong jni_CallLongMethod(JNIEnv *env, jobject obj
, jmethodID methodID, ...) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1180, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_LONG); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jlong(); return
ret;} }
1180 HOTSPOT_JNI_CALLLONGMETHOD_RETURN(_ret_ref)); extern "C" { jlong jni_CallLongMethod(JNIEnv *env, jobject obj
, jmethodID methodID, ...) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1180, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_LONG); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jlong(); return
ret;} }
1181// Float and double probes don't return value because dtrace doesn't currently support it
1182DEFINE_CALLMETHOD(jfloat, Float, T_FLOAT; extern "C" { jfloat jni_CallFloatMethod(JNIEnv *env, jobject
obj, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1184, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_FLOAT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jfloat(); return
ret;} }
1183 , HOTSPOT_JNI_CALLFLOATMETHOD_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jfloat jni_CallFloatMethod(JNIEnv *env, jobject
obj, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1184, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_FLOAT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jfloat(); return
ret;} }
1184 HOTSPOT_JNI_CALLFLOATMETHOD_RETURN()); extern "C" { jfloat jni_CallFloatMethod(JNIEnv *env, jobject
obj, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1184, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_FLOAT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jfloat(); return
ret;} }
1185DEFINE_CALLMETHOD(jdouble, Double, T_DOUBLE; extern "C" { jdouble jni_CallDoubleMethod(JNIEnv *env, jobject
obj, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1187, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_DOUBLE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jdouble(); return
ret;} }
1186 , HOTSPOT_JNI_CALLDOUBLEMETHOD_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jdouble jni_CallDoubleMethod(JNIEnv *env, jobject
obj, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1187, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_DOUBLE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jdouble(); return
ret;} }
1187 HOTSPOT_JNI_CALLDOUBLEMETHOD_RETURN()); extern "C" { jdouble jni_CallDoubleMethod(JNIEnv *env, jobject
obj, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1187, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_DOUBLE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jdouble(); return
ret;} }
1188
1189#define DEFINE_CALLMETHODV(ResultType, Result, Tag \FP_SELECT_Result(, ); extern "C" { ResultType jni_CallResultMethodV
(JNIEnv *env, jobject obj, jmethodID methodID, va_list args) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1190, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ResultType ret = 0; FP_SELECT_Result
(, ); JavaValue jvalue(Tag); JNI_ArgumentPusherVaArg ap(methodID
, args); jni_invoke_nonstatic(env, &jvalue, obj, JNI_VIRTUAL
, methodID, &ap, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return 0; (void)(0); ret = jvalue
.get_ResultType(); return ret;} }
1190 , EntryProbe, ReturnProbe)FP_SELECT_Result(, ); extern "C" { ResultType jni_CallResultMethodV
(JNIEnv *env, jobject obj, jmethodID methodID, va_list args) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1190, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ResultType ret = 0; FP_SELECT_Result
(, ); JavaValue jvalue(Tag); JNI_ArgumentPusherVaArg ap(methodID
, args); jni_invoke_nonstatic(env, &jvalue, obj, JNI_VIRTUAL
, methodID, &ap, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return 0; (void)(0); ret = jvalue
.get_ResultType(); return ret;} }
\
1191\
1192 DT_RETURN_MARK_DECL_FOR(Result, Call##Result##MethodV, ResultType \FP_SELECT_Result(, )
1193 , ReturnProbe)FP_SELECT_Result(, ); \extern "C" { ResultType jni_Call##Result##MethodV(JNIEnv *env
, jobject obj, jmethodID methodID, va_list args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1196, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1194\extern "C" { ResultType jni_Call##Result##MethodV(JNIEnv *env
, jobject obj, jmethodID methodID, va_list args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1196, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1195JNI_ENTRY(ResultType, \extern "C" { ResultType jni_Call##Result##MethodV(JNIEnv *env
, jobject obj, jmethodID methodID, va_list args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1196, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1196 jni_Call##Result##MethodV(JNIEnv *env, jobject obj, jmethodID methodID, va_list args))extern "C" { ResultType jni_Call##Result##MethodV(JNIEnv *env
, jobject obj, jmethodID methodID, va_list args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1196, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
\
1197\
1198 EntryProbe;\
1199 ResultType ret = 0;\
1200 DT_RETURN_MARK_FOR(Result, Call##Result##MethodV, ResultType, \FP_SELECT_Result(, )
1201 (const ResultType&)ret)FP_SELECT_Result(, );\
1202\
1203 JavaValue jvalue(Tag); \
1204 JNI_ArgumentPusherVaArg ap(methodID, args); \
1205 jni_invoke_nonstatic(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, CHECK_0__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0
); \
1206 ret = jvalue.get_##ResultType(); \
1207 return ret;\} }
1208JNI_END} }
1209
1210// the runtime type of subword integral basic types is integer
1211DEFINE_CALLMETHODV(jboolean, Boolean, T_BOOLEAN; extern "C" { jboolean jni_CallBooleanMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1213, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret = 0; ; JavaValue jvalue(T_BOOLEAN
); JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jboolean(); return
ret;} }
1212 , HOTSPOT_JNI_CALLBOOLEANMETHODV_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jboolean jni_CallBooleanMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1213, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret = 0; ; JavaValue jvalue(T_BOOLEAN
); JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jboolean(); return
ret;} }
1213 HOTSPOT_JNI_CALLBOOLEANMETHODV_RETURN(_ret_ref)); extern "C" { jboolean jni_CallBooleanMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1213, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret = 0; ; JavaValue jvalue(T_BOOLEAN
); JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jboolean(); return
ret;} }
1214DEFINE_CALLMETHODV(jbyte, Byte, T_BYTE; extern "C" { jbyte jni_CallByteMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1216, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret = 0; ; JavaValue jvalue(T_BYTE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jbyte(); return ret;} }
1215 , HOTSPOT_JNI_CALLBYTEMETHODV_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jbyte jni_CallByteMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1216, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret = 0; ; JavaValue jvalue(T_BYTE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jbyte(); return ret;} }
1216 HOTSPOT_JNI_CALLBYTEMETHODV_RETURN(_ret_ref)); extern "C" { jbyte jni_CallByteMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1216, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret = 0; ; JavaValue jvalue(T_BYTE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jbyte(); return ret;} }
1217DEFINE_CALLMETHODV(jchar, Char, T_CHAR; extern "C" { jchar jni_CallCharMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1219, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret = 0; ; JavaValue jvalue(T_CHAR); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jchar(); return ret;} }
1218 , HOTSPOT_JNI_CALLCHARMETHODV_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jchar jni_CallCharMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1219, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret = 0; ; JavaValue jvalue(T_CHAR); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jchar(); return ret;} }
1219 HOTSPOT_JNI_CALLCHARMETHODV_RETURN(_ret_ref)); extern "C" { jchar jni_CallCharMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1219, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret = 0; ; JavaValue jvalue(T_CHAR); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jchar(); return ret;} }
1220DEFINE_CALLMETHODV(jshort, Short, T_SHORT; extern "C" { jshort jni_CallShortMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1222, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret = 0; ; JavaValue jvalue(T_SHORT)
; JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jshort(); return ret
;} }
1221 , HOTSPOT_JNI_CALLSHORTMETHODV_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jshort jni_CallShortMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1222, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret = 0; ; JavaValue jvalue(T_SHORT)
; JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jshort(); return ret
;} }
1222 HOTSPOT_JNI_CALLSHORTMETHODV_RETURN(_ret_ref)); extern "C" { jshort jni_CallShortMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1222, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret = 0; ; JavaValue jvalue(T_SHORT)
; JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jshort(); return ret
;} }
1223
1224DEFINE_CALLMETHODV(jobject, Object, T_OBJECT; extern "C" { jobject jni_CallObjectMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1226, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret = 0; ; JavaValue jvalue(T_OBJECT
); JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jobject(); return ret
;} }
1225 , HOTSPOT_JNI_CALLOBJECTMETHODV_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jobject jni_CallObjectMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1226, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret = 0; ; JavaValue jvalue(T_OBJECT
); JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jobject(); return ret
;} }
1226 HOTSPOT_JNI_CALLOBJECTMETHODV_RETURN(_ret_ref)); extern "C" { jobject jni_CallObjectMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1226, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret = 0; ; JavaValue jvalue(T_OBJECT
); JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jobject(); return ret
;} }
1227DEFINE_CALLMETHODV(jint, Int, T_INT,; extern "C" { jint jni_CallIntMethodV(JNIEnv *env, jobject obj
, jmethodID methodID, va_list args) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1229, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret = 0; ; JavaValue jvalue(T_INT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jint(); return ret;} }
1228 HOTSPOT_JNI_CALLINTMETHODV_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jint jni_CallIntMethodV(JNIEnv *env, jobject obj
, jmethodID methodID, va_list args) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1229, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret = 0; ; JavaValue jvalue(T_INT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jint(); return ret;} }
1229 HOTSPOT_JNI_CALLINTMETHODV_RETURN(_ret_ref)); extern "C" { jint jni_CallIntMethodV(JNIEnv *env, jobject obj
, jmethodID methodID, va_list args) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1229, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret = 0; ; JavaValue jvalue(T_INT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jint(); return ret;} }
1230DEFINE_CALLMETHODV(jlong, Long, T_LONG; extern "C" { jlong jni_CallLongMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1232, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret = 0; ; JavaValue jvalue(T_LONG); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jlong(); return ret;} }
1231 , HOTSPOT_JNI_CALLLONGMETHODV_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jlong jni_CallLongMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1232, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret = 0; ; JavaValue jvalue(T_LONG); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jlong(); return ret;} }
1232 HOTSPOT_JNI_CALLLONGMETHODV_RETURN(_ret_ref)); extern "C" { jlong jni_CallLongMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1232, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret = 0; ; JavaValue jvalue(T_LONG); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jlong(); return ret;} }
1233// Float and double probes don't return value because dtrace doesn't currently support it
1234DEFINE_CALLMETHODV(jfloat, Float, T_FLOAT; extern "C" { jfloat jni_CallFloatMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1236, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret = 0; ; JavaValue jvalue(T_FLOAT)
; JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jfloat(); return ret
;} }
1235 , HOTSPOT_JNI_CALLFLOATMETHODV_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jfloat jni_CallFloatMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1236, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret = 0; ; JavaValue jvalue(T_FLOAT)
; JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jfloat(); return ret
;} }
1236 HOTSPOT_JNI_CALLFLOATMETHODV_RETURN()); extern "C" { jfloat jni_CallFloatMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1236, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret = 0; ; JavaValue jvalue(T_FLOAT)
; JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jfloat(); return ret
;} }
1237DEFINE_CALLMETHODV(jdouble, Double, T_DOUBLE; extern "C" { jdouble jni_CallDoubleMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1239, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret = 0; ; JavaValue jvalue(T_DOUBLE
); JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jdouble(); return ret
;} }
1238 , HOTSPOT_JNI_CALLDOUBLEMETHODV_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jdouble jni_CallDoubleMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1239, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret = 0; ; JavaValue jvalue(T_DOUBLE
); JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jdouble(); return ret
;} }
1239 HOTSPOT_JNI_CALLDOUBLEMETHODV_RETURN()); extern "C" { jdouble jni_CallDoubleMethodV(JNIEnv *env, jobject
obj, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1239, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret = 0; ; JavaValue jvalue(T_DOUBLE
); JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jdouble(); return ret
;} }
1240
1241#define DEFINE_CALLMETHODA(ResultType, Result, Tag \FP_SELECT_Result(, ); extern "C" { ResultType jni_CallResultMethodA
(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *
args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1242, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ResultType ret = 0; FP_SELECT_Result
(, ); JavaValue jvalue(Tag); JNI_ArgumentPusherArray ap(methodID
, args); jni_invoke_nonstatic(env, &jvalue, obj, JNI_VIRTUAL
, methodID, &ap, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return 0; (void)(0); ret = jvalue
.get_ResultType(); return ret;} }
1242 , EntryProbe, ReturnProbe)FP_SELECT_Result(, ); extern "C" { ResultType jni_CallResultMethodA
(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *
args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1242, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ResultType ret = 0; FP_SELECT_Result
(, ); JavaValue jvalue(Tag); JNI_ArgumentPusherArray ap(methodID
, args); jni_invoke_nonstatic(env, &jvalue, obj, JNI_VIRTUAL
, methodID, &ap, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return 0; (void)(0); ret = jvalue
.get_ResultType(); return ret;} }
\
1243\
1244 DT_RETURN_MARK_DECL_FOR(Result, Call##Result##MethodA, ResultType \FP_SELECT_Result(, )
1245 , ReturnProbe)FP_SELECT_Result(, ); \extern "C" { ResultType jni_Call##Result##MethodA(JNIEnv *env
, jobject obj, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1248, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1246\extern "C" { ResultType jni_Call##Result##MethodA(JNIEnv *env
, jobject obj, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1248, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1247JNI_ENTRY(ResultType, \extern "C" { ResultType jni_Call##Result##MethodA(JNIEnv *env
, jobject obj, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1248, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1248 jni_Call##Result##MethodA(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args))extern "C" { ResultType jni_Call##Result##MethodA(JNIEnv *env
, jobject obj, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1248, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
\
1249 EntryProbe; \
1250 ResultType ret = 0;\
1251 DT_RETURN_MARK_FOR(Result, Call##Result##MethodA, ResultType, \FP_SELECT_Result(, )
1252 (const ResultType&)ret)FP_SELECT_Result(, );\
1253\
1254 JavaValue jvalue(Tag); \
1255 JNI_ArgumentPusherArray ap(methodID, args); \
1256 jni_invoke_nonstatic(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, CHECK_0__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0
); \
1257 ret = jvalue.get_##ResultType(); \
1258 return ret;\} }
1259JNI_END} }
1260
1261// the runtime type of subword integral basic types is integer
1262DEFINE_CALLMETHODA(jboolean, Boolean, T_BOOLEAN; extern "C" { jboolean jni_CallBooleanMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1264, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret = 0; ; JavaValue jvalue(T_BOOLEAN
); JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jboolean(); return
ret;} }
1263 , HOTSPOT_JNI_CALLBOOLEANMETHODA_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jboolean jni_CallBooleanMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1264, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret = 0; ; JavaValue jvalue(T_BOOLEAN
); JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jboolean(); return
ret;} }
1264 HOTSPOT_JNI_CALLBOOLEANMETHODA_RETURN(_ret_ref)); extern "C" { jboolean jni_CallBooleanMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1264, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret = 0; ; JavaValue jvalue(T_BOOLEAN
); JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jboolean(); return
ret;} }
1265DEFINE_CALLMETHODA(jbyte, Byte, T_BYTE; extern "C" { jbyte jni_CallByteMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1267, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret = 0; ; JavaValue jvalue(T_BYTE); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jbyte(); return ret;} }
1266 , HOTSPOT_JNI_CALLBYTEMETHODA_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jbyte jni_CallByteMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1267, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret = 0; ; JavaValue jvalue(T_BYTE); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jbyte(); return ret;} }
1267 HOTSPOT_JNI_CALLBYTEMETHODA_RETURN(_ret_ref)); extern "C" { jbyte jni_CallByteMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1267, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret = 0; ; JavaValue jvalue(T_BYTE); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jbyte(); return ret;} }
1268DEFINE_CALLMETHODA(jchar, Char, T_CHAR; extern "C" { jchar jni_CallCharMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1270, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret = 0; ; JavaValue jvalue(T_CHAR); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jchar(); return ret;} }
1269 , HOTSPOT_JNI_CALLCHARMETHODA_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jchar jni_CallCharMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1270, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret = 0; ; JavaValue jvalue(T_CHAR); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jchar(); return ret;} }
1270 HOTSPOT_JNI_CALLCHARMETHODA_RETURN(_ret_ref)); extern "C" { jchar jni_CallCharMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1270, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret = 0; ; JavaValue jvalue(T_CHAR); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jchar(); return ret;} }
1271DEFINE_CALLMETHODA(jshort, Short, T_SHORT; extern "C" { jshort jni_CallShortMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1273, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret = 0; ; JavaValue jvalue(T_SHORT)
; JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jshort(); return ret
;} }
1272 , HOTSPOT_JNI_CALLSHORTMETHODA_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jshort jni_CallShortMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1273, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret = 0; ; JavaValue jvalue(T_SHORT)
; JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jshort(); return ret
;} }
1273 HOTSPOT_JNI_CALLSHORTMETHODA_RETURN(_ret_ref)); extern "C" { jshort jni_CallShortMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1273, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret = 0; ; JavaValue jvalue(T_SHORT)
; JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jshort(); return ret
;} }
1274
1275DEFINE_CALLMETHODA(jobject, Object, T_OBJECT; extern "C" { jobject jni_CallObjectMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1277, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret = 0; ; JavaValue jvalue(T_OBJECT
); JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jobject(); return ret
;} }
1276 , HOTSPOT_JNI_CALLOBJECTMETHODA_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jobject jni_CallObjectMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1277, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret = 0; ; JavaValue jvalue(T_OBJECT
); JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jobject(); return ret
;} }
1277 HOTSPOT_JNI_CALLOBJECTMETHODA_RETURN(_ret_ref)); extern "C" { jobject jni_CallObjectMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1277, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret = 0; ; JavaValue jvalue(T_OBJECT
); JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jobject(); return ret
;} }
1278DEFINE_CALLMETHODA(jint, Int, T_INT,; extern "C" { jint jni_CallIntMethodA(JNIEnv *env, jobject obj
, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1280, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret = 0; ; JavaValue jvalue(T_INT); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jint(); return ret;} }
1279 HOTSPOT_JNI_CALLINTMETHODA_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jint jni_CallIntMethodA(JNIEnv *env, jobject obj
, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1280, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret = 0; ; JavaValue jvalue(T_INT); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jint(); return ret;} }
1280 HOTSPOT_JNI_CALLINTMETHODA_RETURN(_ret_ref)); extern "C" { jint jni_CallIntMethodA(JNIEnv *env, jobject obj
, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1280, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret = 0; ; JavaValue jvalue(T_INT); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jint(); return ret;} }
1281DEFINE_CALLMETHODA(jlong, Long, T_LONG; extern "C" { jlong jni_CallLongMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1283, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret = 0; ; JavaValue jvalue(T_LONG); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jlong(); return ret;} }
1282 , HOTSPOT_JNI_CALLLONGMETHODA_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jlong jni_CallLongMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1283, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret = 0; ; JavaValue jvalue(T_LONG); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jlong(); return ret;} }
1283 HOTSPOT_JNI_CALLLONGMETHODA_RETURN(_ret_ref)); extern "C" { jlong jni_CallLongMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1283, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret = 0; ; JavaValue jvalue(T_LONG); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_VIRTUAL, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jlong(); return ret;} }
1284// Float and double probes don't return value because dtrace doesn't currently support it
1285DEFINE_CALLMETHODA(jfloat, Float, T_FLOAT; extern "C" { jfloat jni_CallFloatMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1287, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret = 0; ; JavaValue jvalue(T_FLOAT)
; JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jfloat(); return ret
;} }
1286 , HOTSPOT_JNI_CALLFLOATMETHODA_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jfloat jni_CallFloatMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1287, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret = 0; ; JavaValue jvalue(T_FLOAT)
; JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jfloat(); return ret
;} }
1287 HOTSPOT_JNI_CALLFLOATMETHODA_RETURN()); extern "C" { jfloat jni_CallFloatMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1287, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret = 0; ; JavaValue jvalue(T_FLOAT)
; JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jfloat(); return ret
;} }
1288DEFINE_CALLMETHODA(jdouble, Double, T_DOUBLE; extern "C" { jdouble jni_CallDoubleMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1290, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret = 0; ; JavaValue jvalue(T_DOUBLE
); JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jdouble(); return ret
;} }
1289 , HOTSPOT_JNI_CALLDOUBLEMETHODA_ENTRY(env, obj, (uintptr_t)methodID),; extern "C" { jdouble jni_CallDoubleMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1290, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret = 0; ; JavaValue jvalue(T_DOUBLE
); JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jdouble(); return ret
;} }
1290 HOTSPOT_JNI_CALLDOUBLEMETHODA_RETURN()); extern "C" { jdouble jni_CallDoubleMethodA(JNIEnv *env, jobject
obj, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1290, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret = 0; ; JavaValue jvalue(T_DOUBLE
); JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jdouble(); return ret
;} }
1291
1292DT_VOID_RETURN_MARK_DECL(CallVoidMethod, HOTSPOT_JNI_CALLVOIDMETHOD_RETURN());
1293DT_VOID_RETURN_MARK_DECL(CallVoidMethodV, HOTSPOT_JNI_CALLVOIDMETHODV_RETURN());
1294DT_VOID_RETURN_MARK_DECL(CallVoidMethodA, HOTSPOT_JNI_CALLVOIDMETHODA_RETURN());
1295
1296
1297JNI_ENTRY(void, jni_CallVoidMethod(JNIEnv *env, jobject obj, jmethodID methodID, ...))extern "C" { void jni_CallVoidMethod(JNIEnv *env, jobject obj
, jmethodID methodID, ...) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1297, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1298 HOTSPOT_JNI_CALLVOIDMETHOD_ENTRY(env, obj, (uintptr_t) methodID);
1299 DT_VOID_RETURN_MARK(CallVoidMethod);
1300
1301 va_list args;
1302 va_start(args, methodID)__builtin_va_start(args, methodID);
1303 JavaValue jvalue(T_VOID);
1304 JNI_ArgumentPusherVaArg ap(methodID, args);
1305 jni_invoke_nonstatic(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, CHECK__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return ; (void)(0
);
1306 va_end(args)__builtin_va_end(args);
1307JNI_END} }
1308
1309
1310JNI_ENTRY(void, jni_CallVoidMethodV(JNIEnv *env, jobject obj, jmethodID methodID, va_list args))extern "C" { void jni_CallVoidMethodV(JNIEnv *env, jobject obj
, jmethodID methodID, va_list args) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1310, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1311 HOTSPOT_JNI_CALLVOIDMETHODV_ENTRY(env, obj, (uintptr_t) methodID);
1312 DT_VOID_RETURN_MARK(CallVoidMethodV);
1313
1314 JavaValue jvalue(T_VOID);
1315 JNI_ArgumentPusherVaArg ap(methodID, args);
1316 jni_invoke_nonstatic(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, CHECK__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return ; (void)(0
);
1317JNI_END} }
1318
1319
1320JNI_ENTRY(void, jni_CallVoidMethodA(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args))extern "C" { void jni_CallVoidMethodA(JNIEnv *env, jobject obj
, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1320, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1321 HOTSPOT_JNI_CALLVOIDMETHODA_ENTRY(env, obj, (uintptr_t) methodID);
1322 DT_VOID_RETURN_MARK(CallVoidMethodA);
1323
1324 JavaValue jvalue(T_VOID);
1325 JNI_ArgumentPusherArray ap(methodID, args);
1326 jni_invoke_nonstatic(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, CHECK__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return ; (void)(0
);
1327JNI_END} }
1328
1329
1330
1331#define DEFINE_CALLNONVIRTUALMETHOD(ResultType, Result, Tag \FP_SELECT_Result(, );extern "C" { ResultType jni_CallNonvirtualResultMethod
(JNIEnv *env, jobject obj, jclass cls, jmethodID methodID, ...
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1332, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ResultType ret; FP_SELECT_Result(
, ); va_list args; __builtin_va_start(args, methodID); JavaValue
jvalue(Tag); JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); __builtin_va_end(args); ret = jvalue
.get_ResultType(); return ret;} }
1332 , EntryProbe, ReturnProbe)FP_SELECT_Result(, );extern "C" { ResultType jni_CallNonvirtualResultMethod
(JNIEnv *env, jobject obj, jclass cls, jmethodID methodID, ...
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1332, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ResultType ret; FP_SELECT_Result(
, ); va_list args; __builtin_va_start(args, methodID); JavaValue
jvalue(Tag); JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); __builtin_va_end(args); ret = jvalue
.get_ResultType(); return ret;} }
\
1333\
1334 DT_RETURN_MARK_DECL_FOR(Result, CallNonvirtual##Result##Method, ResultType \FP_SELECT_Result(, )
1335 , ReturnProbe)FP_SELECT_Result(, );\extern "C" { ResultType jni_CallNonvirtual##Result##Method(JNIEnv
*env, jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1338, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1336\extern "C" { ResultType jni_CallNonvirtual##Result##Method(JNIEnv
*env, jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1338, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1337JNI_ENTRY(ResultType, \extern "C" { ResultType jni_CallNonvirtual##Result##Method(JNIEnv
*env, jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1338, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1338 jni_CallNonvirtual##Result##Method(JNIEnv *env, jobject obj, jclass cls, jmethodID methodID, ...))extern "C" { ResultType jni_CallNonvirtual##Result##Method(JNIEnv
*env, jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1338, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
\
1339\
1340 EntryProbe;\
1341 ResultType ret;\
1342 DT_RETURN_MARK_FOR(Result, CallNonvirtual##Result##Method, ResultType, \FP_SELECT_Result(, )
1343 (const ResultType&)ret)FP_SELECT_Result(, );\
1344\
1345 va_list args; \
1346 va_start(args, methodID)__builtin_va_start(args, methodID); \
1347 JavaValue jvalue(Tag); \
1348 JNI_ArgumentPusherVaArg ap(methodID, args); \
1349 jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, CHECK_0__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0
); \
1350 va_end(args)__builtin_va_end(args); \
1351 ret = jvalue.get_##ResultType(); \
1352 return ret;\} }
1353JNI_END} }
1354
1355// the runtime type of subword integral basic types is integer
1356DEFINE_CALLNONVIRTUALMETHOD(jboolean, Boolean, T_BOOLEAN;extern "C" { jboolean jni_CallNonvirtualBooleanMethod(JNIEnv
*env, jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1358, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_BOOLEAN); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jboolean
(); return ret;} }
1357 , HOTSPOT_JNI_CALLNONVIRTUALBOOLEANMETHOD_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jboolean jni_CallNonvirtualBooleanMethod(JNIEnv
*env, jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1358, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_BOOLEAN); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jboolean
(); return ret;} }
1358 HOTSPOT_JNI_CALLNONVIRTUALBOOLEANMETHOD_RETURN(_ret_ref));extern "C" { jboolean jni_CallNonvirtualBooleanMethod(JNIEnv
*env, jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1358, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_BOOLEAN); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jboolean
(); return ret;} }
1359DEFINE_CALLNONVIRTUALMETHOD(jbyte, Byte, T_BYTE;extern "C" { jbyte jni_CallNonvirtualByteMethod(JNIEnv *env,
jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1361, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_BYTE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jbyte
(); return ret;} }
1360 , HOTSPOT_JNI_CALLNONVIRTUALBYTEMETHOD_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jbyte jni_CallNonvirtualByteMethod(JNIEnv *env,
jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1361, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_BYTE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jbyte
(); return ret;} }
1361 HOTSPOT_JNI_CALLNONVIRTUALBYTEMETHOD_RETURN(_ret_ref));extern "C" { jbyte jni_CallNonvirtualByteMethod(JNIEnv *env,
jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1361, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_BYTE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jbyte
(); return ret;} }
1362DEFINE_CALLNONVIRTUALMETHOD(jchar, Char, T_CHAR;extern "C" { jchar jni_CallNonvirtualCharMethod(JNIEnv *env,
jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1364, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_CHAR); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jchar
(); return ret;} }
1363 , HOTSPOT_JNI_CALLNONVIRTUALCHARMETHOD_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jchar jni_CallNonvirtualCharMethod(JNIEnv *env,
jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1364, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_CHAR); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jchar
(); return ret;} }
1364 HOTSPOT_JNI_CALLNONVIRTUALCHARMETHOD_RETURN(_ret_ref));extern "C" { jchar jni_CallNonvirtualCharMethod(JNIEnv *env,
jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1364, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_CHAR); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jchar
(); return ret;} }
1365DEFINE_CALLNONVIRTUALMETHOD(jshort, Short, T_SHORT;extern "C" { jshort jni_CallNonvirtualShortMethod(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1367, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_SHORT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jshort
(); return ret;} }
1366 , HOTSPOT_JNI_CALLNONVIRTUALSHORTMETHOD_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jshort jni_CallNonvirtualShortMethod(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1367, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_SHORT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jshort
(); return ret;} }
1367 HOTSPOT_JNI_CALLNONVIRTUALSHORTMETHOD_RETURN(_ret_ref));extern "C" { jshort jni_CallNonvirtualShortMethod(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1367, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_SHORT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jshort
(); return ret;} }
1368
1369DEFINE_CALLNONVIRTUALMETHOD(jobject, Object, T_OBJECT;extern "C" { jobject jni_CallNonvirtualObjectMethod(JNIEnv *
env, jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1371, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_OBJECT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jobject
(); return ret;} }
1370 , HOTSPOT_JNI_CALLNONVIRTUALOBJECTMETHOD_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jobject jni_CallNonvirtualObjectMethod(JNIEnv *
env, jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1371, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_OBJECT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jobject
(); return ret;} }
1371 HOTSPOT_JNI_CALLNONVIRTUALOBJECTMETHOD_RETURN(_ret_ref));extern "C" { jobject jni_CallNonvirtualObjectMethod(JNIEnv *
env, jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1371, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_OBJECT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jobject
(); return ret;} }
1372DEFINE_CALLNONVIRTUALMETHOD(jint, Int, T_INT;extern "C" { jint jni_CallNonvirtualIntMethod(JNIEnv *env, jobject
obj, jclass cls, jmethodID methodID, ...) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1374, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_INT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jint(
); return ret;} }
1373 , HOTSPOT_JNI_CALLNONVIRTUALINTMETHOD_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jint jni_CallNonvirtualIntMethod(JNIEnv *env, jobject
obj, jclass cls, jmethodID methodID, ...) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1374, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_INT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jint(
); return ret;} }
1374 HOTSPOT_JNI_CALLNONVIRTUALINTMETHOD_RETURN(_ret_ref));extern "C" { jint jni_CallNonvirtualIntMethod(JNIEnv *env, jobject
obj, jclass cls, jmethodID methodID, ...) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1374, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_INT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jint(
); return ret;} }
1375DEFINE_CALLNONVIRTUALMETHOD(jlong, Long, T_LONG;extern "C" { jlong jni_CallNonvirtualLongMethod(JNIEnv *env,
jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1378, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_LONG); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jlong
(); return ret;} }
1376 , HOTSPOT_JNI_CALLNONVIRTUALLONGMETHOD_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jlong jni_CallNonvirtualLongMethod(JNIEnv *env,
jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1378, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_LONG); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jlong
(); return ret;} }
1377// Float and double probes don't return value because dtrace doesn't currently support it;extern "C" { jlong jni_CallNonvirtualLongMethod(JNIEnv *env,
jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1378, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_LONG); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jlong
(); return ret;} }
1378 HOTSPOT_JNI_CALLNONVIRTUALLONGMETHOD_RETURN(_ret_ref));extern "C" { jlong jni_CallNonvirtualLongMethod(JNIEnv *env,
jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1378, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_LONG); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jlong
(); return ret;} }
1379DEFINE_CALLNONVIRTUALMETHOD(jfloat, Float, T_FLOAT;extern "C" { jfloat jni_CallNonvirtualFloatMethod(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1381, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_FLOAT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jfloat
(); return ret;} }
1380 , HOTSPOT_JNI_CALLNONVIRTUALFLOATMETHOD_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jfloat jni_CallNonvirtualFloatMethod(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1381, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_FLOAT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jfloat
(); return ret;} }
1381 HOTSPOT_JNI_CALLNONVIRTUALFLOATMETHOD_RETURN());extern "C" { jfloat jni_CallNonvirtualFloatMethod(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1381, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_FLOAT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jfloat
(); return ret;} }
1382DEFINE_CALLNONVIRTUALMETHOD(jdouble, Double, T_DOUBLE;extern "C" { jdouble jni_CallNonvirtualDoubleMethod(JNIEnv *
env, jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1384, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_DOUBLE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jdouble
(); return ret;} }
1383 , HOTSPOT_JNI_CALLNONVIRTUALDOUBLEMETHOD_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jdouble jni_CallNonvirtualDoubleMethod(JNIEnv *
env, jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1384, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_DOUBLE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jdouble
(); return ret;} }
1384 HOTSPOT_JNI_CALLNONVIRTUALDOUBLEMETHOD_RETURN());extern "C" { jdouble jni_CallNonvirtualDoubleMethod(JNIEnv *
env, jobject obj, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1384, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_DOUBLE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jdouble
(); return ret;} }
1385
1386#define DEFINE_CALLNONVIRTUALMETHODV(ResultType, Result, Tag \FP_SELECT_Result(, );extern "C" { ResultType jni_CallNonvirtualResultMethodV
(JNIEnv *env, jobject obj, jclass cls, jmethodID methodID, va_list
args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1387, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ResultType ret; FP_SELECT_Result(
, ); JavaValue jvalue(Tag); JNI_ArgumentPusherVaArg ap(methodID
, args); jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL
, methodID, &ap, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return 0; (void)(0); ret = jvalue
.get_ResultType(); return ret;} }
1387 , EntryProbe, ReturnProbe)FP_SELECT_Result(, );extern "C" { ResultType jni_CallNonvirtualResultMethodV
(JNIEnv *env, jobject obj, jclass cls, jmethodID methodID, va_list
args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1387, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ResultType ret; FP_SELECT_Result(
, ); JavaValue jvalue(Tag); JNI_ArgumentPusherVaArg ap(methodID
, args); jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL
, methodID, &ap, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return 0; (void)(0); ret = jvalue
.get_ResultType(); return ret;} }
\
1388\
1389 DT_RETURN_MARK_DECL_FOR(Result, CallNonvirtual##Result##MethodV, ResultType \FP_SELECT_Result(, )
1390 , ReturnProbe)FP_SELECT_Result(, );\extern "C" { ResultType jni_CallNonvirtual##Result##MethodV(JNIEnv
*env, jobject obj, jclass cls, jmethodID methodID, va_list args
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1393, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1391\extern "C" { ResultType jni_CallNonvirtual##Result##MethodV(JNIEnv
*env, jobject obj, jclass cls, jmethodID methodID, va_list args
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1393, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1392JNI_ENTRY(ResultType, \extern "C" { ResultType jni_CallNonvirtual##Result##MethodV(JNIEnv
*env, jobject obj, jclass cls, jmethodID methodID, va_list args
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1393, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1393 jni_CallNonvirtual##Result##MethodV(JNIEnv *env, jobject obj, jclass cls, jmethodID methodID, va_list args))extern "C" { ResultType jni_CallNonvirtual##Result##MethodV(JNIEnv
*env, jobject obj, jclass cls, jmethodID methodID, va_list args
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1393, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
\
1394\
1395 EntryProbe;\
1396 ResultType ret;\
1397 DT_RETURN_MARK_FOR(Result, CallNonvirtual##Result##MethodV, ResultType, \FP_SELECT_Result(, )
1398 (const ResultType&)ret)FP_SELECT_Result(, );\
1399\
1400 JavaValue jvalue(Tag); \
1401 JNI_ArgumentPusherVaArg ap(methodID, args); \
1402 jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, CHECK_0__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0
); \
1403 ret = jvalue.get_##ResultType(); \
1404 return ret;\} }
1405JNI_END} }
1406
1407// the runtime type of subword integral basic types is integer
1408DEFINE_CALLNONVIRTUALMETHODV(jboolean, Boolean, T_BOOLEAN;extern "C" { jboolean jni_CallNonvirtualBooleanMethodV(JNIEnv
*env, jobject obj, jclass cls, jmethodID methodID, va_list args
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1410, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret; ; JavaValue jvalue(T_BOOLEAN)
; JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jboolean(); return
ret;} }
1409 , HOTSPOT_JNI_CALLNONVIRTUALBOOLEANMETHODV_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jboolean jni_CallNonvirtualBooleanMethodV(JNIEnv
*env, jobject obj, jclass cls, jmethodID methodID, va_list args
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1410, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret; ; JavaValue jvalue(T_BOOLEAN)
; JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jboolean(); return
ret;} }
1410 HOTSPOT_JNI_CALLNONVIRTUALBOOLEANMETHODV_RETURN(_ret_ref));extern "C" { jboolean jni_CallNonvirtualBooleanMethodV(JNIEnv
*env, jobject obj, jclass cls, jmethodID methodID, va_list args
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1410, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret; ; JavaValue jvalue(T_BOOLEAN)
; JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jboolean(); return
ret;} }
1411DEFINE_CALLNONVIRTUALMETHODV(jbyte, Byte, T_BYTE;extern "C" { jbyte jni_CallNonvirtualByteMethodV(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, va_list args) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1413, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret; ; JavaValue jvalue(T_BYTE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jbyte(); return ret;} }
1412 , HOTSPOT_JNI_CALLNONVIRTUALBYTEMETHODV_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jbyte jni_CallNonvirtualByteMethodV(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, va_list args) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1413, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret; ; JavaValue jvalue(T_BYTE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jbyte(); return ret;} }
1413 HOTSPOT_JNI_CALLNONVIRTUALBYTEMETHODV_RETURN(_ret_ref));extern "C" { jbyte jni_CallNonvirtualByteMethodV(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, va_list args) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1413, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret; ; JavaValue jvalue(T_BYTE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jbyte(); return ret;} }
1414DEFINE_CALLNONVIRTUALMETHODV(jchar, Char, T_CHAR;extern "C" { jchar jni_CallNonvirtualCharMethodV(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, va_list args) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1416, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret; ; JavaValue jvalue(T_CHAR); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jchar(); return ret;} }
1415 , HOTSPOT_JNI_CALLNONVIRTUALCHARMETHODV_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jchar jni_CallNonvirtualCharMethodV(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, va_list args) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1416, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret; ; JavaValue jvalue(T_CHAR); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jchar(); return ret;} }
1416 HOTSPOT_JNI_CALLNONVIRTUALCHARMETHODV_RETURN(_ret_ref));extern "C" { jchar jni_CallNonvirtualCharMethodV(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, va_list args) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1416, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret; ; JavaValue jvalue(T_CHAR); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jchar(); return ret;} }
1417DEFINE_CALLNONVIRTUALMETHODV(jshort, Short, T_SHORT;extern "C" { jshort jni_CallNonvirtualShortMethodV(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, va_list args) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1419, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret; ; JavaValue jvalue(T_SHORT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jshort(); return ret;} }
1418 , HOTSPOT_JNI_CALLNONVIRTUALSHORTMETHODV_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jshort jni_CallNonvirtualShortMethodV(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, va_list args) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1419, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret; ; JavaValue jvalue(T_SHORT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jshort(); return ret;} }
1419 HOTSPOT_JNI_CALLNONVIRTUALSHORTMETHODV_RETURN(_ret_ref));extern "C" { jshort jni_CallNonvirtualShortMethodV(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, va_list args) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1419, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret; ; JavaValue jvalue(T_SHORT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jshort(); return ret;} }
1420
1421DEFINE_CALLNONVIRTUALMETHODV(jobject, Object, T_OBJECT;extern "C" { jobject jni_CallNonvirtualObjectMethodV(JNIEnv *
env, jobject obj, jclass cls, jmethodID methodID, va_list args
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1423, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret; ; JavaValue jvalue(T_OBJECT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jobject(); return ret;} }
1422 , HOTSPOT_JNI_CALLNONVIRTUALOBJECTMETHODV_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jobject jni_CallNonvirtualObjectMethodV(JNIEnv *
env, jobject obj, jclass cls, jmethodID methodID, va_list args
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1423, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret; ; JavaValue jvalue(T_OBJECT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jobject(); return ret;} }
1423 HOTSPOT_JNI_CALLNONVIRTUALOBJECTMETHODV_RETURN(_ret_ref));extern "C" { jobject jni_CallNonvirtualObjectMethodV(JNIEnv *
env, jobject obj, jclass cls, jmethodID methodID, va_list args
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1423, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret; ; JavaValue jvalue(T_OBJECT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jobject(); return ret;} }
1424DEFINE_CALLNONVIRTUALMETHODV(jint, Int, T_INT;extern "C" { jint jni_CallNonvirtualIntMethodV(JNIEnv *env, jobject
obj, jclass cls, jmethodID methodID, va_list args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1426, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret; ; JavaValue jvalue(T_INT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jint(); return ret;} }
1425 , HOTSPOT_JNI_CALLNONVIRTUALINTMETHODV_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jint jni_CallNonvirtualIntMethodV(JNIEnv *env, jobject
obj, jclass cls, jmethodID methodID, va_list args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1426, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret; ; JavaValue jvalue(T_INT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jint(); return ret;} }
1426 HOTSPOT_JNI_CALLNONVIRTUALINTMETHODV_RETURN(_ret_ref));extern "C" { jint jni_CallNonvirtualIntMethodV(JNIEnv *env, jobject
obj, jclass cls, jmethodID methodID, va_list args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1426, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret; ; JavaValue jvalue(T_INT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jint(); return ret;} }
1427DEFINE_CALLNONVIRTUALMETHODV(jlong, Long, T_LONG;extern "C" { jlong jni_CallNonvirtualLongMethodV(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, va_list args) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1430, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret; ; JavaValue jvalue(T_LONG); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jlong(); return ret;} }
1428 , HOTSPOT_JNI_CALLNONVIRTUALLONGMETHODV_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jlong jni_CallNonvirtualLongMethodV(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, va_list args) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1430, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret; ; JavaValue jvalue(T_LONG); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jlong(); return ret;} }
1429// Float and double probes don't return value because dtrace doesn't currently support it;extern "C" { jlong jni_CallNonvirtualLongMethodV(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, va_list args) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1430, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret; ; JavaValue jvalue(T_LONG); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jlong(); return ret;} }
1430 HOTSPOT_JNI_CALLNONVIRTUALLONGMETHODV_RETURN(_ret_ref));extern "C" { jlong jni_CallNonvirtualLongMethodV(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, va_list args) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1430, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret; ; JavaValue jvalue(T_LONG); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jlong(); return ret;} }
1431DEFINE_CALLNONVIRTUALMETHODV(jfloat, Float, T_FLOAT;extern "C" { jfloat jni_CallNonvirtualFloatMethodV(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, va_list args) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1433, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret; ; JavaValue jvalue(T_FLOAT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jfloat(); return ret;} }
1432 , HOTSPOT_JNI_CALLNONVIRTUALFLOATMETHODV_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jfloat jni_CallNonvirtualFloatMethodV(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, va_list args) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1433, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret; ; JavaValue jvalue(T_FLOAT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jfloat(); return ret;} }
1433 HOTSPOT_JNI_CALLNONVIRTUALFLOATMETHODV_RETURN());extern "C" { jfloat jni_CallNonvirtualFloatMethodV(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, va_list args) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1433, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret; ; JavaValue jvalue(T_FLOAT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jfloat(); return ret;} }
1434DEFINE_CALLNONVIRTUALMETHODV(jdouble, Double, T_DOUBLE;extern "C" { jdouble jni_CallNonvirtualDoubleMethodV(JNIEnv *
env, jobject obj, jclass cls, jmethodID methodID, va_list args
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1436, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret; ; JavaValue jvalue(T_DOUBLE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jdouble(); return ret;} }
1435 , HOTSPOT_JNI_CALLNONVIRTUALDOUBLEMETHODV_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jdouble jni_CallNonvirtualDoubleMethodV(JNIEnv *
env, jobject obj, jclass cls, jmethodID methodID, va_list args
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1436, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret; ; JavaValue jvalue(T_DOUBLE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jdouble(); return ret;} }
1436 HOTSPOT_JNI_CALLNONVIRTUALDOUBLEMETHODV_RETURN());extern "C" { jdouble jni_CallNonvirtualDoubleMethodV(JNIEnv *
env, jobject obj, jclass cls, jmethodID methodID, va_list args
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1436, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret; ; JavaValue jvalue(T_DOUBLE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jdouble(); return ret;} }
1437
1438#define DEFINE_CALLNONVIRTUALMETHODA(ResultType, Result, Tag \FP_SELECT_Result(, );extern "C" { ResultType jni_CallNonvirtualResultMethodA
(JNIEnv *env, jobject obj, jclass cls, jmethodID methodID, const
jvalue *args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1439, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ResultType ret; FP_SELECT_Result(
, ); JavaValue jvalue(Tag); JNI_ArgumentPusherArray ap(methodID
, args); jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL
, methodID, &ap, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return 0; (void)(0); ret = jvalue
.get_ResultType(); return ret;} }
1439 , EntryProbe, ReturnProbe)FP_SELECT_Result(, );extern "C" { ResultType jni_CallNonvirtualResultMethodA
(JNIEnv *env, jobject obj, jclass cls, jmethodID methodID, const
jvalue *args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1439, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ResultType ret; FP_SELECT_Result(
, ); JavaValue jvalue(Tag); JNI_ArgumentPusherArray ap(methodID
, args); jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL
, methodID, &ap, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return 0; (void)(0); ret = jvalue
.get_ResultType(); return ret;} }
\
1440\
1441 DT_RETURN_MARK_DECL_FOR(Result, CallNonvirtual##Result##MethodA, ResultType \FP_SELECT_Result(, )
1442 , ReturnProbe)FP_SELECT_Result(, );\extern "C" { ResultType jni_CallNonvirtual##Result##MethodA(JNIEnv
*env, jobject obj, jclass cls, jmethodID methodID, const jvalue
*args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1445, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1443\extern "C" { ResultType jni_CallNonvirtual##Result##MethodA(JNIEnv
*env, jobject obj, jclass cls, jmethodID methodID, const jvalue
*args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1445, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1444JNI_ENTRY(ResultType, \extern "C" { ResultType jni_CallNonvirtual##Result##MethodA(JNIEnv
*env, jobject obj, jclass cls, jmethodID methodID, const jvalue
*args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1445, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1445 jni_CallNonvirtual##Result##MethodA(JNIEnv *env, jobject obj, jclass cls, jmethodID methodID, const jvalue *args))extern "C" { ResultType jni_CallNonvirtual##Result##MethodA(JNIEnv
*env, jobject obj, jclass cls, jmethodID methodID, const jvalue
*args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1445, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
\
1446\
1447 EntryProbe;\
1448 ResultType ret;\
1449 DT_RETURN_MARK_FOR(Result, CallNonvirtual##Result##MethodA, ResultType, \FP_SELECT_Result(, )
1450 (const ResultType&)ret)FP_SELECT_Result(, );\
1451\
1452 JavaValue jvalue(Tag); \
1453 JNI_ArgumentPusherArray ap(methodID, args); \
1454 jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, CHECK_0__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0
); \
1455 ret = jvalue.get_##ResultType(); \
1456 return ret;\} }
1457JNI_END} }
1458
1459// the runtime type of subword integral basic types is integer
1460DEFINE_CALLNONVIRTUALMETHODA(jboolean, Boolean, T_BOOLEAN;extern "C" { jboolean jni_CallNonvirtualBooleanMethodA(JNIEnv
*env, jobject obj, jclass cls, jmethodID methodID, const jvalue
*args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1462, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret; ; JavaValue jvalue(T_BOOLEAN)
; JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jboolean(); return
ret;} }
1461 , HOTSPOT_JNI_CALLNONVIRTUALBOOLEANMETHODA_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jboolean jni_CallNonvirtualBooleanMethodA(JNIEnv
*env, jobject obj, jclass cls, jmethodID methodID, const jvalue
*args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1462, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret; ; JavaValue jvalue(T_BOOLEAN)
; JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jboolean(); return
ret;} }
1462 HOTSPOT_JNI_CALLNONVIRTUALBOOLEANMETHODA_RETURN(_ret_ref));extern "C" { jboolean jni_CallNonvirtualBooleanMethodA(JNIEnv
*env, jobject obj, jclass cls, jmethodID methodID, const jvalue
*args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1462, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret; ; JavaValue jvalue(T_BOOLEAN)
; JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_nonstatic
(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jboolean(); return
ret;} }
1463DEFINE_CALLNONVIRTUALMETHODA(jbyte, Byte, T_BYTE;extern "C" { jbyte jni_CallNonvirtualByteMethodA(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, const jvalue *
args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1465, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret; ; JavaValue jvalue(T_BYTE); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jbyte(); return ret;} }
1464 , HOTSPOT_JNI_CALLNONVIRTUALBYTEMETHODA_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jbyte jni_CallNonvirtualByteMethodA(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, const jvalue *
args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1465, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret; ; JavaValue jvalue(T_BYTE); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jbyte(); return ret;} }
1465 HOTSPOT_JNI_CALLNONVIRTUALBYTEMETHODA_RETURN(_ret_ref));extern "C" { jbyte jni_CallNonvirtualByteMethodA(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, const jvalue *
args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1465, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret; ; JavaValue jvalue(T_BYTE); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jbyte(); return ret;} }
1466DEFINE_CALLNONVIRTUALMETHODA(jchar, Char, T_CHAR;extern "C" { jchar jni_CallNonvirtualCharMethodA(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, const jvalue *
args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1468, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret; ; JavaValue jvalue(T_CHAR); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jchar(); return ret;} }
1467 , HOTSPOT_JNI_CALLNONVIRTUALCHARMETHODA_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jchar jni_CallNonvirtualCharMethodA(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, const jvalue *
args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1468, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret; ; JavaValue jvalue(T_CHAR); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jchar(); return ret;} }
1468 HOTSPOT_JNI_CALLNONVIRTUALCHARMETHODA_RETURN(_ret_ref));extern "C" { jchar jni_CallNonvirtualCharMethodA(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, const jvalue *
args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1468, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret; ; JavaValue jvalue(T_CHAR); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jchar(); return ret;} }
1469DEFINE_CALLNONVIRTUALMETHODA(jshort, Short, T_SHORT;extern "C" { jshort jni_CallNonvirtualShortMethodA(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, const jvalue *
args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1471, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret; ; JavaValue jvalue(T_SHORT); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jshort(); return ret;} }
1470 , HOTSPOT_JNI_CALLNONVIRTUALSHORTMETHODA_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jshort jni_CallNonvirtualShortMethodA(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, const jvalue *
args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1471, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret; ; JavaValue jvalue(T_SHORT); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jshort(); return ret;} }
1471 HOTSPOT_JNI_CALLNONVIRTUALSHORTMETHODA_RETURN(_ret_ref));extern "C" { jshort jni_CallNonvirtualShortMethodA(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, const jvalue *
args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1471, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret; ; JavaValue jvalue(T_SHORT); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jshort(); return ret;} }
1472
1473DEFINE_CALLNONVIRTUALMETHODA(jobject, Object, T_OBJECT;extern "C" { jobject jni_CallNonvirtualObjectMethodA(JNIEnv *
env, jobject obj, jclass cls, jmethodID methodID, const jvalue
*args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1475, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret; ; JavaValue jvalue(T_OBJECT); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jobject(); return ret;} }
1474 , HOTSPOT_JNI_CALLNONVIRTUALOBJECTMETHODA_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jobject jni_CallNonvirtualObjectMethodA(JNIEnv *
env, jobject obj, jclass cls, jmethodID methodID, const jvalue
*args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1475, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret; ; JavaValue jvalue(T_OBJECT); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jobject(); return ret;} }
1475 HOTSPOT_JNI_CALLNONVIRTUALOBJECTMETHODA_RETURN(_ret_ref));extern "C" { jobject jni_CallNonvirtualObjectMethodA(JNIEnv *
env, jobject obj, jclass cls, jmethodID methodID, const jvalue
*args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1475, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret; ; JavaValue jvalue(T_OBJECT); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jobject(); return ret;} }
1476DEFINE_CALLNONVIRTUALMETHODA(jint, Int, T_INT;extern "C" { jint jni_CallNonvirtualIntMethodA(JNIEnv *env, jobject
obj, jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1478, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret; ; JavaValue jvalue(T_INT); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jint(); return ret;} }
1477 , HOTSPOT_JNI_CALLNONVIRTUALINTMETHODA_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jint jni_CallNonvirtualIntMethodA(JNIEnv *env, jobject
obj, jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1478, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret; ; JavaValue jvalue(T_INT); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jint(); return ret;} }
1478 HOTSPOT_JNI_CALLNONVIRTUALINTMETHODA_RETURN(_ret_ref));extern "C" { jint jni_CallNonvirtualIntMethodA(JNIEnv *env, jobject
obj, jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1478, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret; ; JavaValue jvalue(T_INT); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jint(); return ret;} }
1479DEFINE_CALLNONVIRTUALMETHODA(jlong, Long, T_LONG;extern "C" { jlong jni_CallNonvirtualLongMethodA(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, const jvalue *
args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1482, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret; ; JavaValue jvalue(T_LONG); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jlong(); return ret;} }
1
Assuming 'VerifyJNIEnvThread' is false
2
Taking false branch
3
Loop condition is false. Exiting loop
4
Calling default constructor for 'JavaValue'
6
Returning from default constructor for 'JavaValue'
7
Calling 'jni_invoke_nonstatic'
10
Returning from 'jni_invoke_nonstatic'
11
Taking false branch
12
Calling 'JavaValue::get_jlong'
1480 , HOTSPOT_JNI_CALLNONVIRTUALLONGMETHODA_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jlong jni_CallNonvirtualLongMethodA(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, const jvalue *
args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1482, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret; ; JavaValue jvalue(T_LONG); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jlong(); return ret;} }
1481// Float and double probes don't return value because dtrace doesn't currently support it;extern "C" { jlong jni_CallNonvirtualLongMethodA(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, const jvalue *
args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1482, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret; ; JavaValue jvalue(T_LONG); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jlong(); return ret;} }
1482 HOTSPOT_JNI_CALLNONVIRTUALLONGMETHODA_RETURN(_ret_ref));extern "C" { jlong jni_CallNonvirtualLongMethodA(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, const jvalue *
args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1482, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret; ; JavaValue jvalue(T_LONG); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jlong(); return ret;} }
1483DEFINE_CALLNONVIRTUALMETHODA(jfloat, Float, T_FLOAT;extern "C" { jfloat jni_CallNonvirtualFloatMethodA(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, const jvalue *
args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1485, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret; ; JavaValue jvalue(T_FLOAT); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jfloat(); return ret;} }
1484 , HOTSPOT_JNI_CALLNONVIRTUALFLOATMETHODA_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jfloat jni_CallNonvirtualFloatMethodA(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, const jvalue *
args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1485, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret; ; JavaValue jvalue(T_FLOAT); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jfloat(); return ret;} }
1485 HOTSPOT_JNI_CALLNONVIRTUALFLOATMETHODA_RETURN());extern "C" { jfloat jni_CallNonvirtualFloatMethodA(JNIEnv *env
, jobject obj, jclass cls, jmethodID methodID, const jvalue *
args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1485, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret; ; JavaValue jvalue(T_FLOAT); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jfloat(); return ret;} }
1486DEFINE_CALLNONVIRTUALMETHODA(jdouble, Double, T_DOUBLE;extern "C" { jdouble jni_CallNonvirtualDoubleMethodA(JNIEnv *
env, jobject obj, jclass cls, jmethodID methodID, const jvalue
*args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1488, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret; ; JavaValue jvalue(T_DOUBLE); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jdouble(); return ret;} }
1487 , HOTSPOT_JNI_CALLNONVIRTUALDOUBLEMETHODA_ENTRY(env, obj, cls, (uintptr_t)methodID),;extern "C" { jdouble jni_CallNonvirtualDoubleMethodA(JNIEnv *
env, jobject obj, jclass cls, jmethodID methodID, const jvalue
*args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1488, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret; ; JavaValue jvalue(T_DOUBLE); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jdouble(); return ret;} }
1488 HOTSPOT_JNI_CALLNONVIRTUALDOUBLEMETHODA_RETURN());extern "C" { jdouble jni_CallNonvirtualDoubleMethodA(JNIEnv *
env, jobject obj, jclass cls, jmethodID methodID, const jvalue
*args) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1488, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret; ; JavaValue jvalue(T_DOUBLE); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_nonstatic(env, &jvalue, obj
, JNI_NONVIRTUAL, methodID, &ap, __the_thread__); if ((((
ThreadShadow*)__the_thread__)->has_pending_exception())) return
0; (void)(0); ret = jvalue.get_jdouble(); return ret;} }
1489
1490DT_VOID_RETURN_MARK_DECL(CallNonvirtualVoidMethod
1491 , HOTSPOT_JNI_CALLNONVIRTUALVOIDMETHOD_RETURN());
1492DT_VOID_RETURN_MARK_DECL(CallNonvirtualVoidMethodV
1493 , HOTSPOT_JNI_CALLNONVIRTUALVOIDMETHODV_RETURN());
1494DT_VOID_RETURN_MARK_DECL(CallNonvirtualVoidMethodA
1495 , HOTSPOT_JNI_CALLNONVIRTUALVOIDMETHODA_RETURN());
1496
1497JNI_ENTRY(void, jni_CallNonvirtualVoidMethod(JNIEnv *env, jobject obj, jclass cls, jmethodID methodID, ...))extern "C" { void jni_CallNonvirtualVoidMethod(JNIEnv *env, jobject
obj, jclass cls, jmethodID methodID, ...) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1497, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1498 HOTSPOT_JNI_CALLNONVIRTUALVOIDMETHOD_ENTRY(env, obj, cls, (uintptr_t) methodID);
1499 DT_VOID_RETURN_MARK(CallNonvirtualVoidMethod);
1500
1501 va_list args;
1502 va_start(args, methodID)__builtin_va_start(args, methodID);
1503 JavaValue jvalue(T_VOID);
1504 JNI_ArgumentPusherVaArg ap(methodID, args);
1505 jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, CHECK__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return ; (void)(0
);
1506 va_end(args)__builtin_va_end(args);
1507JNI_END} }
1508
1509
1510JNI_ENTRY(void, jni_CallNonvirtualVoidMethodV(JNIEnv *env, jobject obj, jclass cls, jmethodID methodID, va_list args))extern "C" { void jni_CallNonvirtualVoidMethodV(JNIEnv *env, jobject
obj, jclass cls, jmethodID methodID, va_list args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1510, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1511 HOTSPOT_JNI_CALLNONVIRTUALVOIDMETHODV_ENTRY(
1512 env, obj, cls, (uintptr_t) methodID);
1513 DT_VOID_RETURN_MARK(CallNonvirtualVoidMethodV);
1514
1515 JavaValue jvalue(T_VOID);
1516 JNI_ArgumentPusherVaArg ap(methodID, args);
1517 jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, CHECK__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return ; (void)(0
);
1518JNI_END} }
1519
1520
1521JNI_ENTRY(void, jni_CallNonvirtualVoidMethodA(JNIEnv *env, jobject obj, jclass cls, jmethodID methodID, const jvalue *args))extern "C" { void jni_CallNonvirtualVoidMethodA(JNIEnv *env, jobject
obj, jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1521, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1522 HOTSPOT_JNI_CALLNONVIRTUALVOIDMETHODA_ENTRY(
1523 env, obj, cls, (uintptr_t) methodID);
1524 DT_VOID_RETURN_MARK(CallNonvirtualVoidMethodA);
1525 JavaValue jvalue(T_VOID);
1526 JNI_ArgumentPusherArray ap(methodID, args);
1527 jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, CHECK__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return ; (void)(0
);
1528JNI_END} }
1529
1530
1531
1532#define DEFINE_CALLSTATICMETHOD(ResultType, Result, Tag \FP_SELECT_Result(, ); extern "C" { ResultType jni_CallStaticResultMethod
(JNIEnv *env, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1533, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ResultType ret = 0; FP_SELECT_Result
(, ); va_list args; __builtin_va_start(args, methodID); JavaValue
jvalue(Tag); JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_static
(env, &jvalue, __null, JNI_STATIC, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); __builtin_va_end(args); ret = jvalue
.get_ResultType(); return ret;} }
1533 , EntryProbe, ResultProbe)FP_SELECT_Result(, ); extern "C" { ResultType jni_CallStaticResultMethod
(JNIEnv *env, jclass cls, jmethodID methodID, ...) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1533, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ResultType ret = 0; FP_SELECT_Result
(, ); va_list args; __builtin_va_start(args, methodID); JavaValue
jvalue(Tag); JNI_ArgumentPusherVaArg ap(methodID, args); jni_invoke_static
(env, &jvalue, __null, JNI_STATIC, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); __builtin_va_end(args); ret = jvalue
.get_ResultType(); return ret;} }
\
1534\
1535 DT_RETURN_MARK_DECL_FOR(Result, CallStatic##Result##Method, ResultType \FP_SELECT_Result(, )
1536 , ResultProbe)FP_SELECT_Result(, ); \extern "C" { ResultType jni_CallStatic##Result##Method(JNIEnv
*env, jclass cls, jmethodID methodID, ...) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1539, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1537\extern "C" { ResultType jni_CallStatic##Result##Method(JNIEnv
*env, jclass cls, jmethodID methodID, ...) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1539, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1538JNI_ENTRY(ResultType, \extern "C" { ResultType jni_CallStatic##Result##Method(JNIEnv
*env, jclass cls, jmethodID methodID, ...) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1539, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1539 jni_CallStatic##Result##Method(JNIEnv *env, jclass cls, jmethodID methodID, ...))extern "C" { ResultType jni_CallStatic##Result##Method(JNIEnv
*env, jclass cls, jmethodID methodID, ...) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1539, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
\
1540\
1541 EntryProbe; \
1542 ResultType ret = 0;\
1543 DT_RETURN_MARK_FOR(Result, CallStatic##Result##Method, ResultType, \FP_SELECT_Result(, )
1544 (const ResultType&)ret)FP_SELECT_Result(, );\
1545\
1546 va_list args; \
1547 va_start(args, methodID)__builtin_va_start(args, methodID); \
1548 JavaValue jvalue(Tag); \
1549 JNI_ArgumentPusherVaArg ap(methodID, args); \
1550 jni_invoke_static(env, &jvalue, NULL__null, JNI_STATIC, methodID, &ap, CHECK_0__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0
); \
1551 va_end(args)__builtin_va_end(args); \
1552 ret = jvalue.get_##ResultType(); \
1553 return ret;\} }
1554JNI_END} }
1555
1556// the runtime type of subword integral basic types is integer
1557DEFINE_CALLSTATICMETHOD(jboolean, Boolean, T_BOOLEAN; extern "C" { jboolean jni_CallStaticBooleanMethod(JNIEnv *env
, jclass cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1559, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_BOOLEAN); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jboolean(); return
ret;} }
1558 , HOTSPOT_JNI_CALLSTATICBOOLEANMETHOD_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jboolean jni_CallStaticBooleanMethod(JNIEnv *env
, jclass cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1559, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_BOOLEAN); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jboolean(); return
ret;} }
1559 HOTSPOT_JNI_CALLSTATICBOOLEANMETHOD_RETURN(_ret_ref)); extern "C" { jboolean jni_CallStaticBooleanMethod(JNIEnv *env
, jclass cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1559, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_BOOLEAN); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jboolean(); return
ret;} }
;
1560DEFINE_CALLSTATICMETHOD(jbyte, Byte, T_BYTE; extern "C" { jbyte jni_CallStaticByteMethod(JNIEnv *env, jclass
cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1562, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_BYTE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jbyte(); return
ret;} }
1561 , HOTSPOT_JNI_CALLSTATICBYTEMETHOD_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jbyte jni_CallStaticByteMethod(JNIEnv *env, jclass
cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1562, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_BYTE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jbyte(); return
ret;} }
1562 HOTSPOT_JNI_CALLSTATICBYTEMETHOD_RETURN(_ret_ref)); extern "C" { jbyte jni_CallStaticByteMethod(JNIEnv *env, jclass
cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1562, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_BYTE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jbyte(); return
ret;} }
;
1563DEFINE_CALLSTATICMETHOD(jchar, Char, T_CHAR; extern "C" { jchar jni_CallStaticCharMethod(JNIEnv *env, jclass
cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1565, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_CHAR); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jchar(); return
ret;} }
1564 , HOTSPOT_JNI_CALLSTATICCHARMETHOD_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jchar jni_CallStaticCharMethod(JNIEnv *env, jclass
cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1565, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_CHAR); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jchar(); return
ret;} }
1565 HOTSPOT_JNI_CALLSTATICCHARMETHOD_RETURN(_ret_ref)); extern "C" { jchar jni_CallStaticCharMethod(JNIEnv *env, jclass
cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1565, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_CHAR); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jchar(); return
ret;} }
;
1566DEFINE_CALLSTATICMETHOD(jshort, Short, T_SHORT; extern "C" { jshort jni_CallStaticShortMethod(JNIEnv *env, jclass
cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1568, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_SHORT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jshort(); return
ret;} }
1567 , HOTSPOT_JNI_CALLSTATICSHORTMETHOD_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jshort jni_CallStaticShortMethod(JNIEnv *env, jclass
cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1568, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_SHORT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jshort(); return
ret;} }
1568 HOTSPOT_JNI_CALLSTATICSHORTMETHOD_RETURN(_ret_ref)); extern "C" { jshort jni_CallStaticShortMethod(JNIEnv *env, jclass
cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1568, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_SHORT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jshort(); return
ret;} }
;
1569
1570DEFINE_CALLSTATICMETHOD(jobject, Object, T_OBJECT; extern "C" { jobject jni_CallStaticObjectMethod(JNIEnv *env
, jclass cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1572, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_OBJECT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jobject(); return
ret;} }
1571 , HOTSPOT_JNI_CALLSTATICOBJECTMETHOD_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jobject jni_CallStaticObjectMethod(JNIEnv *env
, jclass cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1572, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_OBJECT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jobject(); return
ret;} }
1572 HOTSPOT_JNI_CALLSTATICOBJECTMETHOD_RETURN(_ret_ref)); extern "C" { jobject jni_CallStaticObjectMethod(JNIEnv *env
, jclass cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1572, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_OBJECT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jobject(); return
ret;} }
;
1573DEFINE_CALLSTATICMETHOD(jint, Int, T_INT; extern "C" { jint jni_CallStaticIntMethod(JNIEnv *env, jclass
cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1575, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_INT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jint(); return
ret;} }
1574 , HOTSPOT_JNI_CALLSTATICINTMETHOD_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jint jni_CallStaticIntMethod(JNIEnv *env, jclass
cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1575, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_INT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jint(); return
ret;} }
1575 HOTSPOT_JNI_CALLSTATICINTMETHOD_RETURN(_ret_ref)); extern "C" { jint jni_CallStaticIntMethod(JNIEnv *env, jclass
cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1575, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_INT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jint(); return
ret;} }
;
1576DEFINE_CALLSTATICMETHOD(jlong, Long, T_LONG; extern "C" { jlong jni_CallStaticLongMethod(JNIEnv *env, jclass
cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1578, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_LONG); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jlong(); return
ret;} }
1577 , HOTSPOT_JNI_CALLSTATICLONGMETHOD_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jlong jni_CallStaticLongMethod(JNIEnv *env, jclass
cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1578, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_LONG); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jlong(); return
ret;} }
1578 HOTSPOT_JNI_CALLSTATICLONGMETHOD_RETURN(_ret_ref)); extern "C" { jlong jni_CallStaticLongMethod(JNIEnv *env, jclass
cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1578, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_LONG); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jlong(); return
ret;} }
;
1579// Float and double probes don't return value because dtrace doesn't currently support it
1580DEFINE_CALLSTATICMETHOD(jfloat, Float, T_FLOAT; extern "C" { jfloat jni_CallStaticFloatMethod(JNIEnv *env, jclass
cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1582, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_FLOAT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jfloat(); return
ret;} }
1581 , HOTSPOT_JNI_CALLSTATICFLOATMETHOD_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jfloat jni_CallStaticFloatMethod(JNIEnv *env, jclass
cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1582, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_FLOAT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jfloat(); return
ret;} }
1582 HOTSPOT_JNI_CALLSTATICFLOATMETHOD_RETURN()); extern "C" { jfloat jni_CallStaticFloatMethod(JNIEnv *env, jclass
cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1582, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_FLOAT); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jfloat(); return
ret;} }
;
1583DEFINE_CALLSTATICMETHOD(jdouble, Double, T_DOUBLE; extern "C" { jdouble jni_CallStaticDoubleMethod(JNIEnv *env
, jclass cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1585, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_DOUBLE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jdouble(); return
ret;} }
1584 , HOTSPOT_JNI_CALLSTATICDOUBLEMETHOD_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jdouble jni_CallStaticDoubleMethod(JNIEnv *env
, jclass cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1585, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_DOUBLE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jdouble(); return
ret;} }
1585 HOTSPOT_JNI_CALLSTATICDOUBLEMETHOD_RETURN()); extern "C" { jdouble jni_CallStaticDoubleMethod(JNIEnv *env
, jclass cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1585, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret = 0; ; va_list args; __builtin_va_start
(args, methodID); JavaValue jvalue(T_DOUBLE); JNI_ArgumentPusherVaArg
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jdouble(); return
ret;} }
;
1586
1587#define DEFINE_CALLSTATICMETHODV(ResultType, Result, Tag \FP_SELECT_Result(, ); extern "C" { ResultType jni_CallStaticResultMethodV
(JNIEnv *env, jclass cls, jmethodID methodID, va_list args) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1588, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ResultType ret = 0; FP_SELECT_Result
(, ); JavaValue jvalue(Tag); JNI_ArgumentPusherVaArg ap(methodID
, args); Klass* k = java_lang_Class::as_Klass(JNIHandles::resolve_non_null
(cls)); k->initialize(__the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); jni_invoke_static(env, &jvalue, __null, JNI_STATIC,
methodID, &ap, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return 0; (void)(0); __builtin_va_end
(args); ret = jvalue.get_ResultType(); return ret;} }
1588 , EntryProbe, ResultProbe)FP_SELECT_Result(, ); extern "C" { ResultType jni_CallStaticResultMethodV
(JNIEnv *env, jclass cls, jmethodID methodID, va_list args) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1588, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ResultType ret = 0; FP_SELECT_Result
(, ); JavaValue jvalue(Tag); JNI_ArgumentPusherVaArg ap(methodID
, args); Klass* k = java_lang_Class::as_Klass(JNIHandles::resolve_non_null
(cls)); k->initialize(__the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); jni_invoke_static(env, &jvalue, __null, JNI_STATIC,
methodID, &ap, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return 0; (void)(0); __builtin_va_end
(args); ret = jvalue.get_ResultType(); return ret;} }
\
1589\
1590 DT_RETURN_MARK_DECL_FOR(Result, CallStatic##Result##MethodV, ResultType \FP_SELECT_Result(, )
1591 , ResultProbe)FP_SELECT_Result(, ); \extern "C" { ResultType jni_CallStatic##Result##MethodV(JNIEnv
*env, jclass cls, jmethodID methodID, va_list args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1594, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1592\extern "C" { ResultType jni_CallStatic##Result##MethodV(JNIEnv
*env, jclass cls, jmethodID methodID, va_list args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1594, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1593JNI_ENTRY(ResultType, \extern "C" { ResultType jni_CallStatic##Result##MethodV(JNIEnv
*env, jclass cls, jmethodID methodID, va_list args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1594, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1594 jni_CallStatic##Result##MethodV(JNIEnv *env, jclass cls, jmethodID methodID, va_list args))extern "C" { ResultType jni_CallStatic##Result##MethodV(JNIEnv
*env, jclass cls, jmethodID methodID, va_list args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1594, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
\
1595\
1596 EntryProbe; \
1597 ResultType ret = 0;\
1598 DT_RETURN_MARK_FOR(Result, CallStatic##Result##MethodV, ResultType, \FP_SELECT_Result(, )
1599 (const ResultType&)ret)FP_SELECT_Result(, );\
1600\
1601 JavaValue jvalue(Tag); \
1602 JNI_ArgumentPusherVaArg ap(methodID, args); \
1603 /* Make sure class is initialized before trying to invoke its method */ \
1604 Klass* k = java_lang_Class::as_Klass(JNIHandles::resolve_non_null(cls)); \
1605 k->initialize(CHECK_0__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0
); \
1606 jni_invoke_static(env, &jvalue, NULL__null, JNI_STATIC, methodID, &ap, CHECK_0__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0
); \
1607 va_end(args)__builtin_va_end(args); \
1608 ret = jvalue.get_##ResultType(); \
1609 return ret;\} }
1610JNI_END} }
1611
1612// the runtime type of subword integral basic types is integer
1613DEFINE_CALLSTATICMETHODV(jboolean, Boolean, T_BOOLEAN; extern "C" { jboolean jni_CallStaticBooleanMethodV(JNIEnv *
env, jclass cls, jmethodID methodID, va_list args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1615, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret = 0; ; JavaValue jvalue(T_BOOLEAN
); JNI_ArgumentPusherVaArg ap(methodID, args); Klass* k = java_lang_Class
::as_Klass(JNIHandles::resolve_non_null(cls)); k->initialize
(__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); jni_invoke_static(env, &jvalue,
__null, JNI_STATIC, methodID, &ap, __the_thread__); if (
(((ThreadShadow*)__the_thread__)->has_pending_exception())
) return 0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jboolean
(); return ret;} }
1614 , HOTSPOT_JNI_CALLSTATICBOOLEANMETHODV_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jboolean jni_CallStaticBooleanMethodV(JNIEnv *
env, jclass cls, jmethodID methodID, va_list args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1615, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret = 0; ; JavaValue jvalue(T_BOOLEAN
); JNI_ArgumentPusherVaArg ap(methodID, args); Klass* k = java_lang_Class
::as_Klass(JNIHandles::resolve_non_null(cls)); k->initialize
(__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); jni_invoke_static(env, &jvalue,
__null, JNI_STATIC, methodID, &ap, __the_thread__); if (
(((ThreadShadow*)__the_thread__)->has_pending_exception())
) return 0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jboolean
(); return ret;} }
1615 HOTSPOT_JNI_CALLSTATICBOOLEANMETHODV_RETURN(_ret_ref)); extern "C" { jboolean jni_CallStaticBooleanMethodV(JNIEnv *
env, jclass cls, jmethodID methodID, va_list args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1615, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret = 0; ; JavaValue jvalue(T_BOOLEAN
); JNI_ArgumentPusherVaArg ap(methodID, args); Klass* k = java_lang_Class
::as_Klass(JNIHandles::resolve_non_null(cls)); k->initialize
(__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); jni_invoke_static(env, &jvalue,
__null, JNI_STATIC, methodID, &ap, __the_thread__); if (
(((ThreadShadow*)__the_thread__)->has_pending_exception())
) return 0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jboolean
(); return ret;} }
;
1616DEFINE_CALLSTATICMETHODV(jbyte, Byte, T_BYTE; extern "C" { jbyte jni_CallStaticByteMethodV(JNIEnv *env, jclass
cls, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1618, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret = 0; ; JavaValue jvalue(T_BYTE); JNI_ArgumentPusherVaArg
ap(methodID, args); Klass* k = java_lang_Class::as_Klass(JNIHandles
::resolve_non_null(cls)); k->initialize(__the_thread__); if
((((ThreadShadow*)__the_thread__)->has_pending_exception(
))) return 0; (void)(0); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jbyte(); return
ret;} }
1617 , HOTSPOT_JNI_CALLSTATICBYTEMETHODV_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jbyte jni_CallStaticByteMethodV(JNIEnv *env, jclass
cls, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1618, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret = 0; ; JavaValue jvalue(T_BYTE); JNI_ArgumentPusherVaArg
ap(methodID, args); Klass* k = java_lang_Class::as_Klass(JNIHandles
::resolve_non_null(cls)); k->initialize(__the_thread__); if
((((ThreadShadow*)__the_thread__)->has_pending_exception(
))) return 0; (void)(0); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jbyte(); return
ret;} }
1618 HOTSPOT_JNI_CALLSTATICBYTEMETHODV_RETURN(_ret_ref)); extern "C" { jbyte jni_CallStaticByteMethodV(JNIEnv *env, jclass
cls, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1618, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret = 0; ; JavaValue jvalue(T_BYTE); JNI_ArgumentPusherVaArg
ap(methodID, args); Klass* k = java_lang_Class::as_Klass(JNIHandles
::resolve_non_null(cls)); k->initialize(__the_thread__); if
((((ThreadShadow*)__the_thread__)->has_pending_exception(
))) return 0; (void)(0); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jbyte(); return
ret;} }
;
1619DEFINE_CALLSTATICMETHODV(jchar, Char, T_CHAR; extern "C" { jchar jni_CallStaticCharMethodV(JNIEnv *env, jclass
cls, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1621, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret = 0; ; JavaValue jvalue(T_CHAR); JNI_ArgumentPusherVaArg
ap(methodID, args); Klass* k = java_lang_Class::as_Klass(JNIHandles
::resolve_non_null(cls)); k->initialize(__the_thread__); if
((((ThreadShadow*)__the_thread__)->has_pending_exception(
))) return 0; (void)(0); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jchar(); return
ret;} }
1620 , HOTSPOT_JNI_CALLSTATICCHARMETHODV_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jchar jni_CallStaticCharMethodV(JNIEnv *env, jclass
cls, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1621, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret = 0; ; JavaValue jvalue(T_CHAR); JNI_ArgumentPusherVaArg
ap(methodID, args); Klass* k = java_lang_Class::as_Klass(JNIHandles
::resolve_non_null(cls)); k->initialize(__the_thread__); if
((((ThreadShadow*)__the_thread__)->has_pending_exception(
))) return 0; (void)(0); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jchar(); return
ret;} }
1621 HOTSPOT_JNI_CALLSTATICCHARMETHODV_RETURN(_ret_ref)); extern "C" { jchar jni_CallStaticCharMethodV(JNIEnv *env, jclass
cls, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1621, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret = 0; ; JavaValue jvalue(T_CHAR); JNI_ArgumentPusherVaArg
ap(methodID, args); Klass* k = java_lang_Class::as_Klass(JNIHandles
::resolve_non_null(cls)); k->initialize(__the_thread__); if
((((ThreadShadow*)__the_thread__)->has_pending_exception(
))) return 0; (void)(0); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jchar(); return
ret;} }
;
1622DEFINE_CALLSTATICMETHODV(jshort, Short, T_SHORT; extern "C" { jshort jni_CallStaticShortMethodV(JNIEnv *env,
jclass cls, jmethodID methodID, va_list args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1624, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret = 0; ; JavaValue jvalue(T_SHORT)
; JNI_ArgumentPusherVaArg ap(methodID, args); Klass* k = java_lang_Class
::as_Klass(JNIHandles::resolve_non_null(cls)); k->initialize
(__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); jni_invoke_static(env, &jvalue,
__null, JNI_STATIC, methodID, &ap, __the_thread__); if (
(((ThreadShadow*)__the_thread__)->has_pending_exception())
) return 0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jshort
(); return ret;} }
1623 , HOTSPOT_JNI_CALLSTATICSHORTMETHODV_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jshort jni_CallStaticShortMethodV(JNIEnv *env,
jclass cls, jmethodID methodID, va_list args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1624, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret = 0; ; JavaValue jvalue(T_SHORT)
; JNI_ArgumentPusherVaArg ap(methodID, args); Klass* k = java_lang_Class
::as_Klass(JNIHandles::resolve_non_null(cls)); k->initialize
(__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); jni_invoke_static(env, &jvalue,
__null, JNI_STATIC, methodID, &ap, __the_thread__); if (
(((ThreadShadow*)__the_thread__)->has_pending_exception())
) return 0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jshort
(); return ret;} }
1624 HOTSPOT_JNI_CALLSTATICSHORTMETHODV_RETURN(_ret_ref)); extern "C" { jshort jni_CallStaticShortMethodV(JNIEnv *env,
jclass cls, jmethodID methodID, va_list args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1624, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret = 0; ; JavaValue jvalue(T_SHORT)
; JNI_ArgumentPusherVaArg ap(methodID, args); Klass* k = java_lang_Class
::as_Klass(JNIHandles::resolve_non_null(cls)); k->initialize
(__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); jni_invoke_static(env, &jvalue,
__null, JNI_STATIC, methodID, &ap, __the_thread__); if (
(((ThreadShadow*)__the_thread__)->has_pending_exception())
) return 0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jshort
(); return ret;} }
;
1625
1626DEFINE_CALLSTATICMETHODV(jobject, Object, T_OBJECT; extern "C" { jobject jni_CallStaticObjectMethodV(JNIEnv *env
, jclass cls, jmethodID methodID, va_list args) { JavaThread*
thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1628, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret = 0; ; JavaValue jvalue(T_OBJECT
); JNI_ArgumentPusherVaArg ap(methodID, args); Klass* k = java_lang_Class
::as_Klass(JNIHandles::resolve_non_null(cls)); k->initialize
(__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); jni_invoke_static(env, &jvalue,
__null, JNI_STATIC, methodID, &ap, __the_thread__); if (
(((ThreadShadow*)__the_thread__)->has_pending_exception())
) return 0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jobject
(); return ret;} }
1627 , HOTSPOT_JNI_CALLSTATICOBJECTMETHODV_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jobject jni_CallStaticObjectMethodV(JNIEnv *env
, jclass cls, jmethodID methodID, va_list args) { JavaThread*
thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1628, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret = 0; ; JavaValue jvalue(T_OBJECT
); JNI_ArgumentPusherVaArg ap(methodID, args); Klass* k = java_lang_Class
::as_Klass(JNIHandles::resolve_non_null(cls)); k->initialize
(__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); jni_invoke_static(env, &jvalue,
__null, JNI_STATIC, methodID, &ap, __the_thread__); if (
(((ThreadShadow*)__the_thread__)->has_pending_exception())
) return 0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jobject
(); return ret;} }
1628 HOTSPOT_JNI_CALLSTATICOBJECTMETHODV_RETURN(_ret_ref)); extern "C" { jobject jni_CallStaticObjectMethodV(JNIEnv *env
, jclass cls, jmethodID methodID, va_list args) { JavaThread*
thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1628, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret = 0; ; JavaValue jvalue(T_OBJECT
); JNI_ArgumentPusherVaArg ap(methodID, args); Klass* k = java_lang_Class
::as_Klass(JNIHandles::resolve_non_null(cls)); k->initialize
(__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); jni_invoke_static(env, &jvalue,
__null, JNI_STATIC, methodID, &ap, __the_thread__); if (
(((ThreadShadow*)__the_thread__)->has_pending_exception())
) return 0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jobject
(); return ret;} }
;
1629DEFINE_CALLSTATICMETHODV(jint, Int, T_INT; extern "C" { jint jni_CallStaticIntMethodV(JNIEnv *env, jclass
cls, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1631, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret = 0; ; JavaValue jvalue(T_INT); JNI_ArgumentPusherVaArg
ap(methodID, args); Klass* k = java_lang_Class::as_Klass(JNIHandles
::resolve_non_null(cls)); k->initialize(__the_thread__); if
((((ThreadShadow*)__the_thread__)->has_pending_exception(
))) return 0; (void)(0); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jint(); return
ret;} }
1630 , HOTSPOT_JNI_CALLSTATICINTMETHODV_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jint jni_CallStaticIntMethodV(JNIEnv *env, jclass
cls, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1631, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret = 0; ; JavaValue jvalue(T_INT); JNI_ArgumentPusherVaArg
ap(methodID, args); Klass* k = java_lang_Class::as_Klass(JNIHandles
::resolve_non_null(cls)); k->initialize(__the_thread__); if
((((ThreadShadow*)__the_thread__)->has_pending_exception(
))) return 0; (void)(0); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jint(); return
ret;} }
1631 HOTSPOT_JNI_CALLSTATICINTMETHODV_RETURN(_ret_ref)); extern "C" { jint jni_CallStaticIntMethodV(JNIEnv *env, jclass
cls, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1631, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret = 0; ; JavaValue jvalue(T_INT); JNI_ArgumentPusherVaArg
ap(methodID, args); Klass* k = java_lang_Class::as_Klass(JNIHandles
::resolve_non_null(cls)); k->initialize(__the_thread__); if
((((ThreadShadow*)__the_thread__)->has_pending_exception(
))) return 0; (void)(0); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jint(); return
ret;} }
;
1632DEFINE_CALLSTATICMETHODV(jlong, Long, T_LONG; extern "C" { jlong jni_CallStaticLongMethodV(JNIEnv *env, jclass
cls, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1634, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret = 0; ; JavaValue jvalue(T_LONG); JNI_ArgumentPusherVaArg
ap(methodID, args); Klass* k = java_lang_Class::as_Klass(JNIHandles
::resolve_non_null(cls)); k->initialize(__the_thread__); if
((((ThreadShadow*)__the_thread__)->has_pending_exception(
))) return 0; (void)(0); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jlong(); return
ret;} }
1633 , HOTSPOT_JNI_CALLSTATICLONGMETHODV_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jlong jni_CallStaticLongMethodV(JNIEnv *env, jclass
cls, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1634, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret = 0; ; JavaValue jvalue(T_LONG); JNI_ArgumentPusherVaArg
ap(methodID, args); Klass* k = java_lang_Class::as_Klass(JNIHandles
::resolve_non_null(cls)); k->initialize(__the_thread__); if
((((ThreadShadow*)__the_thread__)->has_pending_exception(
))) return 0; (void)(0); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jlong(); return
ret;} }
1634 HOTSPOT_JNI_CALLSTATICLONGMETHODV_RETURN(_ret_ref)); extern "C" { jlong jni_CallStaticLongMethodV(JNIEnv *env, jclass
cls, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1634, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret = 0; ; JavaValue jvalue(T_LONG); JNI_ArgumentPusherVaArg
ap(methodID, args); Klass* k = java_lang_Class::as_Klass(JNIHandles
::resolve_non_null(cls)); k->initialize(__the_thread__); if
((((ThreadShadow*)__the_thread__)->has_pending_exception(
))) return 0; (void)(0); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); __builtin_va_end(args); ret = jvalue.get_jlong(); return
ret;} }
;
1635// Float and double probes don't return value because dtrace doesn't currently support it
1636DEFINE_CALLSTATICMETHODV(jfloat, Float, T_FLOAT; extern "C" { jfloat jni_CallStaticFloatMethodV(JNIEnv *env,
jclass cls, jmethodID methodID, va_list args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1638, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret = 0; ; JavaValue jvalue(T_FLOAT)
; JNI_ArgumentPusherVaArg ap(methodID, args); Klass* k = java_lang_Class
::as_Klass(JNIHandles::resolve_non_null(cls)); k->initialize
(__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); jni_invoke_static(env, &jvalue,
__null, JNI_STATIC, methodID, &ap, __the_thread__); if (
(((ThreadShadow*)__the_thread__)->has_pending_exception())
) return 0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jfloat
(); return ret;} }
1637 , HOTSPOT_JNI_CALLSTATICFLOATMETHODV_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jfloat jni_CallStaticFloatMethodV(JNIEnv *env,
jclass cls, jmethodID methodID, va_list args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1638, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret = 0; ; JavaValue jvalue(T_FLOAT)
; JNI_ArgumentPusherVaArg ap(methodID, args); Klass* k = java_lang_Class
::as_Klass(JNIHandles::resolve_non_null(cls)); k->initialize
(__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); jni_invoke_static(env, &jvalue,
__null, JNI_STATIC, methodID, &ap, __the_thread__); if (
(((ThreadShadow*)__the_thread__)->has_pending_exception())
) return 0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jfloat
(); return ret;} }
1638 HOTSPOT_JNI_CALLSTATICFLOATMETHODV_RETURN()); extern "C" { jfloat jni_CallStaticFloatMethodV(JNIEnv *env,
jclass cls, jmethodID methodID, va_list args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1638, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret = 0; ; JavaValue jvalue(T_FLOAT)
; JNI_ArgumentPusherVaArg ap(methodID, args); Klass* k = java_lang_Class
::as_Klass(JNIHandles::resolve_non_null(cls)); k->initialize
(__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); jni_invoke_static(env, &jvalue,
__null, JNI_STATIC, methodID, &ap, __the_thread__); if (
(((ThreadShadow*)__the_thread__)->has_pending_exception())
) return 0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jfloat
(); return ret;} }
;
1639DEFINE_CALLSTATICMETHODV(jdouble, Double, T_DOUBLE; extern "C" { jdouble jni_CallStaticDoubleMethodV(JNIEnv *env
, jclass cls, jmethodID methodID, va_list args) { JavaThread*
thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1641, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret = 0; ; JavaValue jvalue(T_DOUBLE
); JNI_ArgumentPusherVaArg ap(methodID, args); Klass* k = java_lang_Class
::as_Klass(JNIHandles::resolve_non_null(cls)); k->initialize
(__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); jni_invoke_static(env, &jvalue,
__null, JNI_STATIC, methodID, &ap, __the_thread__); if (
(((ThreadShadow*)__the_thread__)->has_pending_exception())
) return 0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jdouble
(); return ret;} }
1640 , HOTSPOT_JNI_CALLSTATICDOUBLEMETHODV_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jdouble jni_CallStaticDoubleMethodV(JNIEnv *env
, jclass cls, jmethodID methodID, va_list args) { JavaThread*
thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1641, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret = 0; ; JavaValue jvalue(T_DOUBLE
); JNI_ArgumentPusherVaArg ap(methodID, args); Klass* k = java_lang_Class
::as_Klass(JNIHandles::resolve_non_null(cls)); k->initialize
(__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); jni_invoke_static(env, &jvalue,
__null, JNI_STATIC, methodID, &ap, __the_thread__); if (
(((ThreadShadow*)__the_thread__)->has_pending_exception())
) return 0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jdouble
(); return ret;} }
1641 HOTSPOT_JNI_CALLSTATICDOUBLEMETHODV_RETURN()); extern "C" { jdouble jni_CallStaticDoubleMethodV(JNIEnv *env
, jclass cls, jmethodID methodID, va_list args) { JavaThread*
thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1641, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret = 0; ; JavaValue jvalue(T_DOUBLE
); JNI_ArgumentPusherVaArg ap(methodID, args); Klass* k = java_lang_Class
::as_Klass(JNIHandles::resolve_non_null(cls)); k->initialize
(__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); jni_invoke_static(env, &jvalue,
__null, JNI_STATIC, methodID, &ap, __the_thread__); if (
(((ThreadShadow*)__the_thread__)->has_pending_exception())
) return 0; (void)(0); __builtin_va_end(args); ret = jvalue.get_jdouble
(); return ret;} }
;
1642
1643#define DEFINE_CALLSTATICMETHODA(ResultType, Result, Tag \FP_SELECT_Result(, ); extern "C" { ResultType jni_CallStaticResultMethodA
(JNIEnv *env, jclass cls, jmethodID methodID, const jvalue *args
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1644, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ResultType ret = 0; FP_SELECT_Result
(, ); JavaValue jvalue(Tag); JNI_ArgumentPusherArray ap(methodID
, args); jni_invoke_static(env, &jvalue, __null, JNI_STATIC
, methodID, &ap, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return 0; (void)(0); ret = jvalue
.get_ResultType(); return ret;} }
1644 , EntryProbe, ResultProbe)FP_SELECT_Result(, ); extern "C" { ResultType jni_CallStaticResultMethodA
(JNIEnv *env, jclass cls, jmethodID methodID, const jvalue *args
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1644, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ResultType ret = 0; FP_SELECT_Result
(, ); JavaValue jvalue(Tag); JNI_ArgumentPusherArray ap(methodID
, args); jni_invoke_static(env, &jvalue, __null, JNI_STATIC
, methodID, &ap, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return 0; (void)(0); ret = jvalue
.get_ResultType(); return ret;} }
\
1645\
1646 DT_RETURN_MARK_DECL_FOR(Result, CallStatic##Result##MethodA, ResultType \FP_SELECT_Result(, )
1647 , ResultProbe)FP_SELECT_Result(, ); \extern "C" { ResultType jni_CallStatic##Result##MethodA(JNIEnv
*env, jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1650, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1648\extern "C" { ResultType jni_CallStatic##Result##MethodA(JNIEnv
*env, jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1650, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1649JNI_ENTRY(ResultType, \extern "C" { ResultType jni_CallStatic##Result##MethodA(JNIEnv
*env, jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1650, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1650 jni_CallStatic##Result##MethodA(JNIEnv *env, jclass cls, jmethodID methodID, const jvalue *args))extern "C" { ResultType jni_CallStatic##Result##MethodA(JNIEnv
*env, jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1650, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
\
1651\
1652 EntryProbe; \
1653 ResultType ret = 0;\
1654 DT_RETURN_MARK_FOR(Result, CallStatic##Result##MethodA, ResultType, \FP_SELECT_Result(, )
1655 (const ResultType&)ret)FP_SELECT_Result(, );\
1656\
1657 JavaValue jvalue(Tag); \
1658 JNI_ArgumentPusherArray ap(methodID, args); \
1659 jni_invoke_static(env, &jvalue, NULL__null, JNI_STATIC, methodID, &ap, CHECK_0__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0
); \
1660 ret = jvalue.get_##ResultType(); \
1661 return ret;\} }
1662JNI_END} }
1663
1664// the runtime type of subword integral basic types is integer
1665DEFINE_CALLSTATICMETHODA(jboolean, Boolean, T_BOOLEAN; extern "C" { jboolean jni_CallStaticBooleanMethodA(JNIEnv *
env, jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1667, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret = 0; ; JavaValue jvalue(T_BOOLEAN
); JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_static
(env, &jvalue, __null, JNI_STATIC, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jboolean(); return
ret;} }
1666 , HOTSPOT_JNI_CALLSTATICBOOLEANMETHODA_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jboolean jni_CallStaticBooleanMethodA(JNIEnv *
env, jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1667, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret = 0; ; JavaValue jvalue(T_BOOLEAN
); JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_static
(env, &jvalue, __null, JNI_STATIC, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jboolean(); return
ret;} }
1667 HOTSPOT_JNI_CALLSTATICBOOLEANMETHODA_RETURN(_ret_ref)); extern "C" { jboolean jni_CallStaticBooleanMethodA(JNIEnv *
env, jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1667, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret = 0; ; JavaValue jvalue(T_BOOLEAN
); JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_static
(env, &jvalue, __null, JNI_STATIC, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jboolean(); return
ret;} }
;
1668DEFINE_CALLSTATICMETHODA(jbyte, Byte, T_BYTE; extern "C" { jbyte jni_CallStaticByteMethodA(JNIEnv *env, jclass
cls, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1670, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret = 0; ; JavaValue jvalue(T_BYTE); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jbyte(); return ret;} }
1669 , HOTSPOT_JNI_CALLSTATICBYTEMETHODA_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jbyte jni_CallStaticByteMethodA(JNIEnv *env, jclass
cls, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1670, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret = 0; ; JavaValue jvalue(T_BYTE); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jbyte(); return ret;} }
1670 HOTSPOT_JNI_CALLSTATICBYTEMETHODA_RETURN(_ret_ref)); extern "C" { jbyte jni_CallStaticByteMethodA(JNIEnv *env, jclass
cls, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1670, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret = 0; ; JavaValue jvalue(T_BYTE); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jbyte(); return ret;} }
;
1671DEFINE_CALLSTATICMETHODA(jchar, Char, T_CHAR; extern "C" { jchar jni_CallStaticCharMethodA(JNIEnv *env, jclass
cls, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1673, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret = 0; ; JavaValue jvalue(T_CHAR); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jchar(); return ret;} }
1672 , HOTSPOT_JNI_CALLSTATICCHARMETHODA_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jchar jni_CallStaticCharMethodA(JNIEnv *env, jclass
cls, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1673, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret = 0; ; JavaValue jvalue(T_CHAR); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jchar(); return ret;} }
1673 HOTSPOT_JNI_CALLSTATICCHARMETHODA_RETURN(_ret_ref)); extern "C" { jchar jni_CallStaticCharMethodA(JNIEnv *env, jclass
cls, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1673, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret = 0; ; JavaValue jvalue(T_CHAR); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jchar(); return ret;} }
;
1674DEFINE_CALLSTATICMETHODA(jshort, Short, T_SHORT; extern "C" { jshort jni_CallStaticShortMethodA(JNIEnv *env,
jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1676, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret = 0; ; JavaValue jvalue(T_SHORT)
; JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_static
(env, &jvalue, __null, JNI_STATIC, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jshort(); return ret
;} }
1675 , HOTSPOT_JNI_CALLSTATICSHORTMETHODA_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jshort jni_CallStaticShortMethodA(JNIEnv *env,
jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1676, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret = 0; ; JavaValue jvalue(T_SHORT)
; JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_static
(env, &jvalue, __null, JNI_STATIC, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jshort(); return ret
;} }
1676 HOTSPOT_JNI_CALLSTATICSHORTMETHODA_RETURN(_ret_ref)); extern "C" { jshort jni_CallStaticShortMethodA(JNIEnv *env,
jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1676, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret = 0; ; JavaValue jvalue(T_SHORT)
; JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_static
(env, &jvalue, __null, JNI_STATIC, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jshort(); return ret
;} }
;
1677
1678DEFINE_CALLSTATICMETHODA(jobject, Object, T_OBJECT; extern "C" { jobject jni_CallStaticObjectMethodA(JNIEnv *env
, jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1680, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret = 0; ; JavaValue jvalue(T_OBJECT
); JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_static
(env, &jvalue, __null, JNI_STATIC, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jobject(); return ret
;} }
1679 , HOTSPOT_JNI_CALLSTATICOBJECTMETHODA_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jobject jni_CallStaticObjectMethodA(JNIEnv *env
, jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1680, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret = 0; ; JavaValue jvalue(T_OBJECT
); JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_static
(env, &jvalue, __null, JNI_STATIC, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jobject(); return ret
;} }
1680 HOTSPOT_JNI_CALLSTATICOBJECTMETHODA_RETURN(_ret_ref)); extern "C" { jobject jni_CallStaticObjectMethodA(JNIEnv *env
, jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1680, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jobject ret = 0; ; JavaValue jvalue(T_OBJECT
); JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_static
(env, &jvalue, __null, JNI_STATIC, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jobject(); return ret
;} }
;
1681DEFINE_CALLSTATICMETHODA(jint, Int, T_INT; extern "C" { jint jni_CallStaticIntMethodA(JNIEnv *env, jclass
cls, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1683, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret = 0; ; JavaValue jvalue(T_INT); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jint(); return ret;} }
1682 , HOTSPOT_JNI_CALLSTATICINTMETHODA_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jint jni_CallStaticIntMethodA(JNIEnv *env, jclass
cls, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1683, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret = 0; ; JavaValue jvalue(T_INT); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jint(); return ret;} }
1683 HOTSPOT_JNI_CALLSTATICINTMETHODA_RETURN(_ret_ref)); extern "C" { jint jni_CallStaticIntMethodA(JNIEnv *env, jclass
cls, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1683, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret = 0; ; JavaValue jvalue(T_INT); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jint(); return ret;} }
;
1684DEFINE_CALLSTATICMETHODA(jlong, Long, T_LONG; extern "C" { jlong jni_CallStaticLongMethodA(JNIEnv *env, jclass
cls, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1686, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret = 0; ; JavaValue jvalue(T_LONG); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jlong(); return ret;} }
1685 , HOTSPOT_JNI_CALLSTATICLONGMETHODA_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jlong jni_CallStaticLongMethodA(JNIEnv *env, jclass
cls, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1686, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret = 0; ; JavaValue jvalue(T_LONG); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jlong(); return ret;} }
1686 HOTSPOT_JNI_CALLSTATICLONGMETHODA_RETURN(_ret_ref)); extern "C" { jlong jni_CallStaticLongMethodA(JNIEnv *env, jclass
cls, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1686, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret = 0; ; JavaValue jvalue(T_LONG); JNI_ArgumentPusherArray
ap(methodID, args); jni_invoke_static(env, &jvalue, __null
, JNI_STATIC, methodID, &ap, __the_thread__); if ((((ThreadShadow
*)__the_thread__)->has_pending_exception())) return 0; (void
)(0); ret = jvalue.get_jlong(); return ret;} }
;
1687// Float and double probes don't return value because dtrace doesn't currently support it
1688DEFINE_CALLSTATICMETHODA(jfloat, Float, T_FLOAT; extern "C" { jfloat jni_CallStaticFloatMethodA(JNIEnv *env,
jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1690, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret = 0; ; JavaValue jvalue(T_FLOAT)
; JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_static
(env, &jvalue, __null, JNI_STATIC, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jfloat(); return ret
;} }
1689 , HOTSPOT_JNI_CALLSTATICFLOATMETHODA_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jfloat jni_CallStaticFloatMethodA(JNIEnv *env,
jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1690, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret = 0; ; JavaValue jvalue(T_FLOAT)
; JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_static
(env, &jvalue, __null, JNI_STATIC, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jfloat(); return ret
;} }
1690 HOTSPOT_JNI_CALLSTATICFLOATMETHODA_RETURN()); extern "C" { jfloat jni_CallStaticFloatMethodA(JNIEnv *env,
jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1690, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret = 0; ; JavaValue jvalue(T_FLOAT)
; JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_static
(env, &jvalue, __null, JNI_STATIC, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jfloat(); return ret
;} }
;
1691DEFINE_CALLSTATICMETHODA(jdouble, Double, T_DOUBLE; extern "C" { jdouble jni_CallStaticDoubleMethodA(JNIEnv *env
, jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1693, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret = 0; ; JavaValue jvalue(T_DOUBLE
); JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_static
(env, &jvalue, __null, JNI_STATIC, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jdouble(); return ret
;} }
1692 , HOTSPOT_JNI_CALLSTATICDOUBLEMETHODA_ENTRY(env, cls, (uintptr_t)methodID),; extern "C" { jdouble jni_CallStaticDoubleMethodA(JNIEnv *env
, jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1693, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret = 0; ; JavaValue jvalue(T_DOUBLE
); JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_static
(env, &jvalue, __null, JNI_STATIC, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jdouble(); return ret
;} }
1693 HOTSPOT_JNI_CALLSTATICDOUBLEMETHODA_RETURN()); extern "C" { jdouble jni_CallStaticDoubleMethodA(JNIEnv *env
, jclass cls, jmethodID methodID, const jvalue *args) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1693, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret = 0; ; JavaValue jvalue(T_DOUBLE
); JNI_ArgumentPusherArray ap(methodID, args); jni_invoke_static
(env, &jvalue, __null, JNI_STATIC, methodID, &ap, __the_thread__
); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return 0; (void)(0); ret = jvalue.get_jdouble(); return ret
;} }
;
1694
1695DT_VOID_RETURN_MARK_DECL(CallStaticVoidMethod
1696 , HOTSPOT_JNI_CALLSTATICVOIDMETHOD_RETURN());
1697DT_VOID_RETURN_MARK_DECL(CallStaticVoidMethodV
1698 , HOTSPOT_JNI_CALLSTATICVOIDMETHODV_RETURN());
1699DT_VOID_RETURN_MARK_DECL(CallStaticVoidMethodA
1700 , HOTSPOT_JNI_CALLSTATICVOIDMETHODA_RETURN());
1701
1702JNI_ENTRY(void, jni_CallStaticVoidMethod(JNIEnv *env, jclass cls, jmethodID methodID, ...))extern "C" { void jni_CallStaticVoidMethod(JNIEnv *env, jclass
cls, jmethodID methodID, ...) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1702, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1703 HOTSPOT_JNI_CALLSTATICVOIDMETHOD_ENTRY(env, cls, (uintptr_t) methodID);
1704 DT_VOID_RETURN_MARK(CallStaticVoidMethod);
1705
1706 va_list args;
1707 va_start(args, methodID)__builtin_va_start(args, methodID);
1708 JavaValue jvalue(T_VOID);
1709 JNI_ArgumentPusherVaArg ap(methodID, args);
1710 jni_invoke_static(env, &jvalue, NULL__null, JNI_STATIC, methodID, &ap, CHECK__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return ; (void)(0
);
1711 va_end(args)__builtin_va_end(args);
1712JNI_END} }
1713
1714
1715JNI_ENTRY(void, jni_CallStaticVoidMethodV(JNIEnv *env, jclass cls, jmethodID methodID, va_list args))extern "C" { void jni_CallStaticVoidMethodV(JNIEnv *env, jclass
cls, jmethodID methodID, va_list args) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1715, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1716 HOTSPOT_JNI_CALLSTATICVOIDMETHODV_ENTRY(env, cls, (uintptr_t) methodID);
1717 DT_VOID_RETURN_MARK(CallStaticVoidMethodV);
1718
1719 JavaValue jvalue(T_VOID);
1720 JNI_ArgumentPusherVaArg ap(methodID, args);
1721 jni_invoke_static(env, &jvalue, NULL__null, JNI_STATIC, methodID, &ap, CHECK__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return ; (void)(0
);
1722JNI_END} }
1723
1724
1725JNI_ENTRY(void, jni_CallStaticVoidMethodA(JNIEnv *env, jclass cls, jmethodID methodID, const jvalue *args))extern "C" { void jni_CallStaticVoidMethodA(JNIEnv *env, jclass
cls, jmethodID methodID, const jvalue *args) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1725, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1726 HOTSPOT_JNI_CALLSTATICVOIDMETHODA_ENTRY(env, cls, (uintptr_t) methodID);
1727 DT_VOID_RETURN_MARK(CallStaticVoidMethodA);
1728
1729 JavaValue jvalue(T_VOID);
1730 JNI_ArgumentPusherArray ap(methodID, args);
1731 jni_invoke_static(env, &jvalue, NULL__null, JNI_STATIC, methodID, &ap, CHECK__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return ; (void)(0
);
1732JNI_END} }
1733
1734
1735//
1736// Accessing Fields
1737//
1738
1739
1740DT_RETURN_MARK_DECL(GetFieldID, jfieldID
1741 , HOTSPOT_JNI_GETFIELDID_RETURN((uintptr_t)_ret_ref));
1742
1743JNI_ENTRY(jfieldID, jni_GetFieldID(JNIEnv *env, jclass clazz,extern "C" { jfieldID jni_GetFieldID(JNIEnv *env, jclass clazz
, const char *name, const char *sig) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1744, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1744 const char *name, const char *sig))extern "C" { jfieldID jni_GetFieldID(JNIEnv *env, jclass clazz
, const char *name, const char *sig) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1744, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1745 HOTSPOT_JNI_GETFIELDID_ENTRY(env, clazz, (char *) name, (char *) sig);
1746 jfieldID ret = 0;
1747 DT_RETURN_MARK(GetFieldID, jfieldID, (const jfieldID&)ret);
1748
1749 Klass* k = java_lang_Class::as_Klass(JNIHandles::resolve_non_null(clazz));
1750
1751 // The class should have been loaded (we have an instance of the class
1752 // passed in) so the field and signature should already be in the symbol
1753 // table. If they're not there, the field doesn't exist.
1754 TempNewSymbol fieldname = SymbolTable::probe(name, (int)strlen(name));
1755 TempNewSymbol signame = SymbolTable::probe(sig, (int)strlen(sig));
1756 if (fieldname == NULL__null || signame == NULL__null) {
1757 ResourceMark rm;
1758 THROW_MSG_0(vmSymbols::java_lang_NoSuchFieldError(), err_msg("%s.%s %s", k->external_name(), name, sig)){ Exceptions::_throw_msg(__the_thread__, "/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1758, vmSymbols::java_lang_NoSuchFieldError(), err_msg("%s.%s %s"
, k->external_name(), name, sig)); return 0; }
;
1759 }
1760
1761 // Make sure class is initialized before handing id's out to fields
1762 k->initialize(CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
1763
1764 fieldDescriptor fd;
1765 if (!k->is_instance_klass() ||
1766 !InstanceKlass::cast(k)->find_field(fieldname, signame, false, &fd)) {
1767 ResourceMark rm;
1768 THROW_MSG_0(vmSymbols::java_lang_NoSuchFieldError(), err_msg("%s.%s %s", k->external_name(), name, sig)){ Exceptions::_throw_msg(__the_thread__, "/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1768, vmSymbols::java_lang_NoSuchFieldError(), err_msg("%s.%s %s"
, k->external_name(), name, sig)); return 0; }
;
1769 }
1770
1771 // A jfieldID for a non-static field is simply the offset of the field within the instanceOop
1772 // It may also have hash bits for k, if VerifyJNIFields is turned on.
1773 ret = jfieldIDWorkaround::to_instance_jfieldID(k, fd.offset());
1774 return ret;
1775JNI_END} }
1776
1777
1778JNI_ENTRY(jobject, jni_GetObjectField(JNIEnv *env, jobject obj, jfieldID fieldID))extern "C" { jobject jni_GetObjectField(JNIEnv *env, jobject obj
, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1778, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1779 HOTSPOT_JNI_GETOBJECTFIELD_ENTRY(env, obj, (uintptr_t) fieldID);
1780 oop o = JNIHandles::resolve_non_null(obj);
1781 Klass* k = o->klass();
1782 int offset = jfieldIDWorkaround::from_instance_jfieldID(k, fieldID);
1783 // Keep JVMTI addition small and only check enabled flag here.
1784 // jni_GetField_probe() assumes that is okay to create handles.
1785 if (JvmtiExport::should_post_field_access()) {
1786 o = JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false);
1787 }
1788 oop loaded_obj = HeapAccess<ON_UNKNOWN_OOP_REF>::oop_load_at(o, offset);
1789 jobject ret = JNIHandles::make_local(THREAD__the_thread__, loaded_obj);
1790 HOTSPOT_JNI_GETOBJECTFIELD_RETURN(ret);
1791 return ret;
1792JNI_END} }
1793
1794
1795
1796#define DEFINE_GETFIELD(Return,Fieldname,Result \FP_SELECT_Result(, ); extern "C" { Return jni_GetResultField(
JNIEnv *env, jobject obj, jfieldID fieldID) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1797, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); EntryProbe; Return ret
= 0; FP_SELECT_Result(, ); oop o = JNIHandles::resolve_non_null
(obj); Klass* k = o->klass(); int offset = jfieldIDWorkaround
::from_instance_jfieldID(k, fieldID); if (JvmtiExport::should_post_field_access
()) { o = JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID
, false); } ret = o->Fieldname_field(offset); return ret; }
}
1797 , EntryProbe, ReturnProbe)FP_SELECT_Result(, ); extern "C" { Return jni_GetResultField(
JNIEnv *env, jobject obj, jfieldID fieldID) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1797, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); EntryProbe; Return ret
= 0; FP_SELECT_Result(, ); oop o = JNIHandles::resolve_non_null
(obj); Klass* k = o->klass(); int offset = jfieldIDWorkaround
::from_instance_jfieldID(k, fieldID); if (JvmtiExport::should_post_field_access
()) { o = JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID
, false); } ret = o->Fieldname_field(offset); return ret; }
}
\
1798\
1799 DT_RETURN_MARK_DECL_FOR(Result, Get##Result##Field, Return \FP_SELECT_Result(, )
1800 , ReturnProbe)FP_SELECT_Result(, ); \extern "C" { Return jni_Get##Result##Field(JNIEnv *env, jobject
obj, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1802, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
1801\extern "C" { Return jni_Get##Result##Field(JNIEnv *env, jobject
obj, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1802, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
1802JNI_ENTRY_NO_PRESERVE(Return, jni_Get##Result##Field(JNIEnv *env, jobject obj, jfieldID fieldID))extern "C" { Return jni_Get##Result##Field(JNIEnv *env, jobject
obj, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1802, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
\
1803\
1804 EntryProbe; \
1805 Return ret = 0;\
1806 DT_RETURN_MARK_FOR(Result, Get##Result##Field, Return, (const Return&)ret)FP_SELECT_Result(, );\
1807\
1808 oop o = JNIHandles::resolve_non_null(obj); \
1809 Klass* k = o->klass(); \
1810 int offset = jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); \
1811 /* Keep JVMTI addition small and only check enabled flag here. */ \
1812 if (JvmtiExport::should_post_field_access()) { \
1813 o = JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false); \
1814 } \
1815 ret = o->Fieldname##_field(offset); \
1816 return ret; \} }
1817JNI_END} }
1818
1819DEFINE_GETFIELD(jboolean, bool, Boolean; extern "C" { jboolean jni_GetBooleanField(JNIEnv *env, jobject
obj, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1821, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jboolean ret = 0; ;
oop o = JNIHandles::resolve_non_null(obj); Klass* k = o->
klass(); int offset = jfieldIDWorkaround::from_instance_jfieldID
(k, fieldID); if (JvmtiExport::should_post_field_access()) { o
= JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID
, false); } ret = o->bool_field(offset); return ret; } }
1820 , HOTSPOT_JNI_GETBOOLEANFIELD_ENTRY(env, obj, (uintptr_t)fieldID),; extern "C" { jboolean jni_GetBooleanField(JNIEnv *env, jobject
obj, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1821, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jboolean ret = 0; ;
oop o = JNIHandles::resolve_non_null(obj); Klass* k = o->
klass(); int offset = jfieldIDWorkaround::from_instance_jfieldID
(k, fieldID); if (JvmtiExport::should_post_field_access()) { o
= JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID
, false); } ret = o->bool_field(offset); return ret; } }
1821 HOTSPOT_JNI_GETBOOLEANFIELD_RETURN(_ret_ref)); extern "C" { jboolean jni_GetBooleanField(JNIEnv *env, jobject
obj, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1821, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jboolean ret = 0; ;
oop o = JNIHandles::resolve_non_null(obj); Klass* k = o->
klass(); int offset = jfieldIDWorkaround::from_instance_jfieldID
(k, fieldID); if (JvmtiExport::should_post_field_access()) { o
= JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID
, false); } ret = o->bool_field(offset); return ret; } }
1822DEFINE_GETFIELD(jbyte, byte, Byte; extern "C" { jbyte jni_GetByteField(JNIEnv *env, jobject obj
, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1824, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jbyte ret = 0; ; oop
o = JNIHandles::resolve_non_null(obj); Klass* k = o->klass
(); int offset = jfieldIDWorkaround::from_instance_jfieldID(k
, fieldID); if (JvmtiExport::should_post_field_access()) { o =
JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false
); } ret = o->byte_field(offset); return ret; } }
1823 , HOTSPOT_JNI_GETBYTEFIELD_ENTRY(env, obj, (uintptr_t)fieldID),; extern "C" { jbyte jni_GetByteField(JNIEnv *env, jobject obj
, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1824, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jbyte ret = 0; ; oop
o = JNIHandles::resolve_non_null(obj); Klass* k = o->klass
(); int offset = jfieldIDWorkaround::from_instance_jfieldID(k
, fieldID); if (JvmtiExport::should_post_field_access()) { o =
JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false
); } ret = o->byte_field(offset); return ret; } }
1824 HOTSPOT_JNI_GETBYTEFIELD_RETURN(_ret_ref)); extern "C" { jbyte jni_GetByteField(JNIEnv *env, jobject obj
, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1824, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jbyte ret = 0; ; oop
o = JNIHandles::resolve_non_null(obj); Klass* k = o->klass
(); int offset = jfieldIDWorkaround::from_instance_jfieldID(k
, fieldID); if (JvmtiExport::should_post_field_access()) { o =
JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false
); } ret = o->byte_field(offset); return ret; } }
1825DEFINE_GETFIELD(jchar, char, Char; extern "C" { jchar jni_GetCharField(JNIEnv *env, jobject obj
, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1827, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jchar ret = 0; ; oop
o = JNIHandles::resolve_non_null(obj); Klass* k = o->klass
(); int offset = jfieldIDWorkaround::from_instance_jfieldID(k
, fieldID); if (JvmtiExport::should_post_field_access()) { o =
JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false
); } ret = o->char_field(offset); return ret; } }
1826 , HOTSPOT_JNI_GETCHARFIELD_ENTRY(env, obj, (uintptr_t)fieldID),; extern "C" { jchar jni_GetCharField(JNIEnv *env, jobject obj
, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1827, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jchar ret = 0; ; oop
o = JNIHandles::resolve_non_null(obj); Klass* k = o->klass
(); int offset = jfieldIDWorkaround::from_instance_jfieldID(k
, fieldID); if (JvmtiExport::should_post_field_access()) { o =
JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false
); } ret = o->char_field(offset); return ret; } }
1827 HOTSPOT_JNI_GETCHARFIELD_RETURN(_ret_ref)); extern "C" { jchar jni_GetCharField(JNIEnv *env, jobject obj
, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1827, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jchar ret = 0; ; oop
o = JNIHandles::resolve_non_null(obj); Klass* k = o->klass
(); int offset = jfieldIDWorkaround::from_instance_jfieldID(k
, fieldID); if (JvmtiExport::should_post_field_access()) { o =
JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false
); } ret = o->char_field(offset); return ret; } }
1828DEFINE_GETFIELD(jshort, short, Short; extern "C" { jshort jni_GetShortField(JNIEnv *env, jobject obj
, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1830, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jshort ret = 0; ; oop
o = JNIHandles::resolve_non_null(obj); Klass* k = o->klass
(); int offset = jfieldIDWorkaround::from_instance_jfieldID(k
, fieldID); if (JvmtiExport::should_post_field_access()) { o =
JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false
); } ret = o->short_field(offset); return ret; } }
1829 , HOTSPOT_JNI_GETSHORTFIELD_ENTRY(env, obj, (uintptr_t)fieldID),; extern "C" { jshort jni_GetShortField(JNIEnv *env, jobject obj
, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1830, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jshort ret = 0; ; oop
o = JNIHandles::resolve_non_null(obj); Klass* k = o->klass
(); int offset = jfieldIDWorkaround::from_instance_jfieldID(k
, fieldID); if (JvmtiExport::should_post_field_access()) { o =
JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false
); } ret = o->short_field(offset); return ret; } }
1830 HOTSPOT_JNI_GETSHORTFIELD_RETURN(_ret_ref)); extern "C" { jshort jni_GetShortField(JNIEnv *env, jobject obj
, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1830, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jshort ret = 0; ; oop
o = JNIHandles::resolve_non_null(obj); Klass* k = o->klass
(); int offset = jfieldIDWorkaround::from_instance_jfieldID(k
, fieldID); if (JvmtiExport::should_post_field_access()) { o =
JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false
); } ret = o->short_field(offset); return ret; } }
1831DEFINE_GETFIELD(jint, int, Int; extern "C" { jint jni_GetIntField(JNIEnv *env, jobject obj,
jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1833, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jint ret = 0; ; oop
o = JNIHandles::resolve_non_null(obj); Klass* k = o->klass
(); int offset = jfieldIDWorkaround::from_instance_jfieldID(k
, fieldID); if (JvmtiExport::should_post_field_access()) { o =
JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false
); } ret = o->int_field(offset); return ret; } }
1832 , HOTSPOT_JNI_GETINTFIELD_ENTRY(env, obj, (uintptr_t)fieldID),; extern "C" { jint jni_GetIntField(JNIEnv *env, jobject obj,
jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1833, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jint ret = 0; ; oop
o = JNIHandles::resolve_non_null(obj); Klass* k = o->klass
(); int offset = jfieldIDWorkaround::from_instance_jfieldID(k
, fieldID); if (JvmtiExport::should_post_field_access()) { o =
JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false
); } ret = o->int_field(offset); return ret; } }
1833 HOTSPOT_JNI_GETINTFIELD_RETURN(_ret_ref)); extern "C" { jint jni_GetIntField(JNIEnv *env, jobject obj,
jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1833, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jint ret = 0; ; oop
o = JNIHandles::resolve_non_null(obj); Klass* k = o->klass
(); int offset = jfieldIDWorkaround::from_instance_jfieldID(k
, fieldID); if (JvmtiExport::should_post_field_access()) { o =
JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false
); } ret = o->int_field(offset); return ret; } }
1834DEFINE_GETFIELD(jlong, long, Long; extern "C" { jlong jni_GetLongField(JNIEnv *env, jobject obj
, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1836, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jlong ret = 0; ; oop
o = JNIHandles::resolve_non_null(obj); Klass* k = o->klass
(); int offset = jfieldIDWorkaround::from_instance_jfieldID(k
, fieldID); if (JvmtiExport::should_post_field_access()) { o =
JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false
); } ret = o->long_field(offset); return ret; } }
1835 , HOTSPOT_JNI_GETLONGFIELD_ENTRY(env, obj, (uintptr_t)fieldID),; extern "C" { jlong jni_GetLongField(JNIEnv *env, jobject obj
, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1836, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jlong ret = 0; ; oop
o = JNIHandles::resolve_non_null(obj); Klass* k = o->klass
(); int offset = jfieldIDWorkaround::from_instance_jfieldID(k
, fieldID); if (JvmtiExport::should_post_field_access()) { o =
JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false
); } ret = o->long_field(offset); return ret; } }
1836 HOTSPOT_JNI_GETLONGFIELD_RETURN(_ret_ref)); extern "C" { jlong jni_GetLongField(JNIEnv *env, jobject obj
, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1836, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jlong ret = 0; ; oop
o = JNIHandles::resolve_non_null(obj); Klass* k = o->klass
(); int offset = jfieldIDWorkaround::from_instance_jfieldID(k
, fieldID); if (JvmtiExport::should_post_field_access()) { o =
JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false
); } ret = o->long_field(offset); return ret; } }
1837// Float and double probes don't return value because dtrace doesn't currently support it
1838DEFINE_GETFIELD(jfloat, float, Float; extern "C" { jfloat jni_GetFloatField(JNIEnv *env, jobject obj
, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1840, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jfloat ret = 0; ; oop
o = JNIHandles::resolve_non_null(obj); Klass* k = o->klass
(); int offset = jfieldIDWorkaround::from_instance_jfieldID(k
, fieldID); if (JvmtiExport::should_post_field_access()) { o =
JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false
); } ret = o->float_field(offset); return ret; } }
1839 , HOTSPOT_JNI_GETFLOATFIELD_ENTRY(env, obj, (uintptr_t)fieldID),; extern "C" { jfloat jni_GetFloatField(JNIEnv *env, jobject obj
, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1840, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jfloat ret = 0; ; oop
o = JNIHandles::resolve_non_null(obj); Klass* k = o->klass
(); int offset = jfieldIDWorkaround::from_instance_jfieldID(k
, fieldID); if (JvmtiExport::should_post_field_access()) { o =
JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false
); } ret = o->float_field(offset); return ret; } }
1840 HOTSPOT_JNI_GETFLOATFIELD_RETURN()); extern "C" { jfloat jni_GetFloatField(JNIEnv *env, jobject obj
, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1840, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jfloat ret = 0; ; oop
o = JNIHandles::resolve_non_null(obj); Klass* k = o->klass
(); int offset = jfieldIDWorkaround::from_instance_jfieldID(k
, fieldID); if (JvmtiExport::should_post_field_access()) { o =
JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false
); } ret = o->float_field(offset); return ret; } }
1841DEFINE_GETFIELD(jdouble, double, Double; extern "C" { jdouble jni_GetDoubleField(JNIEnv *env, jobject
obj, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1843, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jdouble ret = 0; ;
oop o = JNIHandles::resolve_non_null(obj); Klass* k = o->
klass(); int offset = jfieldIDWorkaround::from_instance_jfieldID
(k, fieldID); if (JvmtiExport::should_post_field_access()) { o
= JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID
, false); } ret = o->double_field(offset); return ret; } }
1842 , HOTSPOT_JNI_GETDOUBLEFIELD_ENTRY(env, obj, (uintptr_t)fieldID),; extern "C" { jdouble jni_GetDoubleField(JNIEnv *env, jobject
obj, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1843, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jdouble ret = 0; ;
oop o = JNIHandles::resolve_non_null(obj); Klass* k = o->
klass(); int offset = jfieldIDWorkaround::from_instance_jfieldID
(k, fieldID); if (JvmtiExport::should_post_field_access()) { o
= JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID
, false); } ret = o->double_field(offset); return ret; } }
1843 HOTSPOT_JNI_GETDOUBLEFIELD_RETURN()); extern "C" { jdouble jni_GetDoubleField(JNIEnv *env, jobject
obj, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1843, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; jdouble ret = 0; ;
oop o = JNIHandles::resolve_non_null(obj); Klass* k = o->
klass(); int offset = jfieldIDWorkaround::from_instance_jfieldID
(k, fieldID); if (JvmtiExport::should_post_field_access()) { o
= JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID
, false); } ret = o->double_field(offset); return ret; } }
1844
1845address jni_GetBooleanField_addr() {
1846 return (address)jni_GetBooleanField;
1847}
1848address jni_GetByteField_addr() {
1849 return (address)jni_GetByteField;
1850}
1851address jni_GetCharField_addr() {
1852 return (address)jni_GetCharField;
1853}
1854address jni_GetShortField_addr() {
1855 return (address)jni_GetShortField;
1856}
1857address jni_GetIntField_addr() {
1858 return (address)jni_GetIntField;
1859}
1860address jni_GetLongField_addr() {
1861 return (address)jni_GetLongField;
1862}
1863address jni_GetFloatField_addr() {
1864 return (address)jni_GetFloatField;
1865}
1866address jni_GetDoubleField_addr() {
1867 return (address)jni_GetDoubleField;
1868}
1869
1870JNI_ENTRY_NO_PRESERVE(void, jni_SetObjectField(JNIEnv *env, jobject obj, jfieldID fieldID, jobject value))extern "C" { void jni_SetObjectField(JNIEnv *env, jobject obj
, jfieldID fieldID, jobject value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1870, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
1871 HOTSPOT_JNI_SETOBJECTFIELD_ENTRY(env, obj, (uintptr_t) fieldID, value);
1872 oop o = JNIHandles::resolve_non_null(obj);
1873 Klass* k = o->klass();
1874 int offset = jfieldIDWorkaround::from_instance_jfieldID(k, fieldID);
1875 // Keep JVMTI addition small and only check enabled flag here.
1876 if (JvmtiExport::should_post_field_modification()) {
1877 jvalue field_value;
1878 field_value.l = value;
1879 o = JvmtiExport::jni_SetField_probe(thread, obj, o, k, fieldID, false, JVM_SIGNATURE_CLASS, (jvalue *)&field_value);
1880 }
1881 HeapAccess<ON_UNKNOWN_OOP_REF>::oop_store_at(o, offset, JNIHandles::resolve(value));
1882 HOTSPOT_JNI_SETOBJECTFIELD_RETURN();
1883JNI_END} }
1884
1885
1886#define DEFINE_SETFIELD(Argument,Fieldname,Result,SigType,unionType \extern "C" { void jni_SetResultField(JNIEnv *env, jobject obj
, jfieldID fieldID, Argument value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1887, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); EntryProbe; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.unionType = value; o = JvmtiExport::jni_SetField_probe
(thread, obj, o, k, fieldID, false, SigType, (jvalue *)&field_value
); } if (SigType == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean
)value) & 1; } o->Fieldname_field_put(offset, value); ReturnProbe
; } }
1887 , EntryProbe, ReturnProbe)extern "C" { void jni_SetResultField(JNIEnv *env, jobject obj
, jfieldID fieldID, Argument value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1887, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); EntryProbe; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.unionType = value; o = JvmtiExport::jni_SetField_probe
(thread, obj, o, k, fieldID, false, SigType, (jvalue *)&field_value
); } if (SigType == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean
)value) & 1; } o->Fieldname_field_put(offset, value); ReturnProbe
; } }
\extern "C" { void jni_Set##Result##Field(JNIEnv *env, jobject
obj, jfieldID fieldID, Argument value) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1889, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
1888\extern "C" { void jni_Set##Result##Field(JNIEnv *env, jobject
obj, jfieldID fieldID, Argument value) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1889, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
1889JNI_ENTRY_NO_PRESERVE(void, jni_Set##Result##Field(JNIEnv *env, jobject obj, jfieldID fieldID, Argument value))extern "C" { void jni_Set##Result##Field(JNIEnv *env, jobject
obj, jfieldID fieldID, Argument value) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1889, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
\
1890\
1891 EntryProbe; \
1892\
1893 oop o = JNIHandles::resolve_non_null(obj); \
1894 Klass* k = o->klass(); \
1895 int offset = jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); \
1896 /* Keep JVMTI addition small and only check enabled flag here. */ \
1897 if (JvmtiExport::should_post_field_modification()) { \
1898 jvalue field_value; \
1899 field_value.unionType = value; \
1900 o = JvmtiExport::jni_SetField_probe(thread, obj, o, k, fieldID, false, SigType, (jvalue *)&field_value); \
1901 } \
1902 if (SigType == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean)value) & 1; } \
1903 o->Fieldname##_field_put(offset, value); \
1904 ReturnProbe; \} }
1905JNI_END} }
1906
1907DEFINE_SETFIELD(jboolean, bool, Boolean, JVM_SIGNATURE_BOOLEAN, zextern "C" { void jni_SetBooleanField(JNIEnv *env, jobject obj
, jfieldID fieldID, jboolean value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1909, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.z = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_BOOLEAN, (jvalue
*)&field_value); } if (JVM_SIGNATURE_BOOLEAN == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->bool_field_put
(offset, value); ; } }
1908 , HOTSPOT_JNI_SETBOOLEANFIELD_ENTRY(env, obj, (uintptr_t)fieldID, value),extern "C" { void jni_SetBooleanField(JNIEnv *env, jobject obj
, jfieldID fieldID, jboolean value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1909, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.z = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_BOOLEAN, (jvalue
*)&field_value); } if (JVM_SIGNATURE_BOOLEAN == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->bool_field_put
(offset, value); ; } }
1909 HOTSPOT_JNI_SETBOOLEANFIELD_RETURN())extern "C" { void jni_SetBooleanField(JNIEnv *env, jobject obj
, jfieldID fieldID, jboolean value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1909, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.z = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_BOOLEAN, (jvalue
*)&field_value); } if (JVM_SIGNATURE_BOOLEAN == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->bool_field_put
(offset, value); ; } }
1910DEFINE_SETFIELD(jbyte, byte, Byte, JVM_SIGNATURE_BYTE, bextern "C" { void jni_SetByteField(JNIEnv *env, jobject obj, jfieldID
fieldID, jbyte value) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1912, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.b = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_BYTE, (jvalue
*)&field_value); } if (JVM_SIGNATURE_BYTE == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->byte_field_put
(offset, value); ; } }
1911 , HOTSPOT_JNI_SETBYTEFIELD_ENTRY(env, obj, (uintptr_t)fieldID, value),extern "C" { void jni_SetByteField(JNIEnv *env, jobject obj, jfieldID
fieldID, jbyte value) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1912, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.b = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_BYTE, (jvalue
*)&field_value); } if (JVM_SIGNATURE_BYTE == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->byte_field_put
(offset, value); ; } }
1912 HOTSPOT_JNI_SETBYTEFIELD_RETURN())extern "C" { void jni_SetByteField(JNIEnv *env, jobject obj, jfieldID
fieldID, jbyte value) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1912, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.b = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_BYTE, (jvalue
*)&field_value); } if (JVM_SIGNATURE_BYTE == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->byte_field_put
(offset, value); ; } }
1913DEFINE_SETFIELD(jchar, char, Char, JVM_SIGNATURE_CHAR, cextern "C" { void jni_SetCharField(JNIEnv *env, jobject obj, jfieldID
fieldID, jchar value) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1915, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.c = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_CHAR, (jvalue
*)&field_value); } if (JVM_SIGNATURE_CHAR == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->char_field_put
(offset, value); ; } }
1914 , HOTSPOT_JNI_SETCHARFIELD_ENTRY(env, obj, (uintptr_t)fieldID, value),extern "C" { void jni_SetCharField(JNIEnv *env, jobject obj, jfieldID
fieldID, jchar value) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1915, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.c = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_CHAR, (jvalue
*)&field_value); } if (JVM_SIGNATURE_CHAR == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->char_field_put
(offset, value); ; } }
1915 HOTSPOT_JNI_SETCHARFIELD_RETURN())extern "C" { void jni_SetCharField(JNIEnv *env, jobject obj, jfieldID
fieldID, jchar value) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1915, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.c = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_CHAR, (jvalue
*)&field_value); } if (JVM_SIGNATURE_CHAR == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->char_field_put
(offset, value); ; } }
1916DEFINE_SETFIELD(jshort, short, Short, JVM_SIGNATURE_SHORT, sextern "C" { void jni_SetShortField(JNIEnv *env, jobject obj,
jfieldID fieldID, jshort value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1918, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.s = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_SHORT, (jvalue
*)&field_value); } if (JVM_SIGNATURE_SHORT == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->short_field_put
(offset, value); ; } }
1917 , HOTSPOT_JNI_SETSHORTFIELD_ENTRY(env, obj, (uintptr_t)fieldID, value),extern "C" { void jni_SetShortField(JNIEnv *env, jobject obj,
jfieldID fieldID, jshort value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1918, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.s = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_SHORT, (jvalue
*)&field_value); } if (JVM_SIGNATURE_SHORT == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->short_field_put
(offset, value); ; } }
1918 HOTSPOT_JNI_SETSHORTFIELD_RETURN())extern "C" { void jni_SetShortField(JNIEnv *env, jobject obj,
jfieldID fieldID, jshort value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1918, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.s = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_SHORT, (jvalue
*)&field_value); } if (JVM_SIGNATURE_SHORT == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->short_field_put
(offset, value); ; } }
1919DEFINE_SETFIELD(jint, int, Int, JVM_SIGNATURE_INT, iextern "C" { void jni_SetIntField(JNIEnv *env, jobject obj, jfieldID
fieldID, jint value) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1921, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.i = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_INT, (jvalue
*)&field_value); } if (JVM_SIGNATURE_INT == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->int_field_put(
offset, value); ; } }
1920 , HOTSPOT_JNI_SETINTFIELD_ENTRY(env, obj, (uintptr_t)fieldID, value),extern "C" { void jni_SetIntField(JNIEnv *env, jobject obj, jfieldID
fieldID, jint value) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1921, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.i = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_INT, (jvalue
*)&field_value); } if (JVM_SIGNATURE_INT == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->int_field_put(
offset, value); ; } }
1921 HOTSPOT_JNI_SETINTFIELD_RETURN())extern "C" { void jni_SetIntField(JNIEnv *env, jobject obj, jfieldID
fieldID, jint value) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1921, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.i = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_INT, (jvalue
*)&field_value); } if (JVM_SIGNATURE_INT == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->int_field_put(
offset, value); ; } }
1922DEFINE_SETFIELD(jlong, long, Long, JVM_SIGNATURE_LONG, jextern "C" { void jni_SetLongField(JNIEnv *env, jobject obj, jfieldID
fieldID, jlong value) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1924, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.j = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_LONG, (jvalue
*)&field_value); } if (JVM_SIGNATURE_LONG == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->long_field_put
(offset, value); ; } }
1923 , HOTSPOT_JNI_SETLONGFIELD_ENTRY(env, obj, (uintptr_t)fieldID, value),extern "C" { void jni_SetLongField(JNIEnv *env, jobject obj, jfieldID
fieldID, jlong value) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1924, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.j = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_LONG, (jvalue
*)&field_value); } if (JVM_SIGNATURE_LONG == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->long_field_put
(offset, value); ; } }
1924 HOTSPOT_JNI_SETLONGFIELD_RETURN())extern "C" { void jni_SetLongField(JNIEnv *env, jobject obj, jfieldID
fieldID, jlong value) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1924, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.j = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_LONG, (jvalue
*)&field_value); } if (JVM_SIGNATURE_LONG == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->long_field_put
(offset, value); ; } }
1925// Float and double probes don't return value because dtrace doesn't currently support it
1926DEFINE_SETFIELD(jfloat, float, Float, JVM_SIGNATURE_FLOAT, fextern "C" { void jni_SetFloatField(JNIEnv *env, jobject obj,
jfieldID fieldID, jfloat value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1928, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.f = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_FLOAT, (jvalue
*)&field_value); } if (JVM_SIGNATURE_FLOAT == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->float_field_put
(offset, value); ; } }
1927 , HOTSPOT_JNI_SETFLOATFIELD_ENTRY(env, obj, (uintptr_t)fieldID),extern "C" { void jni_SetFloatField(JNIEnv *env, jobject obj,
jfieldID fieldID, jfloat value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1928, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.f = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_FLOAT, (jvalue
*)&field_value); } if (JVM_SIGNATURE_FLOAT == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->float_field_put
(offset, value); ; } }
1928 HOTSPOT_JNI_SETFLOATFIELD_RETURN())extern "C" { void jni_SetFloatField(JNIEnv *env, jobject obj,
jfieldID fieldID, jfloat value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1928, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.f = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_FLOAT, (jvalue
*)&field_value); } if (JVM_SIGNATURE_FLOAT == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->float_field_put
(offset, value); ; } }
1929DEFINE_SETFIELD(jdouble, double, Double, JVM_SIGNATURE_DOUBLE, dextern "C" { void jni_SetDoubleField(JNIEnv *env, jobject obj
, jfieldID fieldID, jdouble value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1931, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.d = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_DOUBLE, (jvalue
*)&field_value); } if (JVM_SIGNATURE_DOUBLE == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->double_field_put
(offset, value); ; } }
1930 , HOTSPOT_JNI_SETDOUBLEFIELD_ENTRY(env, obj, (uintptr_t)fieldID),extern "C" { void jni_SetDoubleField(JNIEnv *env, jobject obj
, jfieldID fieldID, jdouble value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1931, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.d = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_DOUBLE, (jvalue
*)&field_value); } if (JVM_SIGNATURE_DOUBLE == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->double_field_put
(offset, value); ; } }
1931 HOTSPOT_JNI_SETDOUBLEFIELD_RETURN())extern "C" { void jni_SetDoubleField(JNIEnv *env, jobject obj
, jfieldID fieldID, jdouble value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1931, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; oop o = JNIHandles
::resolve_non_null(obj); Klass* k = o->klass(); int offset
= jfieldIDWorkaround::from_instance_jfieldID(k, fieldID); if
(JvmtiExport::should_post_field_modification()) { jvalue field_value
; field_value.d = value; o = JvmtiExport::jni_SetField_probe(
thread, obj, o, k, fieldID, false, JVM_SIGNATURE_DOUBLE, (jvalue
*)&field_value); } if (JVM_SIGNATURE_DOUBLE == JVM_SIGNATURE_BOOLEAN
) { value = ((jboolean)value) & 1; } o->double_field_put
(offset, value); ; } }
1932
1933DT_RETURN_MARK_DECL(ToReflectedField, jobject
1934 , HOTSPOT_JNI_TOREFLECTEDFIELD_RETURN(_ret_ref));
1935
1936JNI_ENTRY(jobject, jni_ToReflectedField(JNIEnv *env, jclass cls, jfieldID fieldID, jboolean isStatic))extern "C" { jobject jni_ToReflectedField(JNIEnv *env, jclass
cls, jfieldID fieldID, jboolean isStatic) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1936, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1937 HOTSPOT_JNI_TOREFLECTEDFIELD_ENTRY(env, cls, (uintptr_t) fieldID, isStatic);
1938 jobject ret = NULL__null;
1939 DT_RETURN_MARK(ToReflectedField, jobject, (const jobject&)ret);
1940
1941 fieldDescriptor fd;
1942 bool found = false;
1943 Klass* k = java_lang_Class::as_Klass(JNIHandles::resolve_non_null(cls));
1944
1945 assert(jfieldIDWorkaround::is_static_jfieldID(fieldID) == (isStatic != 0), "invalid fieldID")do { if (!(jfieldIDWorkaround::is_static_jfieldID(fieldID) ==
(isStatic != 0))) { (*g_assert_poison) = 'X';; report_vm_error
("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1945, "assert(" "jfieldIDWorkaround::is_static_jfieldID(fieldID) == (isStatic != 0)"
") failed", "invalid fieldID"); ::breakpoint(); } } while (0
)
;
1946
1947 if (isStatic) {
1948 // Static field. The fieldID a JNIid specifying the field holder and the offset within the Klass*.
1949 JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID);
1950 assert(id->is_static_field_id(), "invalid static field id")do { if (!(id->is_static_field_id())) { (*g_assert_poison)
= 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1950, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0)
;
1951 found = id->find_local_field(&fd);
1952 } else {
1953 // Non-static field. The fieldID is really the offset of the field within the instanceOop.
1954 int offset = jfieldIDWorkaround::from_instance_jfieldID(k, fieldID);
1955 found = InstanceKlass::cast(k)->find_field_from_offset(offset, false, &fd);
1956 }
1957 assert(found, "bad fieldID passed into jni_ToReflectedField")do { if (!(found)) { (*g_assert_poison) = 'X';; report_vm_error
("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1957, "assert(" "found" ") failed", "bad fieldID passed into jni_ToReflectedField"
); ::breakpoint(); } } while (0)
;
1958 oop reflected = Reflection::new_field(&fd, CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
1959 ret = JNIHandles::make_local(THREAD__the_thread__, reflected);
1960 return ret;
1961JNI_END} }
1962
1963
1964//
1965// Accessing Static Fields
1966//
1967DT_RETURN_MARK_DECL(GetStaticFieldID, jfieldID
1968 , HOTSPOT_JNI_GETSTATICFIELDID_RETURN((uintptr_t)_ret_ref));
1969
1970JNI_ENTRY(jfieldID, jni_GetStaticFieldID(JNIEnv *env, jclass clazz,extern "C" { jfieldID jni_GetStaticFieldID(JNIEnv *env, jclass
clazz, const char *name, const char *sig) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1971, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1971 const char *name, const char *sig))extern "C" { jfieldID jni_GetStaticFieldID(JNIEnv *env, jclass
clazz, const char *name, const char *sig) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1971, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
1972 HOTSPOT_JNI_GETSTATICFIELDID_ENTRY(env, clazz, (char *) name, (char *) sig);
1973 jfieldID ret = NULL__null;
1974 DT_RETURN_MARK(GetStaticFieldID, jfieldID, (const jfieldID&)ret);
1975
1976 // The class should have been loaded (we have an instance of the class
1977 // passed in) so the field and signature should already be in the symbol
1978 // table. If they're not there, the field doesn't exist.
1979 TempNewSymbol fieldname = SymbolTable::probe(name, (int)strlen(name));
1980 TempNewSymbol signame = SymbolTable::probe(sig, (int)strlen(sig));
1981 if (fieldname == NULL__null || signame == NULL__null) {
1982 THROW_MSG_0(vmSymbols::java_lang_NoSuchFieldError(), (char*) name){ Exceptions::_throw_msg(__the_thread__, "/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1982, vmSymbols::java_lang_NoSuchFieldError(), (char*) name
); return 0; }
;
1983 }
1984 Klass* k = java_lang_Class::as_Klass(JNIHandles::resolve_non_null(clazz));
1985 // Make sure class is initialized before handing id's out to static fields
1986 k->initialize(CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
1987
1988 fieldDescriptor fd;
1989 if (!k->is_instance_klass() ||
1990 !InstanceKlass::cast(k)->find_field(fieldname, signame, true, &fd)) {
1991 THROW_MSG_0(vmSymbols::java_lang_NoSuchFieldError(), (char*) name){ Exceptions::_throw_msg(__the_thread__, "/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 1991, vmSymbols::java_lang_NoSuchFieldError(), (char*) name
); return 0; }
;
1992 }
1993
1994 // A jfieldID for a static field is a JNIid specifying the field holder and the offset within the Klass*
1995 JNIid* id = fd.field_holder()->jni_id_for(fd.offset());
1996 debug_only(id->set_is_static_field_id();)id->set_is_static_field_id();
1997
1998 debug_only(id->verify(fd.field_holder()))id->verify(fd.field_holder());
1999
2000 ret = jfieldIDWorkaround::to_static_jfieldID(id);
2001 return ret;
2002JNI_END} }
2003
2004
2005JNI_ENTRY(jobject, jni_GetStaticObjectField(JNIEnv *env, jclass clazz, jfieldID fieldID))extern "C" { jobject jni_GetStaticObjectField(JNIEnv *env, jclass
clazz, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2005, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2006 HOTSPOT_JNI_GETSTATICOBJECTFIELD_ENTRY(env, clazz, (uintptr_t) fieldID);
2007#if INCLUDE_JNI_CHECK1
2008 DEBUG_ONLY(Klass* param_k = jniCheck::validate_class(thread, clazz);)Klass* param_k = jniCheck::validate_class(thread, clazz);
2009#endif // INCLUDE_JNI_CHECK
2010 JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID);
2011 assert(id->is_static_field_id(), "invalid static field id")do { if (!(id->is_static_field_id())) { (*g_assert_poison)
= 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2011, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0)
;
2012 // Keep JVMTI addition small and only check enabled flag here.
2013 // jni_GetField_probe() assumes that is okay to create handles.
2014 if (JvmtiExport::should_post_field_access()) {
2015 JvmtiExport::jni_GetField_probe(thread, NULL__null, NULL__null, id->holder(), fieldID, true);
2016 }
2017 jobject ret = JNIHandles::make_local(THREAD__the_thread__, id->holder()->java_mirror()->obj_field(id->offset()));
2018 HOTSPOT_JNI_GETSTATICOBJECTFIELD_RETURN(ret);
2019 return ret;
2020JNI_END} }
2021
2022
2023#define DEFINE_GETSTATICFIELD(Return,Fieldname,Result \FP_SELECT_Result(, ); extern "C" { Return jni_GetStaticResultField
(JNIEnv *env, jclass clazz, jfieldID fieldID) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2024, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; Return ret = 0; FP_SELECT_Result(
, ); JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID
); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2024, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_access
()) { JvmtiExport::jni_GetField_probe(thread, __null, __null,
id->holder(), fieldID, true); } ret = id->holder()->
java_mirror()-> Fieldname_field (id->offset()); return ret
;} }
2024 , EntryProbe, ReturnProbe)FP_SELECT_Result(, ); extern "C" { Return jni_GetStaticResultField
(JNIEnv *env, jclass clazz, jfieldID fieldID) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2024, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; Return ret = 0; FP_SELECT_Result(
, ); JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID
); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2024, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_access
()) { JvmtiExport::jni_GetField_probe(thread, __null, __null,
id->holder(), fieldID, true); } ret = id->holder()->
java_mirror()-> Fieldname_field (id->offset()); return ret
;} }
\
2025\
2026 DT_RETURN_MARK_DECL_FOR(Result, GetStatic##Result##Field, Return \FP_SELECT_Result(, )
2027 , ReturnProbe)FP_SELECT_Result(, ); \extern "C" { Return jni_GetStatic##Result##Field(JNIEnv *env,
jclass clazz, jfieldID fieldID) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2029, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2028\extern "C" { Return jni_GetStatic##Result##Field(JNIEnv *env,
jclass clazz, jfieldID fieldID) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2029, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2029JNI_ENTRY(Return, jni_GetStatic##Result##Field(JNIEnv *env, jclass clazz, jfieldID fieldID))extern "C" { Return jni_GetStatic##Result##Field(JNIEnv *env,
jclass clazz, jfieldID fieldID) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2029, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
\
2030 EntryProbe; \
2031 Return ret = 0;\
2032 DT_RETURN_MARK_FOR(Result, GetStatic##Result##Field, Return, \FP_SELECT_Result(, )
2033 (const Return&)ret)FP_SELECT_Result(, );\
2034 JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID); \
2035 assert(id->is_static_field_id(), "invalid static field id")do { if (!(id->is_static_field_id())) { (*g_assert_poison)
= 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2035, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0)
; \
2036 /* Keep JVMTI addition small and only check enabled flag here. */ \
2037 /* jni_GetField_probe() assumes that is okay to create handles. */ \
2038 if (JvmtiExport::should_post_field_access()) { \
2039 JvmtiExport::jni_GetField_probe(thread, NULL__null, NULL__null, id->holder(), fieldID, true); \
2040 } \
2041 ret = id->holder()->java_mirror()-> Fieldname##_field (id->offset()); \
2042 return ret;\} }
2043JNI_END} }
2044
2045DEFINE_GETSTATICFIELD(jboolean, bool, Boolean; extern "C" { jboolean jni_GetStaticBooleanField(JNIEnv *env
, jclass clazz, jfieldID fieldID) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2046, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret = 0; ; JNIid* id = jfieldIDWorkaround
::from_static_jfieldID(fieldID); do { if (!(id->is_static_field_id
())) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2046, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_access
()) { JvmtiExport::jni_GetField_probe(thread, __null, __null,
id->holder(), fieldID, true); } ret = id->holder()->
java_mirror()-> bool_field (id->offset()); return ret;}
}
2046 , HOTSPOT_JNI_GETSTATICBOOLEANFIELD_ENTRY(env, clazz, (uintptr_t) fieldID), HOTSPOT_JNI_GETSTATICBOOLEANFIELD_RETURN(_ret_ref)); extern "C" { jboolean jni_GetStaticBooleanField(JNIEnv *env
, jclass clazz, jfieldID fieldID) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2046, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jboolean ret = 0; ; JNIid* id = jfieldIDWorkaround
::from_static_jfieldID(fieldID); do { if (!(id->is_static_field_id
())) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2046, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_access
()) { JvmtiExport::jni_GetField_probe(thread, __null, __null,
id->holder(), fieldID, true); } ret = id->holder()->
java_mirror()-> bool_field (id->offset()); return ret;}
}
2047DEFINE_GETSTATICFIELD(jbyte, byte, Byte; extern "C" { jbyte jni_GetStaticByteField(JNIEnv *env, jclass
clazz, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2048, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret = 0; ; JNIid* id = jfieldIDWorkaround
::from_static_jfieldID(fieldID); do { if (!(id->is_static_field_id
())) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2048, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_access
()) { JvmtiExport::jni_GetField_probe(thread, __null, __null,
id->holder(), fieldID, true); } ret = id->holder()->
java_mirror()-> byte_field (id->offset()); return ret;}
}
2048 , HOTSPOT_JNI_GETSTATICBYTEFIELD_ENTRY(env, clazz, (uintptr_t) fieldID), HOTSPOT_JNI_GETSTATICBYTEFIELD_RETURN(_ret_ref) ); extern "C" { jbyte jni_GetStaticByteField(JNIEnv *env, jclass
clazz, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2048, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyte ret = 0; ; JNIid* id = jfieldIDWorkaround
::from_static_jfieldID(fieldID); do { if (!(id->is_static_field_id
())) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2048, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_access
()) { JvmtiExport::jni_GetField_probe(thread, __null, __null,
id->holder(), fieldID, true); } ret = id->holder()->
java_mirror()-> byte_field (id->offset()); return ret;}
}
2049DEFINE_GETSTATICFIELD(jchar, char, Char; extern "C" { jchar jni_GetStaticCharField(JNIEnv *env, jclass
clazz, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2050, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret = 0; ; JNIid* id = jfieldIDWorkaround
::from_static_jfieldID(fieldID); do { if (!(id->is_static_field_id
())) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2050, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_access
()) { JvmtiExport::jni_GetField_probe(thread, __null, __null,
id->holder(), fieldID, true); } ret = id->holder()->
java_mirror()-> char_field (id->offset()); return ret;}
}
2050 , HOTSPOT_JNI_GETSTATICCHARFIELD_ENTRY(env, clazz, (uintptr_t) fieldID), HOTSPOT_JNI_GETSTATICCHARFIELD_RETURN(_ret_ref) ); extern "C" { jchar jni_GetStaticCharField(JNIEnv *env, jclass
clazz, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2050, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jchar ret = 0; ; JNIid* id = jfieldIDWorkaround
::from_static_jfieldID(fieldID); do { if (!(id->is_static_field_id
())) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2050, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_access
()) { JvmtiExport::jni_GetField_probe(thread, __null, __null,
id->holder(), fieldID, true); } ret = id->holder()->
java_mirror()-> char_field (id->offset()); return ret;}
}
2051DEFINE_GETSTATICFIELD(jshort, short, Short; extern "C" { jshort jni_GetStaticShortField(JNIEnv *env, jclass
clazz, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2052, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret = 0; ; JNIid* id = jfieldIDWorkaround
::from_static_jfieldID(fieldID); do { if (!(id->is_static_field_id
())) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2052, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_access
()) { JvmtiExport::jni_GetField_probe(thread, __null, __null,
id->holder(), fieldID, true); } ret = id->holder()->
java_mirror()-> short_field (id->offset()); return ret;
} }
2052 , HOTSPOT_JNI_GETSTATICSHORTFIELD_ENTRY(env, clazz, (uintptr_t) fieldID), HOTSPOT_JNI_GETSTATICSHORTFIELD_RETURN(_ret_ref) ); extern "C" { jshort jni_GetStaticShortField(JNIEnv *env, jclass
clazz, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2052, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshort ret = 0; ; JNIid* id = jfieldIDWorkaround
::from_static_jfieldID(fieldID); do { if (!(id->is_static_field_id
())) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2052, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_access
()) { JvmtiExport::jni_GetField_probe(thread, __null, __null,
id->holder(), fieldID, true); } ret = id->holder()->
java_mirror()-> short_field (id->offset()); return ret;
} }
2053DEFINE_GETSTATICFIELD(jint, int, Int; extern "C" { jint jni_GetStaticIntField(JNIEnv *env, jclass
clazz, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2054, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret = 0; ; JNIid* id = jfieldIDWorkaround
::from_static_jfieldID(fieldID); do { if (!(id->is_static_field_id
())) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2054, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_access
()) { JvmtiExport::jni_GetField_probe(thread, __null, __null,
id->holder(), fieldID, true); } ret = id->holder()->
java_mirror()-> int_field (id->offset()); return ret;} }
2054 , HOTSPOT_JNI_GETSTATICINTFIELD_ENTRY(env, clazz, (uintptr_t) fieldID), HOTSPOT_JNI_GETSTATICINTFIELD_RETURN(_ret_ref) ); extern "C" { jint jni_GetStaticIntField(JNIEnv *env, jclass
clazz, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2054, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jint ret = 0; ; JNIid* id = jfieldIDWorkaround
::from_static_jfieldID(fieldID); do { if (!(id->is_static_field_id
())) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2054, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_access
()) { JvmtiExport::jni_GetField_probe(thread, __null, __null,
id->holder(), fieldID, true); } ret = id->holder()->
java_mirror()-> int_field (id->offset()); return ret;} }
2055DEFINE_GETSTATICFIELD(jlong, long, Long; extern "C" { jlong jni_GetStaticLongField(JNIEnv *env, jclass
clazz, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2056, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret = 0; ; JNIid* id = jfieldIDWorkaround
::from_static_jfieldID(fieldID); do { if (!(id->is_static_field_id
())) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2056, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_access
()) { JvmtiExport::jni_GetField_probe(thread, __null, __null,
id->holder(), fieldID, true); } ret = id->holder()->
java_mirror()-> long_field (id->offset()); return ret;}
}
2056 , HOTSPOT_JNI_GETSTATICLONGFIELD_ENTRY(env, clazz, (uintptr_t) fieldID), HOTSPOT_JNI_GETSTATICLONGFIELD_RETURN(_ret_ref) ); extern "C" { jlong jni_GetStaticLongField(JNIEnv *env, jclass
clazz, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2056, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlong ret = 0; ; JNIid* id = jfieldIDWorkaround
::from_static_jfieldID(fieldID); do { if (!(id->is_static_field_id
())) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2056, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_access
()) { JvmtiExport::jni_GetField_probe(thread, __null, __null,
id->holder(), fieldID, true); } ret = id->holder()->
java_mirror()-> long_field (id->offset()); return ret;}
}
2057// Float and double probes don't return value because dtrace doesn't currently support it
2058DEFINE_GETSTATICFIELD(jfloat, float, Float; extern "C" { jfloat jni_GetStaticFloatField(JNIEnv *env, jclass
clazz, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2059, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret = 0; ; JNIid* id = jfieldIDWorkaround
::from_static_jfieldID(fieldID); do { if (!(id->is_static_field_id
())) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2059, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_access
()) { JvmtiExport::jni_GetField_probe(thread, __null, __null,
id->holder(), fieldID, true); } ret = id->holder()->
java_mirror()-> float_field (id->offset()); return ret;
} }
2059 , HOTSPOT_JNI_GETSTATICFLOATFIELD_ENTRY(env, clazz, (uintptr_t) fieldID), HOTSPOT_JNI_GETSTATICFLOATFIELD_RETURN() ); extern "C" { jfloat jni_GetStaticFloatField(JNIEnv *env, jclass
clazz, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2059, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloat ret = 0; ; JNIid* id = jfieldIDWorkaround
::from_static_jfieldID(fieldID); do { if (!(id->is_static_field_id
())) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2059, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_access
()) { JvmtiExport::jni_GetField_probe(thread, __null, __null,
id->holder(), fieldID, true); } ret = id->holder()->
java_mirror()-> float_field (id->offset()); return ret;
} }
2060DEFINE_GETSTATICFIELD(jdouble, double, Double; extern "C" { jdouble jni_GetStaticDoubleField(JNIEnv *env, jclass
clazz, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2061, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret = 0; ; JNIid* id = jfieldIDWorkaround
::from_static_jfieldID(fieldID); do { if (!(id->is_static_field_id
())) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2061, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_access
()) { JvmtiExport::jni_GetField_probe(thread, __null, __null,
id->holder(), fieldID, true); } ret = id->holder()->
java_mirror()-> double_field (id->offset()); return ret
;} }
2061 , HOTSPOT_JNI_GETSTATICDOUBLEFIELD_ENTRY(env, clazz, (uintptr_t) fieldID), HOTSPOT_JNI_GETSTATICDOUBLEFIELD_RETURN() ); extern "C" { jdouble jni_GetStaticDoubleField(JNIEnv *env, jclass
clazz, jfieldID fieldID) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2061, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdouble ret = 0; ; JNIid* id = jfieldIDWorkaround
::from_static_jfieldID(fieldID); do { if (!(id->is_static_field_id
())) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2061, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_access
()) { JvmtiExport::jni_GetField_probe(thread, __null, __null,
id->holder(), fieldID, true); } ret = id->holder()->
java_mirror()-> double_field (id->offset()); return ret
;} }
2062
2063JNI_ENTRY(void, jni_SetStaticObjectField(JNIEnv *env, jclass clazz, jfieldID fieldID, jobject value))extern "C" { void jni_SetStaticObjectField(JNIEnv *env, jclass
clazz, jfieldID fieldID, jobject value) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2063, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2064 HOTSPOT_JNI_SETSTATICOBJECTFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value);
2065 JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID);
2066 assert(id->is_static_field_id(), "invalid static field id")do { if (!(id->is_static_field_id())) { (*g_assert_poison)
= 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2066, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0)
;
2067 // Keep JVMTI addition small and only check enabled flag here.
2068 // jni_SetField_probe() assumes that is okay to create handles.
2069 if (JvmtiExport::should_post_field_modification()) {
2070 jvalue field_value;
2071 field_value.l = value;
2072 JvmtiExport::jni_SetField_probe(thread, NULL__null, NULL__null, id->holder(), fieldID, true, JVM_SIGNATURE_CLASS, (jvalue *)&field_value);
2073 }
2074 id->holder()->java_mirror()->obj_field_put(id->offset(), JNIHandles::resolve(value));
2075 HOTSPOT_JNI_SETSTATICOBJECTFIELD_RETURN();
2076JNI_END} }
2077
2078
2079
2080#define DEFINE_SETSTATICFIELD(Argument,Fieldname,Result,SigType,unionType \extern "C" { void jni_SetStaticResultField(JNIEnv *env, jclass
clazz, jfieldID fieldID, Argument value) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2081, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2081, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.unionType = value; JvmtiExport
::jni_SetField_probe(thread, __null, __null, id->holder(),
fieldID, true, SigType, (jvalue *)&field_value); } if (SigType
== JVM_SIGNATURE_BOOLEAN) { value = ((jboolean)value) & 1
; } id->holder()->java_mirror()-> Fieldname_field_put
(id->offset(), value); ReturnProbe;} }
2081 , EntryProbe, ReturnProbe)extern "C" { void jni_SetStaticResultField(JNIEnv *env, jclass
clazz, jfieldID fieldID, Argument value) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2081, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2081, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.unionType = value; JvmtiExport
::jni_SetField_probe(thread, __null, __null, id->holder(),
fieldID, true, SigType, (jvalue *)&field_value); } if (SigType
== JVM_SIGNATURE_BOOLEAN) { value = ((jboolean)value) & 1
; } id->holder()->java_mirror()-> Fieldname_field_put
(id->offset(), value); ReturnProbe;} }
\extern "C" { void jni_SetStatic##Result##Field(JNIEnv *env, jclass
clazz, jfieldID fieldID, Argument value) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2083, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2082\extern "C" { void jni_SetStatic##Result##Field(JNIEnv *env, jclass
clazz, jfieldID fieldID, Argument value) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2083, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2083JNI_ENTRY(void, jni_SetStatic##Result##Field(JNIEnv *env, jclass clazz, jfieldID fieldID, Argument value))extern "C" { void jni_SetStatic##Result##Field(JNIEnv *env, jclass
clazz, jfieldID fieldID, Argument value) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2083, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
\
2084 EntryProbe; \
2085\
2086 JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID); \
2087 assert(id->is_static_field_id(), "invalid static field id")do { if (!(id->is_static_field_id())) { (*g_assert_poison)
= 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2087, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0)
; \
2088 /* Keep JVMTI addition small and only check enabled flag here. */ \
2089 /* jni_SetField_probe() assumes that is okay to create handles. */ \
2090 if (JvmtiExport::should_post_field_modification()) { \
2091 jvalue field_value; \
2092 field_value.unionType = value; \
2093 JvmtiExport::jni_SetField_probe(thread, NULL__null, NULL__null, id->holder(), fieldID, true, SigType, (jvalue *)&field_value); \
2094 } \
2095 if (SigType == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean)value) & 1; } \
2096 id->holder()->java_mirror()-> Fieldname##_field_put (id->offset(), value); \
2097 ReturnProbe;\} }
2098JNI_END} }
2099
2100DEFINE_SETSTATICFIELD(jboolean, bool, Boolean, JVM_SIGNATURE_BOOLEAN, zextern "C" { void jni_SetStaticBooleanField(JNIEnv *env, jclass
clazz, jfieldID fieldID, jboolean value) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2102, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2102, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.z = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_BOOLEAN, (jvalue *)&field_value); }
if (JVM_SIGNATURE_BOOLEAN == JVM_SIGNATURE_BOOLEAN) { value =
((jboolean)value) & 1; } id->holder()->java_mirror
()-> bool_field_put (id->offset(), value); ;} }
2101 , HOTSPOT_JNI_SETSTATICBOOLEANFIELD_ENTRY(env, clazz, (uintptr_t)fieldID, value),extern "C" { void jni_SetStaticBooleanField(JNIEnv *env, jclass
clazz, jfieldID fieldID, jboolean value) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2102, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2102, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.z = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_BOOLEAN, (jvalue *)&field_value); }
if (JVM_SIGNATURE_BOOLEAN == JVM_SIGNATURE_BOOLEAN) { value =
((jboolean)value) & 1; } id->holder()->java_mirror
()-> bool_field_put (id->offset(), value); ;} }
2102 HOTSPOT_JNI_SETSTATICBOOLEANFIELD_RETURN())extern "C" { void jni_SetStaticBooleanField(JNIEnv *env, jclass
clazz, jfieldID fieldID, jboolean value) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2102, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2102, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.z = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_BOOLEAN, (jvalue *)&field_value); }
if (JVM_SIGNATURE_BOOLEAN == JVM_SIGNATURE_BOOLEAN) { value =
((jboolean)value) & 1; } id->holder()->java_mirror
()-> bool_field_put (id->offset(), value); ;} }
2103DEFINE_SETSTATICFIELD(jbyte, byte, Byte, JVM_SIGNATURE_BYTE, bextern "C" { void jni_SetStaticByteField(JNIEnv *env, jclass clazz
, jfieldID fieldID, jbyte value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2105, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2105, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.b = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_BYTE, (jvalue *)&field_value); } if
(JVM_SIGNATURE_BYTE == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean
)value) & 1; } id->holder()->java_mirror()-> byte_field_put
(id->offset(), value); ;} }
2104 , HOTSPOT_JNI_SETSTATICBYTEFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value),extern "C" { void jni_SetStaticByteField(JNIEnv *env, jclass clazz
, jfieldID fieldID, jbyte value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2105, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2105, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.b = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_BYTE, (jvalue *)&field_value); } if
(JVM_SIGNATURE_BYTE == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean
)value) & 1; } id->holder()->java_mirror()-> byte_field_put
(id->offset(), value); ;} }
2105 HOTSPOT_JNI_SETSTATICBYTEFIELD_RETURN())extern "C" { void jni_SetStaticByteField(JNIEnv *env, jclass clazz
, jfieldID fieldID, jbyte value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2105, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2105, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.b = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_BYTE, (jvalue *)&field_value); } if
(JVM_SIGNATURE_BYTE == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean
)value) & 1; } id->holder()->java_mirror()-> byte_field_put
(id->offset(), value); ;} }
2106DEFINE_SETSTATICFIELD(jchar, char, Char, JVM_SIGNATURE_CHAR, cextern "C" { void jni_SetStaticCharField(JNIEnv *env, jclass clazz
, jfieldID fieldID, jchar value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2108, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2108, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.c = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_CHAR, (jvalue *)&field_value); } if
(JVM_SIGNATURE_CHAR == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean
)value) & 1; } id->holder()->java_mirror()-> char_field_put
(id->offset(), value); ;} }
2107 , HOTSPOT_JNI_SETSTATICCHARFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value),extern "C" { void jni_SetStaticCharField(JNIEnv *env, jclass clazz
, jfieldID fieldID, jchar value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2108, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2108, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.c = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_CHAR, (jvalue *)&field_value); } if
(JVM_SIGNATURE_CHAR == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean
)value) & 1; } id->holder()->java_mirror()-> char_field_put
(id->offset(), value); ;} }
2108 HOTSPOT_JNI_SETSTATICCHARFIELD_RETURN())extern "C" { void jni_SetStaticCharField(JNIEnv *env, jclass clazz
, jfieldID fieldID, jchar value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2108, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2108, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.c = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_CHAR, (jvalue *)&field_value); } if
(JVM_SIGNATURE_CHAR == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean
)value) & 1; } id->holder()->java_mirror()-> char_field_put
(id->offset(), value); ;} }
2109DEFINE_SETSTATICFIELD(jshort, short, Short, JVM_SIGNATURE_SHORT, sextern "C" { void jni_SetStaticShortField(JNIEnv *env, jclass
clazz, jfieldID fieldID, jshort value) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2111, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2111, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.s = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_SHORT, (jvalue *)&field_value); } if
(JVM_SIGNATURE_SHORT == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean
)value) & 1; } id->holder()->java_mirror()-> short_field_put
(id->offset(), value); ;} }
2110 , HOTSPOT_JNI_SETSTATICSHORTFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value),extern "C" { void jni_SetStaticShortField(JNIEnv *env, jclass
clazz, jfieldID fieldID, jshort value) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2111, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2111, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.s = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_SHORT, (jvalue *)&field_value); } if
(JVM_SIGNATURE_SHORT == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean
)value) & 1; } id->holder()->java_mirror()-> short_field_put
(id->offset(), value); ;} }
2111 HOTSPOT_JNI_SETSTATICSHORTFIELD_RETURN())extern "C" { void jni_SetStaticShortField(JNIEnv *env, jclass
clazz, jfieldID fieldID, jshort value) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2111, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2111, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.s = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_SHORT, (jvalue *)&field_value); } if
(JVM_SIGNATURE_SHORT == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean
)value) & 1; } id->holder()->java_mirror()-> short_field_put
(id->offset(), value); ;} }
2112DEFINE_SETSTATICFIELD(jint, int, Int, JVM_SIGNATURE_INT, iextern "C" { void jni_SetStaticIntField(JNIEnv *env, jclass clazz
, jfieldID fieldID, jint value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2114, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2114, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.i = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_INT, (jvalue *)&field_value); } if (
JVM_SIGNATURE_INT == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean
)value) & 1; } id->holder()->java_mirror()-> int_field_put
(id->offset(), value); ;} }
2113 , HOTSPOT_JNI_SETSTATICINTFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value),extern "C" { void jni_SetStaticIntField(JNIEnv *env, jclass clazz
, jfieldID fieldID, jint value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2114, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2114, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.i = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_INT, (jvalue *)&field_value); } if (
JVM_SIGNATURE_INT == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean
)value) & 1; } id->holder()->java_mirror()-> int_field_put
(id->offset(), value); ;} }
2114 HOTSPOT_JNI_SETSTATICINTFIELD_RETURN())extern "C" { void jni_SetStaticIntField(JNIEnv *env, jclass clazz
, jfieldID fieldID, jint value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2114, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2114, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.i = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_INT, (jvalue *)&field_value); } if (
JVM_SIGNATURE_INT == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean
)value) & 1; } id->holder()->java_mirror()-> int_field_put
(id->offset(), value); ;} }
2115DEFINE_SETSTATICFIELD(jlong, long, Long, JVM_SIGNATURE_LONG, jextern "C" { void jni_SetStaticLongField(JNIEnv *env, jclass clazz
, jfieldID fieldID, jlong value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2117, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2117, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.j = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_LONG, (jvalue *)&field_value); } if
(JVM_SIGNATURE_LONG == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean
)value) & 1; } id->holder()->java_mirror()-> long_field_put
(id->offset(), value); ;} }
2116 , HOTSPOT_JNI_SETSTATICLONGFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value),extern "C" { void jni_SetStaticLongField(JNIEnv *env, jclass clazz
, jfieldID fieldID, jlong value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2117, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2117, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.j = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_LONG, (jvalue *)&field_value); } if
(JVM_SIGNATURE_LONG == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean
)value) & 1; } id->holder()->java_mirror()-> long_field_put
(id->offset(), value); ;} }
2117 HOTSPOT_JNI_SETSTATICLONGFIELD_RETURN())extern "C" { void jni_SetStaticLongField(JNIEnv *env, jclass clazz
, jfieldID fieldID, jlong value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2117, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2117, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.j = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_LONG, (jvalue *)&field_value); } if
(JVM_SIGNATURE_LONG == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean
)value) & 1; } id->holder()->java_mirror()-> long_field_put
(id->offset(), value); ;} }
2118// Float and double probes don't return value because dtrace doesn't currently support it
2119DEFINE_SETSTATICFIELD(jfloat, float, Float, JVM_SIGNATURE_FLOAT, fextern "C" { void jni_SetStaticFloatField(JNIEnv *env, jclass
clazz, jfieldID fieldID, jfloat value) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2121, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2121, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.f = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_FLOAT, (jvalue *)&field_value); } if
(JVM_SIGNATURE_FLOAT == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean
)value) & 1; } id->holder()->java_mirror()-> float_field_put
(id->offset(), value); ;} }
2120 , HOTSPOT_JNI_SETSTATICFLOATFIELD_ENTRY(env, clazz, (uintptr_t) fieldID),extern "C" { void jni_SetStaticFloatField(JNIEnv *env, jclass
clazz, jfieldID fieldID, jfloat value) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2121, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2121, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.f = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_FLOAT, (jvalue *)&field_value); } if
(JVM_SIGNATURE_FLOAT == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean
)value) & 1; } id->holder()->java_mirror()-> float_field_put
(id->offset(), value); ;} }
2121 HOTSPOT_JNI_SETSTATICFLOATFIELD_RETURN())extern "C" { void jni_SetStaticFloatField(JNIEnv *env, jclass
clazz, jfieldID fieldID, jfloat value) { JavaThread* thread=
JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2121, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2121, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.f = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_FLOAT, (jvalue *)&field_value); } if
(JVM_SIGNATURE_FLOAT == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean
)value) & 1; } id->holder()->java_mirror()-> float_field_put
(id->offset(), value); ;} }
2122DEFINE_SETSTATICFIELD(jdouble, double, Double, JVM_SIGNATURE_DOUBLE, dextern "C" { void jni_SetStaticDoubleField(JNIEnv *env, jclass
clazz, jfieldID fieldID, jdouble value) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2124, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2124, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.d = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_DOUBLE, (jvalue *)&field_value); } if
(JVM_SIGNATURE_DOUBLE == JVM_SIGNATURE_BOOLEAN) { value = ((
jboolean)value) & 1; } id->holder()->java_mirror()->
double_field_put (id->offset(), value); ;} }
2123 , HOTSPOT_JNI_SETSTATICDOUBLEFIELD_ENTRY(env, clazz, (uintptr_t) fieldID),extern "C" { void jni_SetStaticDoubleField(JNIEnv *env, jclass
clazz, jfieldID fieldID, jdouble value) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2124, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2124, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.d = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_DOUBLE, (jvalue *)&field_value); } if
(JVM_SIGNATURE_DOUBLE == JVM_SIGNATURE_BOOLEAN) { value = ((
jboolean)value) & 1; } id->holder()->java_mirror()->
double_field_put (id->offset(), value); ;} }
2124 HOTSPOT_JNI_SETSTATICDOUBLEFIELD_RETURN())extern "C" { void jni_SetStaticDoubleField(JNIEnv *env, jclass
clazz, jfieldID fieldID, jdouble value) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2124, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; JNIid* id = jfieldIDWorkaround::from_static_jfieldID
(fieldID); do { if (!(id->is_static_field_id())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2124, "assert(" "id->is_static_field_id()" ") failed", "invalid static field id"
); ::breakpoint(); } } while (0); if (JvmtiExport::should_post_field_modification
()) { jvalue field_value; field_value.d = value; JvmtiExport::
jni_SetField_probe(thread, __null, __null, id->holder(), fieldID
, true, JVM_SIGNATURE_DOUBLE, (jvalue *)&field_value); } if
(JVM_SIGNATURE_DOUBLE == JVM_SIGNATURE_BOOLEAN) { value = ((
jboolean)value) & 1; } id->holder()->java_mirror()->
double_field_put (id->offset(), value); ;} }
2125
2126//
2127// String Operations
2128//
2129
2130// Unicode Interface
2131
2132DT_RETURN_MARK_DECL(NewString, jstring
2133 , HOTSPOT_JNI_NEWSTRING_RETURN(_ret_ref));
2134
2135JNI_ENTRY(jstring, jni_NewString(JNIEnv *env, const jchar *unicodeChars, jsize len))extern "C" { jstring jni_NewString(JNIEnv *env, const jchar *
unicodeChars, jsize len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2135, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2136 HOTSPOT_JNI_NEWSTRING_ENTRY(env, (uint16_t *) unicodeChars, len);
2137 jstring ret = NULL__null;
2138 DT_RETURN_MARK(NewString, jstring, (const jstring&)ret);
2139 oop string=java_lang_String::create_oop_from_unicode((jchar*) unicodeChars, len, CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
2140 ret = (jstring) JNIHandles::make_local(THREAD__the_thread__, string);
2141 return ret;
2142JNI_END} }
2143
2144
2145JNI_ENTRY_NO_PRESERVE(jsize, jni_GetStringLength(JNIEnv *env, jstring string))extern "C" { jsize jni_GetStringLength(JNIEnv *env, jstring string
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2145, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
2146 HOTSPOT_JNI_GETSTRINGLENGTH_ENTRY(env, string);
2147 jsize ret = 0;
2148 oop s = JNIHandles::resolve_non_null(string);
2149 ret = java_lang_String::length(s);
2150 HOTSPOT_JNI_GETSTRINGLENGTH_RETURN(ret);
2151 return ret;
2152JNI_END} }
2153
2154
2155JNI_ENTRY_NO_PRESERVE(const jchar*, jni_GetStringChars(extern "C" { const jchar* jni_GetStringChars( JNIEnv *env, jstring
string, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2156, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
2156 JNIEnv *env, jstring string, jboolean *isCopy))extern "C" { const jchar* jni_GetStringChars( JNIEnv *env, jstring
string, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2156, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
2157 HOTSPOT_JNI_GETSTRINGCHARS_ENTRY(env, string, (uintptr_t *) isCopy);
2158 jchar* buf = NULL__null;
2159 oop s = JNIHandles::resolve_non_null(string);
2160 typeArrayOop s_value = java_lang_String::value(s);
2161 if (s_value != NULL__null) {
2162 int s_len = java_lang_String::length(s, s_value);
2163 bool is_latin1 = java_lang_String::is_latin1(s);
2164 buf = NEW_C_HEAP_ARRAY_RETURN_NULL(jchar, s_len + 1, mtInternal)(jchar*) (AllocateHeap(((s_len + 1)) * sizeof(jchar), mtInternal
, AllocFailStrategy::RETURN_NULL))
; // add one for zero termination
2165 /* JNI Specification states return NULL on OOM */
2166 if (buf != NULL__null) {
2167 if (s_len > 0) {
2168 if (!is_latin1) {
2169 ArrayAccess<>::arraycopy_to_native(s_value, (size_t) typeArrayOopDesc::element_offset<jchar>(0),
2170 buf, s_len);
2171 } else {
2172 for (int i = 0; i < s_len; i++) {
2173 buf[i] = ((jchar) s_value->byte_at(i)) & 0xff;
2174 }
2175 }
2176 }
2177 buf[s_len] = 0;
2178 //%note jni_5
2179 if (isCopy != NULL__null) {
2180 *isCopy = JNI_TRUE1;
2181 }
2182 }
2183 }
2184 HOTSPOT_JNI_GETSTRINGCHARS_RETURN(buf);
2185 return buf;
2186JNI_END} }
2187
2188
2189JNI_ENTRY_NO_PRESERVE(void, jni_ReleaseStringChars(JNIEnv *env, jstring str, const jchar *chars))extern "C" { void jni_ReleaseStringChars(JNIEnv *env, jstring
str, const jchar *chars) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2189, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
2190 HOTSPOT_JNI_RELEASESTRINGCHARS_ENTRY(env, str, (uint16_t *) chars);
2191 //%note jni_6
2192 if (chars != NULL__null) {
2193 // Since String objects are supposed to be immutable, don't copy any
2194 // new data back. A bad user will have to go after the char array.
2195 FreeHeap((void*) chars);
2196 }
2197 HOTSPOT_JNI_RELEASESTRINGCHARS_RETURN();
2198JNI_END} }
2199
2200
2201// UTF Interface
2202
2203DT_RETURN_MARK_DECL(NewStringUTF, jstring
2204 , HOTSPOT_JNI_NEWSTRINGUTF_RETURN(_ret_ref));
2205
2206JNI_ENTRY(jstring, jni_NewStringUTF(JNIEnv *env, const char *bytes))extern "C" { jstring jni_NewStringUTF(JNIEnv *env, const char
*bytes) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2206, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2207 HOTSPOT_JNI_NEWSTRINGUTF_ENTRY(env, (char *) bytes);
2208 jstring ret;
2209 DT_RETURN_MARK(NewStringUTF, jstring, (const jstring&)ret);
2210
2211 oop result = java_lang_String::create_oop_from_str((char*) bytes, CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
2212 ret = (jstring) JNIHandles::make_local(THREAD__the_thread__, result);
2213 return ret;
2214JNI_END} }
2215
2216
2217JNI_ENTRY(jsize, jni_GetStringUTFLength(JNIEnv *env, jstring string))extern "C" { jsize jni_GetStringUTFLength(JNIEnv *env, jstring
string) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2217, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2218 HOTSPOT_JNI_GETSTRINGUTFLENGTH_ENTRY(env, string);
2219 oop java_string = JNIHandles::resolve_non_null(string);
2220 jsize ret = java_lang_String::utf8_length(java_string);
2221 HOTSPOT_JNI_GETSTRINGUTFLENGTH_RETURN(ret);
2222 return ret;
2223JNI_END} }
2224
2225
2226JNI_ENTRY(const char*, jni_GetStringUTFChars(JNIEnv *env, jstring string, jboolean *isCopy))extern "C" { const char* jni_GetStringUTFChars(JNIEnv *env, jstring
string, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2226, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2227 HOTSPOT_JNI_GETSTRINGUTFCHARS_ENTRY(env, string, (uintptr_t *) isCopy);
2228 char* result = NULL__null;
2229 oop java_string = JNIHandles::resolve_non_null(string);
2230 typeArrayOop s_value = java_lang_String::value(java_string);
2231 if (s_value != NULL__null) {
2232 size_t length = java_lang_String::utf8_length(java_string, s_value);
2233 /* JNI Specification states return NULL on OOM */
2234 result = AllocateHeap(length + 1, mtInternal, 0, AllocFailStrategy::RETURN_NULL);
2235 if (result != NULL__null) {
2236 java_lang_String::as_utf8_string(java_string, s_value, result, (int) length + 1);
2237 if (isCopy != NULL__null) {
2238 *isCopy = JNI_TRUE1;
2239 }
2240 }
2241 }
2242 HOTSPOT_JNI_GETSTRINGUTFCHARS_RETURN(result);
2243 return result;
2244JNI_END} }
2245
2246
2247JNI_LEAF(void, jni_ReleaseStringUTFChars(JNIEnv *env, jstring str, const char *chars))extern "C" { void jni_ReleaseStringUTFChars(JNIEnv *env, jstring
str, const char *chars) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2247, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); NoHandleMark __hm; ; os::verify_stack_alignment
();
2248 HOTSPOT_JNI_RELEASESTRINGUTFCHARS_ENTRY(env, str, (char *) chars);
2249 if (chars != NULL__null) {
2250 FreeHeap((char*) chars);
2251 }
2252HOTSPOT_JNI_RELEASESTRINGUTFCHARS_RETURN();
2253JNI_END} }
2254
2255
2256JNI_ENTRY_NO_PRESERVE(jsize, jni_GetArrayLength(JNIEnv *env, jarray array))extern "C" { jsize jni_GetArrayLength(JNIEnv *env, jarray array
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2256, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
2257 HOTSPOT_JNI_GETARRAYLENGTH_ENTRY(env, array);
2258 arrayOop a = arrayOop(JNIHandles::resolve_non_null(array));
2259 assert(a->is_array(), "must be array")do { if (!(a->is_array())) { (*g_assert_poison) = 'X';; report_vm_error
("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2259, "assert(" "a->is_array()" ") failed", "must be array"
); ::breakpoint(); } } while (0)
;
2260 jsize ret = a->length();
2261 HOTSPOT_JNI_GETARRAYLENGTH_RETURN(ret);
2262 return ret;
2263JNI_END} }
2264
2265
2266//
2267// Object Array Operations
2268//
2269
2270DT_RETURN_MARK_DECL(NewObjectArray, jobjectArray
2271 , HOTSPOT_JNI_NEWOBJECTARRAY_RETURN(_ret_ref));
2272
2273JNI_ENTRY(jobjectArray, jni_NewObjectArray(JNIEnv *env, jsize length, jclass elementClass, jobject initialElement))extern "C" { jobjectArray jni_NewObjectArray(JNIEnv *env, jsize
length, jclass elementClass, jobject initialElement) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2273, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2274 HOTSPOT_JNI_NEWOBJECTARRAY_ENTRY(env, length, elementClass, initialElement);
2275 jobjectArray ret = NULL__null;
2276 DT_RETURN_MARK(NewObjectArray, jobjectArray, (const jobjectArray&)ret);
2277 Klass* ek = java_lang_Class::as_Klass(JNIHandles::resolve_non_null(elementClass));
2278 Klass* ak = ek->array_klass(CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
2279 ObjArrayKlass::cast(ak)->initialize(CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
2280 objArrayOop result = ObjArrayKlass::cast(ak)->allocate(length, CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
2281 oop initial_value = JNIHandles::resolve(initialElement);
2282 if (initial_value != NULL__null) { // array already initialized with NULL
2283 for (int index = 0; index < length; index++) {
2284 result->obj_at_put(index, initial_value);
2285 }
2286 }
2287 ret = (jobjectArray) JNIHandles::make_local(THREAD__the_thread__, result);
2288 return ret;
2289JNI_END} }
2290
2291DT_RETURN_MARK_DECL(GetObjectArrayElement, jobject
2292 , HOTSPOT_JNI_GETOBJECTARRAYELEMENT_RETURN(_ret_ref));
2293
2294JNI_ENTRY(jobject, jni_GetObjectArrayElement(JNIEnv *env, jobjectArray array, jsize index))extern "C" { jobject jni_GetObjectArrayElement(JNIEnv *env, jobjectArray
array, jsize index) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2294, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2295 HOTSPOT_JNI_GETOBJECTARRAYELEMENT_ENTRY(env, array, index);
2296 jobject ret = NULL__null;
2297 DT_RETURN_MARK(GetObjectArrayElement, jobject, (const jobject&)ret);
2298 objArrayOop a = objArrayOop(JNIHandles::resolve_non_null(array));
2299 if (a->is_within_bounds(index)) {
2300 ret = JNIHandles::make_local(THREAD__the_thread__, a->obj_at(index));
2301 return ret;
2302 } else {
2303 ResourceMark rm(THREAD__the_thread__);
2304 stringStream ss;
2305 ss.print("Index %d out of bounds for length %d", index, a->length());
2306 THROW_MSG_0(vmSymbols::java_lang_ArrayIndexOutOfBoundsException(), ss.as_string()){ Exceptions::_throw_msg(__the_thread__, "/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2306, vmSymbols::java_lang_ArrayIndexOutOfBoundsException()
, ss.as_string()); return 0; }
;
2307 }
2308JNI_END} }
2309
2310DT_VOID_RETURN_MARK_DECL(SetObjectArrayElement
2311 , HOTSPOT_JNI_SETOBJECTARRAYELEMENT_RETURN());
2312
2313JNI_ENTRY(void, jni_SetObjectArrayElement(JNIEnv *env, jobjectArray array, jsize index, jobject value))extern "C" { void jni_SetObjectArrayElement(JNIEnv *env, jobjectArray
array, jsize index, jobject value) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2313, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2314 HOTSPOT_JNI_SETOBJECTARRAYELEMENT_ENTRY(env, array, index, value);
2315 DT_VOID_RETURN_MARK(SetObjectArrayElement);
2316
2317 objArrayOop a = objArrayOop(JNIHandles::resolve_non_null(array));
2318 oop v = JNIHandles::resolve(value);
2319 if (a->is_within_bounds(index)) {
2320 if (v == NULL__null || v->is_a(ObjArrayKlass::cast(a->klass())->element_klass())) {
2321 a->obj_at_put(index, v);
2322 } else {
2323 ResourceMark rm(THREAD__the_thread__);
2324 stringStream ss;
2325 Klass *bottom_kl = ObjArrayKlass::cast(a->klass())->bottom_klass();
2326 ss.print("type mismatch: can not store %s to %s[%d]",
2327 v->klass()->external_name(),
2328 bottom_kl->is_typeArray_klass() ? type2name_tab[ArrayKlass::cast(bottom_kl)->element_type()] : bottom_kl->external_name(),
2329 index);
2330 for (int dims = ArrayKlass::cast(a->klass())->dimension(); dims > 1; --dims) {
2331 ss.print("[]");
2332 }
2333 THROW_MSG(vmSymbols::java_lang_ArrayStoreException(), ss.as_string()){ Exceptions::_throw_msg(__the_thread__, "/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2333, vmSymbols::java_lang_ArrayStoreException(), ss.as_string
()); return; }
;
2334 }
2335 } else {
2336 ResourceMark rm(THREAD__the_thread__);
2337 stringStream ss;
2338 ss.print("Index %d out of bounds for length %d", index, a->length());
2339 THROW_MSG(vmSymbols::java_lang_ArrayIndexOutOfBoundsException(), ss.as_string()){ Exceptions::_throw_msg(__the_thread__, "/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2339, vmSymbols::java_lang_ArrayIndexOutOfBoundsException()
, ss.as_string()); return; }
;
2340 }
2341JNI_END} }
2342
2343
2344
2345#define DEFINE_NEWSCALARARRAY(Return,Allocator,Result \; extern "C" { Return jni_NewResultArray(JNIEnv *env, jsize len
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2346, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; Return ret = __null; ; oop obj= oopFactory
::Allocator(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (Return) JNIHandles::make_local(__the_thread__, obj); return
ret;} }
2346 ,EntryProbe,ReturnProbe); extern "C" { Return jni_NewResultArray(JNIEnv *env, jsize len
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2346, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; Return ret = __null; ; oop obj= oopFactory
::Allocator(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (Return) JNIHandles::make_local(__the_thread__, obj); return
ret;} }
\
2347\
2348 DT_RETURN_MARK_DECL(New##Result##Array, Return \
2349 , ReturnProbe); \extern "C" { Return jni_New##Result##Array(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2352, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2350\extern "C" { Return jni_New##Result##Array(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2352, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2351JNI_ENTRY(Return, \extern "C" { Return jni_New##Result##Array(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2352, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2352 jni_New##Result##Array(JNIEnv *env, jsize len))extern "C" { Return jni_New##Result##Array(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2352, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
\
2353 EntryProbe; \
2354 Return ret = NULL__null;\
2355 DT_RETURN_MARK(New##Result##Array, Return, (const Return&)ret);\
2356\
2357 oop obj= oopFactory::Allocator(len, CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
); \
2358 ret = (Return) JNIHandles::make_local(THREAD__the_thread__, obj); \
2359 return ret;\} }
2360JNI_END} }
2361
2362DEFINE_NEWSCALARARRAY(jbooleanArray, new_boolArray, Boolean,; extern "C" { jbooleanArray jni_NewBooleanArray(JNIEnv *env,
jsize len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2364, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbooleanArray ret = __null; ; oop obj= oopFactory
::new_boolArray(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (jbooleanArray) JNIHandles::make_local(__the_thread__, obj
); return ret;} }
2363 HOTSPOT_JNI_NEWBOOLEANARRAY_ENTRY(env, len),; extern "C" { jbooleanArray jni_NewBooleanArray(JNIEnv *env,
jsize len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2364, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbooleanArray ret = __null; ; oop obj= oopFactory
::new_boolArray(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (jbooleanArray) JNIHandles::make_local(__the_thread__, obj
); return ret;} }
2364 HOTSPOT_JNI_NEWBOOLEANARRAY_RETURN(_ret_ref)); extern "C" { jbooleanArray jni_NewBooleanArray(JNIEnv *env,
jsize len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2364, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbooleanArray ret = __null; ; oop obj= oopFactory
::new_boolArray(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (jbooleanArray) JNIHandles::make_local(__the_thread__, obj
); return ret;} }
2365DEFINE_NEWSCALARARRAY(jbyteArray, new_byteArray, Byte,; extern "C" { jbyteArray jni_NewByteArray(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2367, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyteArray ret = __null; ; oop obj= oopFactory
::new_byteArray(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (jbyteArray) JNIHandles::make_local(__the_thread__, obj); return
ret;} }
2366 HOTSPOT_JNI_NEWBYTEARRAY_ENTRY(env, len),; extern "C" { jbyteArray jni_NewByteArray(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2367, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyteArray ret = __null; ; oop obj= oopFactory
::new_byteArray(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (jbyteArray) JNIHandles::make_local(__the_thread__, obj); return
ret;} }
2367 HOTSPOT_JNI_NEWBYTEARRAY_RETURN(_ret_ref)); extern "C" { jbyteArray jni_NewByteArray(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2367, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jbyteArray ret = __null; ; oop obj= oopFactory
::new_byteArray(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (jbyteArray) JNIHandles::make_local(__the_thread__, obj); return
ret;} }
2368DEFINE_NEWSCALARARRAY(jshortArray, new_shortArray, Short,; extern "C" { jshortArray jni_NewShortArray(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2370, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshortArray ret = __null; ; oop obj= oopFactory
::new_shortArray(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (jshortArray) JNIHandles::make_local(__the_thread__, obj);
return ret;} }
2369 HOTSPOT_JNI_NEWSHORTARRAY_ENTRY(env, len),; extern "C" { jshortArray jni_NewShortArray(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2370, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshortArray ret = __null; ; oop obj= oopFactory
::new_shortArray(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (jshortArray) JNIHandles::make_local(__the_thread__, obj);
return ret;} }
2370 HOTSPOT_JNI_NEWSHORTARRAY_RETURN(_ret_ref)); extern "C" { jshortArray jni_NewShortArray(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2370, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jshortArray ret = __null; ; oop obj= oopFactory
::new_shortArray(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (jshortArray) JNIHandles::make_local(__the_thread__, obj);
return ret;} }
2371DEFINE_NEWSCALARARRAY(jcharArray, new_charArray, Char,; extern "C" { jcharArray jni_NewCharArray(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2373, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jcharArray ret = __null; ; oop obj= oopFactory
::new_charArray(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (jcharArray) JNIHandles::make_local(__the_thread__, obj); return
ret;} }
2372 HOTSPOT_JNI_NEWCHARARRAY_ENTRY(env, len),; extern "C" { jcharArray jni_NewCharArray(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2373, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jcharArray ret = __null; ; oop obj= oopFactory
::new_charArray(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (jcharArray) JNIHandles::make_local(__the_thread__, obj); return
ret;} }
2373 HOTSPOT_JNI_NEWCHARARRAY_RETURN(_ret_ref)); extern "C" { jcharArray jni_NewCharArray(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2373, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jcharArray ret = __null; ; oop obj= oopFactory
::new_charArray(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (jcharArray) JNIHandles::make_local(__the_thread__, obj); return
ret;} }
2374DEFINE_NEWSCALARARRAY(jintArray, new_intArray, Int,; extern "C" { jintArray jni_NewIntArray(JNIEnv *env, jsize len
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2376, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jintArray ret = __null; ; oop obj= oopFactory
::new_intArray(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (jintArray) JNIHandles::make_local(__the_thread__, obj); return
ret;} }
2375 HOTSPOT_JNI_NEWINTARRAY_ENTRY(env, len),; extern "C" { jintArray jni_NewIntArray(JNIEnv *env, jsize len
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2376, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jintArray ret = __null; ; oop obj= oopFactory
::new_intArray(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (jintArray) JNIHandles::make_local(__the_thread__, obj); return
ret;} }
2376 HOTSPOT_JNI_NEWINTARRAY_RETURN(_ret_ref)); extern "C" { jintArray jni_NewIntArray(JNIEnv *env, jsize len
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2376, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jintArray ret = __null; ; oop obj= oopFactory
::new_intArray(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (jintArray) JNIHandles::make_local(__the_thread__, obj); return
ret;} }
2377DEFINE_NEWSCALARARRAY(jlongArray, new_longArray, Long,; extern "C" { jlongArray jni_NewLongArray(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2379, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlongArray ret = __null; ; oop obj= oopFactory
::new_longArray(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (jlongArray) JNIHandles::make_local(__the_thread__, obj); return
ret;} }
2378 HOTSPOT_JNI_NEWLONGARRAY_ENTRY(env, len),; extern "C" { jlongArray jni_NewLongArray(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2379, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlongArray ret = __null; ; oop obj= oopFactory
::new_longArray(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (jlongArray) JNIHandles::make_local(__the_thread__, obj); return
ret;} }
2379 HOTSPOT_JNI_NEWLONGARRAY_RETURN(_ret_ref)); extern "C" { jlongArray jni_NewLongArray(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2379, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jlongArray ret = __null; ; oop obj= oopFactory
::new_longArray(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (jlongArray) JNIHandles::make_local(__the_thread__, obj); return
ret;} }
2380DEFINE_NEWSCALARARRAY(jfloatArray, new_floatArray, Float,; extern "C" { jfloatArray jni_NewFloatArray(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2382, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloatArray ret = __null; ; oop obj= oopFactory
::new_floatArray(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (jfloatArray) JNIHandles::make_local(__the_thread__, obj);
return ret;} }
2381 HOTSPOT_JNI_NEWFLOATARRAY_ENTRY(env, len),; extern "C" { jfloatArray jni_NewFloatArray(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2382, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloatArray ret = __null; ; oop obj= oopFactory
::new_floatArray(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (jfloatArray) JNIHandles::make_local(__the_thread__, obj);
return ret;} }
2382 HOTSPOT_JNI_NEWFLOATARRAY_RETURN(_ret_ref)); extern "C" { jfloatArray jni_NewFloatArray(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2382, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jfloatArray ret = __null; ; oop obj= oopFactory
::new_floatArray(len, __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return __null; (void)(0); ret
= (jfloatArray) JNIHandles::make_local(__the_thread__, obj);
return ret;} }
2383DEFINE_NEWSCALARARRAY(jdoubleArray, new_doubleArray, Double,; extern "C" { jdoubleArray jni_NewDoubleArray(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2385, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdoubleArray ret = __null; ; oop obj= oopFactory
::new_doubleArray(len, __the_thread__); if ((((ThreadShadow*)
__the_thread__)->has_pending_exception())) return __null; (
void)(0); ret = (jdoubleArray) JNIHandles::make_local(__the_thread__
, obj); return ret;} }
2384 HOTSPOT_JNI_NEWDOUBLEARRAY_ENTRY(env, len),; extern "C" { jdoubleArray jni_NewDoubleArray(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2385, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdoubleArray ret = __null; ; oop obj= oopFactory
::new_doubleArray(len, __the_thread__); if ((((ThreadShadow*)
__the_thread__)->has_pending_exception())) return __null; (
void)(0); ret = (jdoubleArray) JNIHandles::make_local(__the_thread__
, obj); return ret;} }
2385 HOTSPOT_JNI_NEWDOUBLEARRAY_RETURN(_ret_ref)); extern "C" { jdoubleArray jni_NewDoubleArray(JNIEnv *env, jsize
len) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2385, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; jdoubleArray ret = __null; ; oop obj= oopFactory
::new_doubleArray(len, __the_thread__); if ((((ThreadShadow*)
__the_thread__)->has_pending_exception())) return __null; (
void)(0); ret = (jdoubleArray) JNIHandles::make_local(__the_thread__
, obj); return ret;} }
2386
2387// Return an address which will fault if the caller writes to it.
2388
2389static char* get_bad_address() {
2390 static char* bad_address = NULL__null;
2391 if (bad_address == NULL__null) {
2392 size_t size = os::vm_allocation_granularity();
2393 bad_address = os::reserve_memory(size);
2394 if (bad_address != NULL__null) {
2395 os::protect_memory(bad_address, size, os::MEM_PROT_READ,
2396 /*is_committed*/false);
2397 MemTracker::record_virtual_memory_type((void*)bad_address, mtInternal);
2398 }
2399 }
2400 return bad_address;
2401}
2402
2403
2404
2405#define DEFINE_GETSCALARARRAYELEMENTS(ElementTag,ElementType,Result, Tag \extern "C" { ElementType* jni_GetResultArrayElements(JNIEnv *
env, ElementTypeArray array, jboolean *isCopy) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2406, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); EntryProbe; typeArrayOop
a = typeArrayOop(JNIHandles::resolve_non_null(array)); ElementType
* result; int len = a->length(); if (len == 0) { if (isCopy
!= __null) { *isCopy = 0; } result = (ElementType*)get_bad_address
(); } else { result = (ElementType*) (AllocateHeap(((len)) * sizeof
(ElementType), mtInternal, AllocFailStrategy::RETURN_NULL)); if
(result != __null) { ArrayAccess<>::arraycopy_to_native
(a, typeArrayOopDesc::element_offset<ElementType>(0), result
, len); if (isCopy) { *isCopy = 1; } } } ReturnProbe; return result
; } }
2406 , EntryProbe, ReturnProbe)extern "C" { ElementType* jni_GetResultArrayElements(JNIEnv *
env, ElementTypeArray array, jboolean *isCopy) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2406, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); EntryProbe; typeArrayOop
a = typeArrayOop(JNIHandles::resolve_non_null(array)); ElementType
* result; int len = a->length(); if (len == 0) { if (isCopy
!= __null) { *isCopy = 0; } result = (ElementType*)get_bad_address
(); } else { result = (ElementType*) (AllocateHeap(((len)) * sizeof
(ElementType), mtInternal, AllocFailStrategy::RETURN_NULL)); if
(result != __null) { ArrayAccess<>::arraycopy_to_native
(a, typeArrayOopDesc::element_offset<ElementType>(0), result
, len); if (isCopy) { *isCopy = 1; } } } ReturnProbe; return result
; } }
\extern "C" { ElementType* jni_Get##Result##ArrayElements(JNIEnv
*env, ElementType##Array array, jboolean *isCopy) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2409, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
2407\extern "C" { ElementType* jni_Get##Result##ArrayElements(JNIEnv
*env, ElementType##Array array, jboolean *isCopy) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2409, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
2408JNI_ENTRY_NO_PRESERVE(ElementType*, \extern "C" { ElementType* jni_Get##Result##ArrayElements(JNIEnv
*env, ElementType##Array array, jboolean *isCopy) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2409, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
2409 jni_Get##Result##ArrayElements(JNIEnv *env, ElementType##Array array, jboolean *isCopy))extern "C" { ElementType* jni_Get##Result##ArrayElements(JNIEnv
*env, ElementType##Array array, jboolean *isCopy) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2409, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
\
2410 EntryProbe; \
2411 /* allocate an chunk of memory in c land */ \
2412 typeArrayOop a = typeArrayOop(JNIHandles::resolve_non_null(array)); \
2413 ElementType* result; \
2414 int len = a->length(); \
2415 if (len == 0) { \
2416 if (isCopy != NULL__null) { \
2417 *isCopy = JNI_FALSE0; \
2418 } \
2419 /* Empty array: legal but useless, can't return NULL. \
2420 * Return a pointer to something useless. \
2421 * Avoid asserts in typeArrayOop. */ \
2422 result = (ElementType*)get_bad_address(); \
2423 } else { \
2424 /* JNI Specification states return NULL on OOM */ \
2425 result = NEW_C_HEAP_ARRAY_RETURN_NULL(ElementType, len, mtInternal)(ElementType*) (AllocateHeap(((len)) * sizeof(ElementType), mtInternal
, AllocFailStrategy::RETURN_NULL))
; \
2426 if (result != NULL__null) { \
2427 /* copy the array to the c chunk */ \
2428 ArrayAccess<>::arraycopy_to_native(a, typeArrayOopDesc::element_offset<ElementType>(0), \
2429 result, len); \
2430 if (isCopy) { \
2431 *isCopy = JNI_TRUE1; \
2432 } \
2433 } \
2434 } \
2435 ReturnProbe; \
2436 return result; \} }
2437JNI_END} }
2438
2439DEFINE_GETSCALARARRAYELEMENTS(T_BOOLEAN, jboolean, Boolean, boolextern "C" { jboolean* jni_GetBooleanArrayElements(JNIEnv *env
, jbooleanArray array, jboolean *isCopy) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2441, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jboolean* result; int len
= a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jboolean*)get_bad_address(); } else { result
= (jboolean*) (AllocateHeap(((len)) * sizeof(jboolean), mtInternal
, AllocFailStrategy::RETURN_NULL)); if (result != __null) { ArrayAccess
<>::arraycopy_to_native(a, typeArrayOopDesc::element_offset
<jboolean>(0), result, len); if (isCopy) { *isCopy = 1;
} } } ; return result; } }
2440 , HOTSPOT_JNI_GETBOOLEANARRAYELEMENTS_ENTRY(env, array, (uintptr_t *) isCopy),extern "C" { jboolean* jni_GetBooleanArrayElements(JNIEnv *env
, jbooleanArray array, jboolean *isCopy) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2441, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jboolean* result; int len
= a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jboolean*)get_bad_address(); } else { result
= (jboolean*) (AllocateHeap(((len)) * sizeof(jboolean), mtInternal
, AllocFailStrategy::RETURN_NULL)); if (result != __null) { ArrayAccess
<>::arraycopy_to_native(a, typeArrayOopDesc::element_offset
<jboolean>(0), result, len); if (isCopy) { *isCopy = 1;
} } } ; return result; } }
2441 HOTSPOT_JNI_GETBOOLEANARRAYELEMENTS_RETURN((uintptr_t*)result))extern "C" { jboolean* jni_GetBooleanArrayElements(JNIEnv *env
, jbooleanArray array, jboolean *isCopy) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2441, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jboolean* result; int len
= a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jboolean*)get_bad_address(); } else { result
= (jboolean*) (AllocateHeap(((len)) * sizeof(jboolean), mtInternal
, AllocFailStrategy::RETURN_NULL)); if (result != __null) { ArrayAccess
<>::arraycopy_to_native(a, typeArrayOopDesc::element_offset
<jboolean>(0), result, len); if (isCopy) { *isCopy = 1;
} } } ; return result; } }
2442DEFINE_GETSCALARARRAYELEMENTS(T_BYTE, jbyte, Byte, byteextern "C" { jbyte* jni_GetByteArrayElements(JNIEnv *env, jbyteArray
array, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2444, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jbyte* result; int len
= a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jbyte*)get_bad_address(); } else { result =
(jbyte*) (AllocateHeap(((len)) * sizeof(jbyte), mtInternal, AllocFailStrategy
::RETURN_NULL)); if (result != __null) { ArrayAccess<>::
arraycopy_to_native(a, typeArrayOopDesc::element_offset<jbyte
>(0), result, len); if (isCopy) { *isCopy = 1; } } } ; return
result; } }
2443 , HOTSPOT_JNI_GETBYTEARRAYELEMENTS_ENTRY(env, array, (uintptr_t *) isCopy),extern "C" { jbyte* jni_GetByteArrayElements(JNIEnv *env, jbyteArray
array, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2444, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jbyte* result; int len
= a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jbyte*)get_bad_address(); } else { result =
(jbyte*) (AllocateHeap(((len)) * sizeof(jbyte), mtInternal, AllocFailStrategy
::RETURN_NULL)); if (result != __null) { ArrayAccess<>::
arraycopy_to_native(a, typeArrayOopDesc::element_offset<jbyte
>(0), result, len); if (isCopy) { *isCopy = 1; } } } ; return
result; } }
2444 HOTSPOT_JNI_GETBYTEARRAYELEMENTS_RETURN((char*)result))extern "C" { jbyte* jni_GetByteArrayElements(JNIEnv *env, jbyteArray
array, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2444, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jbyte* result; int len
= a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jbyte*)get_bad_address(); } else { result =
(jbyte*) (AllocateHeap(((len)) * sizeof(jbyte), mtInternal, AllocFailStrategy
::RETURN_NULL)); if (result != __null) { ArrayAccess<>::
arraycopy_to_native(a, typeArrayOopDesc::element_offset<jbyte
>(0), result, len); if (isCopy) { *isCopy = 1; } } } ; return
result; } }
2445DEFINE_GETSCALARARRAYELEMENTS(T_SHORT, jshort, Short, shortextern "C" { jshort* jni_GetShortArrayElements(JNIEnv *env, jshortArray
array, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2447, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jshort* result; int len
= a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jshort*)get_bad_address(); } else { result =
(jshort*) (AllocateHeap(((len)) * sizeof(jshort), mtInternal
, AllocFailStrategy::RETURN_NULL)); if (result != __null) { ArrayAccess
<>::arraycopy_to_native(a, typeArrayOopDesc::element_offset
<jshort>(0), result, len); if (isCopy) { *isCopy = 1; }
} } ; return result; } }
2446 , HOTSPOT_JNI_GETSHORTARRAYELEMENTS_ENTRY(env, (uint16_t*) array, (uintptr_t *) isCopy),extern "C" { jshort* jni_GetShortArrayElements(JNIEnv *env, jshortArray
array, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2447, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jshort* result; int len
= a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jshort*)get_bad_address(); } else { result =
(jshort*) (AllocateHeap(((len)) * sizeof(jshort), mtInternal
, AllocFailStrategy::RETURN_NULL)); if (result != __null) { ArrayAccess
<>::arraycopy_to_native(a, typeArrayOopDesc::element_offset
<jshort>(0), result, len); if (isCopy) { *isCopy = 1; }
} } ; return result; } }
2447 HOTSPOT_JNI_GETSHORTARRAYELEMENTS_RETURN((uint16_t*)result))extern "C" { jshort* jni_GetShortArrayElements(JNIEnv *env, jshortArray
array, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2447, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jshort* result; int len
= a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jshort*)get_bad_address(); } else { result =
(jshort*) (AllocateHeap(((len)) * sizeof(jshort), mtInternal
, AllocFailStrategy::RETURN_NULL)); if (result != __null) { ArrayAccess
<>::arraycopy_to_native(a, typeArrayOopDesc::element_offset
<jshort>(0), result, len); if (isCopy) { *isCopy = 1; }
} } ; return result; } }
2448DEFINE_GETSCALARARRAYELEMENTS(T_CHAR, jchar, Char, charextern "C" { jchar* jni_GetCharArrayElements(JNIEnv *env, jcharArray
array, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2450, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jchar* result; int len
= a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jchar*)get_bad_address(); } else { result =
(jchar*) (AllocateHeap(((len)) * sizeof(jchar), mtInternal, AllocFailStrategy
::RETURN_NULL)); if (result != __null) { ArrayAccess<>::
arraycopy_to_native(a, typeArrayOopDesc::element_offset<jchar
>(0), result, len); if (isCopy) { *isCopy = 1; } } } ; return
result; } }
2449 , HOTSPOT_JNI_GETCHARARRAYELEMENTS_ENTRY(env, (uint16_t*) array, (uintptr_t *) isCopy),extern "C" { jchar* jni_GetCharArrayElements(JNIEnv *env, jcharArray
array, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2450, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jchar* result; int len
= a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jchar*)get_bad_address(); } else { result =
(jchar*) (AllocateHeap(((len)) * sizeof(jchar), mtInternal, AllocFailStrategy
::RETURN_NULL)); if (result != __null) { ArrayAccess<>::
arraycopy_to_native(a, typeArrayOopDesc::element_offset<jchar
>(0), result, len); if (isCopy) { *isCopy = 1; } } } ; return
result; } }
2450 HOTSPOT_JNI_GETCHARARRAYELEMENTS_RETURN(result))extern "C" { jchar* jni_GetCharArrayElements(JNIEnv *env, jcharArray
array, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2450, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jchar* result; int len
= a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jchar*)get_bad_address(); } else { result =
(jchar*) (AllocateHeap(((len)) * sizeof(jchar), mtInternal, AllocFailStrategy
::RETURN_NULL)); if (result != __null) { ArrayAccess<>::
arraycopy_to_native(a, typeArrayOopDesc::element_offset<jchar
>(0), result, len); if (isCopy) { *isCopy = 1; } } } ; return
result; } }
2451DEFINE_GETSCALARARRAYELEMENTS(T_INT, jint, Int, intextern "C" { jint* jni_GetIntArrayElements(JNIEnv *env, jintArray
array, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2453, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jint* result; int len =
a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jint*)get_bad_address(); } else { result = (
jint*) (AllocateHeap(((len)) * sizeof(jint), mtInternal, AllocFailStrategy
::RETURN_NULL)); if (result != __null) { ArrayAccess<>::
arraycopy_to_native(a, typeArrayOopDesc::element_offset<jint
>(0), result, len); if (isCopy) { *isCopy = 1; } } } ; return
result; } }
2452 , HOTSPOT_JNI_GETINTARRAYELEMENTS_ENTRY(env, array, (uintptr_t *) isCopy),extern "C" { jint* jni_GetIntArrayElements(JNIEnv *env, jintArray
array, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2453, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jint* result; int len =
a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jint*)get_bad_address(); } else { result = (
jint*) (AllocateHeap(((len)) * sizeof(jint), mtInternal, AllocFailStrategy
::RETURN_NULL)); if (result != __null) { ArrayAccess<>::
arraycopy_to_native(a, typeArrayOopDesc::element_offset<jint
>(0), result, len); if (isCopy) { *isCopy = 1; } } } ; return
result; } }
2453 HOTSPOT_JNI_GETINTARRAYELEMENTS_RETURN((uint32_t*)result))extern "C" { jint* jni_GetIntArrayElements(JNIEnv *env, jintArray
array, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2453, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jint* result; int len =
a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jint*)get_bad_address(); } else { result = (
jint*) (AllocateHeap(((len)) * sizeof(jint), mtInternal, AllocFailStrategy
::RETURN_NULL)); if (result != __null) { ArrayAccess<>::
arraycopy_to_native(a, typeArrayOopDesc::element_offset<jint
>(0), result, len); if (isCopy) { *isCopy = 1; } } } ; return
result; } }
2454DEFINE_GETSCALARARRAYELEMENTS(T_LONG, jlong, Long, longextern "C" { jlong* jni_GetLongArrayElements(JNIEnv *env, jlongArray
array, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2456, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jlong* result; int len
= a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jlong*)get_bad_address(); } else { result =
(jlong*) (AllocateHeap(((len)) * sizeof(jlong), mtInternal, AllocFailStrategy
::RETURN_NULL)); if (result != __null) { ArrayAccess<>::
arraycopy_to_native(a, typeArrayOopDesc::element_offset<jlong
>(0), result, len); if (isCopy) { *isCopy = 1; } } } ; return
result; } }
2455 , HOTSPOT_JNI_GETLONGARRAYELEMENTS_ENTRY(env, array, (uintptr_t *) isCopy),extern "C" { jlong* jni_GetLongArrayElements(JNIEnv *env, jlongArray
array, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2456, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jlong* result; int len
= a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jlong*)get_bad_address(); } else { result =
(jlong*) (AllocateHeap(((len)) * sizeof(jlong), mtInternal, AllocFailStrategy
::RETURN_NULL)); if (result != __null) { ArrayAccess<>::
arraycopy_to_native(a, typeArrayOopDesc::element_offset<jlong
>(0), result, len); if (isCopy) { *isCopy = 1; } } } ; return
result; } }
2456 HOTSPOT_JNI_GETLONGARRAYELEMENTS_RETURN(((uintptr_t*)result)))extern "C" { jlong* jni_GetLongArrayElements(JNIEnv *env, jlongArray
array, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2456, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jlong* result; int len
= a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jlong*)get_bad_address(); } else { result =
(jlong*) (AllocateHeap(((len)) * sizeof(jlong), mtInternal, AllocFailStrategy
::RETURN_NULL)); if (result != __null) { ArrayAccess<>::
arraycopy_to_native(a, typeArrayOopDesc::element_offset<jlong
>(0), result, len); if (isCopy) { *isCopy = 1; } } } ; return
result; } }
2457// Float and double probes don't return value because dtrace doesn't currently support it
2458DEFINE_GETSCALARARRAYELEMENTS(T_FLOAT, jfloat, Float, floatextern "C" { jfloat* jni_GetFloatArrayElements(JNIEnv *env, jfloatArray
array, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2460, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jfloat* result; int len
= a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jfloat*)get_bad_address(); } else { result =
(jfloat*) (AllocateHeap(((len)) * sizeof(jfloat), mtInternal
, AllocFailStrategy::RETURN_NULL)); if (result != __null) { ArrayAccess
<>::arraycopy_to_native(a, typeArrayOopDesc::element_offset
<jfloat>(0), result, len); if (isCopy) { *isCopy = 1; }
} } ; return result; } }
2459 , HOTSPOT_JNI_GETFLOATARRAYELEMENTS_ENTRY(env, array, (uintptr_t *) isCopy),extern "C" { jfloat* jni_GetFloatArrayElements(JNIEnv *env, jfloatArray
array, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2460, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jfloat* result; int len
= a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jfloat*)get_bad_address(); } else { result =
(jfloat*) (AllocateHeap(((len)) * sizeof(jfloat), mtInternal
, AllocFailStrategy::RETURN_NULL)); if (result != __null) { ArrayAccess
<>::arraycopy_to_native(a, typeArrayOopDesc::element_offset
<jfloat>(0), result, len); if (isCopy) { *isCopy = 1; }
} } ; return result; } }
2460 HOTSPOT_JNI_GETFLOATARRAYELEMENTS_RETURN(result))extern "C" { jfloat* jni_GetFloatArrayElements(JNIEnv *env, jfloatArray
array, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2460, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jfloat* result; int len
= a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jfloat*)get_bad_address(); } else { result =
(jfloat*) (AllocateHeap(((len)) * sizeof(jfloat), mtInternal
, AllocFailStrategy::RETURN_NULL)); if (result != __null) { ArrayAccess
<>::arraycopy_to_native(a, typeArrayOopDesc::element_offset
<jfloat>(0), result, len); if (isCopy) { *isCopy = 1; }
} } ; return result; } }
2461DEFINE_GETSCALARARRAYELEMENTS(T_DOUBLE, jdouble, Double, doubleextern "C" { jdouble* jni_GetDoubleArrayElements(JNIEnv *env,
jdoubleArray array, jboolean *isCopy) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2463, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jdouble* result; int len
= a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jdouble*)get_bad_address(); } else { result
= (jdouble*) (AllocateHeap(((len)) * sizeof(jdouble), mtInternal
, AllocFailStrategy::RETURN_NULL)); if (result != __null) { ArrayAccess
<>::arraycopy_to_native(a, typeArrayOopDesc::element_offset
<jdouble>(0), result, len); if (isCopy) { *isCopy = 1; }
} } ; return result; } }
2462 , HOTSPOT_JNI_GETDOUBLEARRAYELEMENTS_ENTRY(env, array, (uintptr_t *) isCopy),extern "C" { jdouble* jni_GetDoubleArrayElements(JNIEnv *env,
jdoubleArray array, jboolean *isCopy) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2463, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jdouble* result; int len
= a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jdouble*)get_bad_address(); } else { result
= (jdouble*) (AllocateHeap(((len)) * sizeof(jdouble), mtInternal
, AllocFailStrategy::RETURN_NULL)); if (result != __null) { ArrayAccess
<>::arraycopy_to_native(a, typeArrayOopDesc::element_offset
<jdouble>(0), result, len); if (isCopy) { *isCopy = 1; }
} } ; return result; } }
2463 HOTSPOT_JNI_GETDOUBLEARRAYELEMENTS_RETURN(result))extern "C" { jdouble* jni_GetDoubleArrayElements(JNIEnv *env,
jdoubleArray array, jboolean *isCopy) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2463, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); jdouble* result; int len
= a->length(); if (len == 0) { if (isCopy != __null) { *isCopy
= 0; } result = (jdouble*)get_bad_address(); } else { result
= (jdouble*) (AllocateHeap(((len)) * sizeof(jdouble), mtInternal
, AllocFailStrategy::RETURN_NULL)); if (result != __null) { ArrayAccess
<>::arraycopy_to_native(a, typeArrayOopDesc::element_offset
<jdouble>(0), result, len); if (isCopy) { *isCopy = 1; }
} } ; return result; } }
2464
2465
2466#define DEFINE_RELEASESCALARARRAYELEMENTS(ElementTag,ElementType,Result,Tag \;extern "C" { void jni_ReleaseResultArrayElements(JNIEnv *env
, ElementTypeArray array, ElementType *buf, jint mode) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2467, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); EntryProbe; typeArrayOop
a = typeArrayOop(JNIHandles::resolve_non_null(array)); int len
= a->length(); if (len != 0) { if ((mode == 0) || (mode ==
1)) { ArrayAccess<>::arraycopy_from_native(buf, a, typeArrayOopDesc
::element_offset<ElementType>(0), len); } if ((mode == 0
) || (mode == 2)) { FreeHeap(buf); } } ReturnProbe; } }
2467 , EntryProbe, ReturnProbe);extern "C" { void jni_ReleaseResultArrayElements(JNIEnv *env
, ElementTypeArray array, ElementType *buf, jint mode) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2467, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); EntryProbe; typeArrayOop
a = typeArrayOop(JNIHandles::resolve_non_null(array)); int len
= a->length(); if (len != 0) { if ((mode == 0) || (mode ==
1)) { ArrayAccess<>::arraycopy_from_native(buf, a, typeArrayOopDesc
::element_offset<ElementType>(0), len); } if ((mode == 0
) || (mode == 2)) { FreeHeap(buf); } } ReturnProbe; } }
;\extern "C" { void jni_Release##Result##ArrayElements(JNIEnv *
env, ElementType##Array array, ElementType *buf, jint mode) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2471, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
2468\extern "C" { void jni_Release##Result##ArrayElements(JNIEnv *
env, ElementType##Array array, ElementType *buf, jint mode) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2471, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
2469JNI_ENTRY_NO_PRESERVE(void, \extern "C" { void jni_Release##Result##ArrayElements(JNIEnv *
env, ElementType##Array array, ElementType *buf, jint mode) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2471, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
2470 jni_Release##Result##ArrayElements(JNIEnv *env, ElementType##Array array, \extern "C" { void jni_Release##Result##ArrayElements(JNIEnv *
env, ElementType##Array array, ElementType *buf, jint mode) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2471, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
2471 ElementType *buf, jint mode))extern "C" { void jni_Release##Result##ArrayElements(JNIEnv *
env, ElementType##Array array, ElementType *buf, jint mode) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2471, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
\
2472 EntryProbe; \
2473 typeArrayOop a = typeArrayOop(JNIHandles::resolve_non_null(array)); \
2474 int len = a->length(); \
2475 if (len != 0) { /* Empty array: nothing to free or copy. */ \
2476 if ((mode == 0) || (mode == JNI_COMMIT1)) { \
2477 ArrayAccess<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset<ElementType>(0), len); \
2478 } \
2479 if ((mode == 0) || (mode == JNI_ABORT2)) { \
2480 FreeHeap(buf); \
2481 } \
2482 } \
2483 ReturnProbe; \} }
2484JNI_END} }
2485
2486DEFINE_RELEASESCALARARRAYELEMENTS(T_BOOLEAN, jboolean, Boolean, bool;extern "C" { void jni_ReleaseBooleanArrayElements(JNIEnv *env
, jbooleanArray array, jboolean *buf, jint mode) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2488, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jboolean>(0), len); } if ((mode == 0) || (mode == 2)) {
FreeHeap(buf); } } ; } }
2487 , HOTSPOT_JNI_RELEASEBOOLEANARRAYELEMENTS_ENTRY(env, array, (uintptr_t *) buf, mode),;extern "C" { void jni_ReleaseBooleanArrayElements(JNIEnv *env
, jbooleanArray array, jboolean *buf, jint mode) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2488, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jboolean>(0), len); } if ((mode == 0) || (mode == 2)) {
FreeHeap(buf); } } ; } }
2488 HOTSPOT_JNI_RELEASEBOOLEANARRAYELEMENTS_RETURN());extern "C" { void jni_ReleaseBooleanArrayElements(JNIEnv *env
, jbooleanArray array, jboolean *buf, jint mode) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2488, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jboolean>(0), len); } if ((mode == 0) || (mode == 2)) {
FreeHeap(buf); } } ; } }
2489DEFINE_RELEASESCALARARRAYELEMENTS(T_BYTE, jbyte, Byte, byte;extern "C" { void jni_ReleaseByteArrayElements(JNIEnv *env, jbyteArray
array, jbyte *buf, jint mode) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2491, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jbyte>(0), len); } if ((mode == 0) || (mode == 2)) { FreeHeap
(buf); } } ; } }
2490 , HOTSPOT_JNI_RELEASEBYTEARRAYELEMENTS_ENTRY(env, array, (char *) buf, mode),;extern "C" { void jni_ReleaseByteArrayElements(JNIEnv *env, jbyteArray
array, jbyte *buf, jint mode) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2491, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jbyte>(0), len); } if ((mode == 0) || (mode == 2)) { FreeHeap
(buf); } } ; } }
2491 HOTSPOT_JNI_RELEASEBYTEARRAYELEMENTS_RETURN());extern "C" { void jni_ReleaseByteArrayElements(JNIEnv *env, jbyteArray
array, jbyte *buf, jint mode) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2491, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jbyte>(0), len); } if ((mode == 0) || (mode == 2)) { FreeHeap
(buf); } } ; } }
2492DEFINE_RELEASESCALARARRAYELEMENTS(T_SHORT, jshort, Short, short;extern "C" { void jni_ReleaseShortArrayElements(JNIEnv *env,
jshortArray array, jshort *buf, jint mode) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2494, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jshort>(0), len); } if ((mode == 0) || (mode == 2)) { FreeHeap
(buf); } } ; } }
2493 , HOTSPOT_JNI_RELEASESHORTARRAYELEMENTS_ENTRY(env, array, (uint16_t *) buf, mode),;extern "C" { void jni_ReleaseShortArrayElements(JNIEnv *env,
jshortArray array, jshort *buf, jint mode) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2494, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jshort>(0), len); } if ((mode == 0) || (mode == 2)) { FreeHeap
(buf); } } ; } }
2494 HOTSPOT_JNI_RELEASESHORTARRAYELEMENTS_RETURN());extern "C" { void jni_ReleaseShortArrayElements(JNIEnv *env,
jshortArray array, jshort *buf, jint mode) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2494, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jshort>(0), len); } if ((mode == 0) || (mode == 2)) { FreeHeap
(buf); } } ; } }
2495DEFINE_RELEASESCALARARRAYELEMENTS(T_CHAR, jchar, Char, char;extern "C" { void jni_ReleaseCharArrayElements(JNIEnv *env, jcharArray
array, jchar *buf, jint mode) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2497, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jchar>(0), len); } if ((mode == 0) || (mode == 2)) { FreeHeap
(buf); } } ; } }
2496 , HOTSPOT_JNI_RELEASECHARARRAYELEMENTS_ENTRY(env, array, (uint16_t *) buf, mode),;extern "C" { void jni_ReleaseCharArrayElements(JNIEnv *env, jcharArray
array, jchar *buf, jint mode) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2497, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jchar>(0), len); } if ((mode == 0) || (mode == 2)) { FreeHeap
(buf); } } ; } }
2497 HOTSPOT_JNI_RELEASECHARARRAYELEMENTS_RETURN());extern "C" { void jni_ReleaseCharArrayElements(JNIEnv *env, jcharArray
array, jchar *buf, jint mode) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2497, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jchar>(0), len); } if ((mode == 0) || (mode == 2)) { FreeHeap
(buf); } } ; } }
2498DEFINE_RELEASESCALARARRAYELEMENTS(T_INT, jint, Int, int;extern "C" { void jni_ReleaseIntArrayElements(JNIEnv *env, jintArray
array, jint *buf, jint mode) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2500, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jint>(0), len); } if ((mode == 0) || (mode == 2)) { FreeHeap
(buf); } } ; } }
2499 , HOTSPOT_JNI_RELEASEINTARRAYELEMENTS_ENTRY(env, array, (uint32_t *) buf, mode),;extern "C" { void jni_ReleaseIntArrayElements(JNIEnv *env, jintArray
array, jint *buf, jint mode) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2500, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jint>(0), len); } if ((mode == 0) || (mode == 2)) { FreeHeap
(buf); } } ; } }
2500 HOTSPOT_JNI_RELEASEINTARRAYELEMENTS_RETURN());extern "C" { void jni_ReleaseIntArrayElements(JNIEnv *env, jintArray
array, jint *buf, jint mode) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2500, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jint>(0), len); } if ((mode == 0) || (mode == 2)) { FreeHeap
(buf); } } ; } }
2501DEFINE_RELEASESCALARARRAYELEMENTS(T_LONG, jlong, Long, long;extern "C" { void jni_ReleaseLongArrayElements(JNIEnv *env, jlongArray
array, jlong *buf, jint mode) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2503, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jlong>(0), len); } if ((mode == 0) || (mode == 2)) { FreeHeap
(buf); } } ; } }
2502 , HOTSPOT_JNI_RELEASELONGARRAYELEMENTS_ENTRY(env, array, (uintptr_t *) buf, mode),;extern "C" { void jni_ReleaseLongArrayElements(JNIEnv *env, jlongArray
array, jlong *buf, jint mode) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2503, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jlong>(0), len); } if ((mode == 0) || (mode == 2)) { FreeHeap
(buf); } } ; } }
2503 HOTSPOT_JNI_RELEASELONGARRAYELEMENTS_RETURN());extern "C" { void jni_ReleaseLongArrayElements(JNIEnv *env, jlongArray
array, jlong *buf, jint mode) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2503, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jlong>(0), len); } if ((mode == 0) || (mode == 2)) { FreeHeap
(buf); } } ; } }
2504DEFINE_RELEASESCALARARRAYELEMENTS(T_FLOAT, jfloat, Float, float;extern "C" { void jni_ReleaseFloatArrayElements(JNIEnv *env,
jfloatArray array, jfloat *buf, jint mode) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2506, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jfloat>(0), len); } if ((mode == 0) || (mode == 2)) { FreeHeap
(buf); } } ; } }
2505 , HOTSPOT_JNI_RELEASEFLOATARRAYELEMENTS_ENTRY(env, array, (float *) buf, mode),;extern "C" { void jni_ReleaseFloatArrayElements(JNIEnv *env,
jfloatArray array, jfloat *buf, jint mode) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2506, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jfloat>(0), len); } if ((mode == 0) || (mode == 2)) { FreeHeap
(buf); } } ; } }
2506 HOTSPOT_JNI_RELEASEFLOATARRAYELEMENTS_RETURN());extern "C" { void jni_ReleaseFloatArrayElements(JNIEnv *env,
jfloatArray array, jfloat *buf, jint mode) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2506, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jfloat>(0), len); } if ((mode == 0) || (mode == 2)) { FreeHeap
(buf); } } ; } }
2507DEFINE_RELEASESCALARARRAYELEMENTS(T_DOUBLE, jdouble, Double, double;extern "C" { void jni_ReleaseDoubleArrayElements(JNIEnv *env
, jdoubleArray array, jdouble *buf, jint mode) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2509, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jdouble>(0), len); } if ((mode == 0) || (mode == 2)) {
FreeHeap(buf); } } ; } }
2508 , HOTSPOT_JNI_RELEASEDOUBLEARRAYELEMENTS_ENTRY(env, array, (double *) buf, mode),;extern "C" { void jni_ReleaseDoubleArrayElements(JNIEnv *env
, jdoubleArray array, jdouble *buf, jint mode) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2509, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jdouble>(0), len); } if ((mode == 0) || (mode == 2)) {
FreeHeap(buf); } } ; } }
2509 HOTSPOT_JNI_RELEASEDOUBLEARRAYELEMENTS_RETURN());extern "C" { void jni_ReleaseDoubleArrayElements(JNIEnv *env
, jdoubleArray array, jdouble *buf, jint mode) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2509, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); ; typeArrayOop a = typeArrayOop
(JNIHandles::resolve_non_null(array)); int len = a->length
(); if (len != 0) { if ((mode == 0) || (mode == 1)) { ArrayAccess
<>::arraycopy_from_native(buf, a, typeArrayOopDesc::element_offset
<jdouble>(0), len); } if ((mode == 0) || (mode == 2)) {
FreeHeap(buf); } } ; } }
2510
2511static void check_bounds(jsize start, jsize copy_len, jsize array_len, TRAPSJavaThread* __the_thread__) {
2512 ResourceMark rm(THREAD__the_thread__);
2513 if (copy_len < 0) {
2514 stringStream ss;
2515 ss.print("Length %d is negative", copy_len);
2516 THROW_MSG(vmSymbols::java_lang_ArrayIndexOutOfBoundsException(), ss.as_string()){ Exceptions::_throw_msg(__the_thread__, "/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2516, vmSymbols::java_lang_ArrayIndexOutOfBoundsException()
, ss.as_string()); return; }
;
2517 } else if (start < 0 || (start > array_len - copy_len)) {
2518 stringStream ss;
2519 ss.print("Array region %d.." INT64_FORMAT"%" "l" "d" " out of bounds for length %d",
2520 start, (int64_t)start+(int64_t)copy_len, array_len);
2521 THROW_MSG(vmSymbols::java_lang_ArrayIndexOutOfBoundsException(), ss.as_string()){ Exceptions::_throw_msg(__the_thread__, "/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2521, vmSymbols::java_lang_ArrayIndexOutOfBoundsException()
, ss.as_string()); return; }
;
2522 }
2523}
2524
2525#define DEFINE_GETSCALARARRAYREGION(ElementTag,ElementType,Result, Tag \; ; extern "C" { void jni_GetResultArrayRegion(JNIEnv *env, ElementTypeArray
array, jsize start, jsize len, ElementType *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2526, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ; typeArrayOop src = typeArrayOop
(JNIHandles::resolve_non_null(array)); check_bounds(start, len
, src->length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<ElementType>(start), buf, len); } } }
2526 , EntryProbe, ReturnProbe); ; extern "C" { void jni_GetResultArrayRegion(JNIEnv *env, ElementTypeArray
array, jsize start, jsize len, ElementType *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2526, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ; typeArrayOop src = typeArrayOop
(JNIHandles::resolve_non_null(array)); check_bounds(start, len
, src->length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<ElementType>(start), buf, len); } } }
; \
2527 DT_VOID_RETURN_MARK_DECL(Get##Result##ArrayRegion \
2528 , ReturnProbe); \extern "C" { void jni_Get##Result##ArrayRegion(JNIEnv *env, ElementType
##Array array, jsize start, jsize len, ElementType *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2532, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2529\extern "C" { void jni_Get##Result##ArrayRegion(JNIEnv *env, ElementType
##Array array, jsize start, jsize len, ElementType *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2532, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2530JNI_ENTRY(void, \extern "C" { void jni_Get##Result##ArrayRegion(JNIEnv *env, ElementType
##Array array, jsize start, jsize len, ElementType *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2532, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2531jni_Get##Result##ArrayRegion(JNIEnv *env, ElementType##Array array, jsize start, \extern "C" { void jni_Get##Result##ArrayRegion(JNIEnv *env, ElementType
##Array array, jsize start, jsize len, ElementType *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2532, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2532 jsize len, ElementType *buf))extern "C" { void jni_Get##Result##ArrayRegion(JNIEnv *env, ElementType
##Array array, jsize start, jsize len, ElementType *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2532, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
\
2533 EntryProbe; \
2534 DT_VOID_RETURN_MARK(Get##Result##ArrayRegion); \
2535 typeArrayOop src = typeArrayOop(JNIHandles::resolve_non_null(array)); \
2536 check_bounds(start, len, src->length(), CHECK__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return ; (void)(0
); \
2537 if (len > 0) { \
2538 ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc::element_offset<ElementType>(start), buf, len); \
2539 } \} }
2540JNI_END} }
2541
2542DEFINE_GETSCALARARRAYREGION(T_BOOLEAN, jboolean,Boolean, bool; ; extern "C" { void jni_GetBooleanArrayRegion(JNIEnv *env, jbooleanArray
array, jsize start, jsize len, jboolean *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2544, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jboolean>(start), buf, len); } } }
2543 , HOTSPOT_JNI_GETBOOLEANARRAYREGION_ENTRY(env, array, start, len, (uintptr_t *) buf),; ; extern "C" { void jni_GetBooleanArrayRegion(JNIEnv *env, jbooleanArray
array, jsize start, jsize len, jboolean *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2544, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jboolean>(start), buf, len); } } }
2544 HOTSPOT_JNI_GETBOOLEANARRAYREGION_RETURN()); ; extern "C" { void jni_GetBooleanArrayRegion(JNIEnv *env, jbooleanArray
array, jsize start, jsize len, jboolean *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2544, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jboolean>(start), buf, len); } } }
;
2545DEFINE_GETSCALARARRAYREGION(T_BYTE, jbyte, Byte, byte; ; extern "C" { void jni_GetByteArrayRegion(JNIEnv *env, jbyteArray
array, jsize start, jsize len, jbyte *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2547, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jbyte>(start), buf, len); } } }
2546 , HOTSPOT_JNI_GETBYTEARRAYREGION_ENTRY(env, array, start, len, (char *) buf),; ; extern "C" { void jni_GetByteArrayRegion(JNIEnv *env, jbyteArray
array, jsize start, jsize len, jbyte *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2547, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jbyte>(start), buf, len); } } }
2547 HOTSPOT_JNI_GETBYTEARRAYREGION_RETURN()); ; extern "C" { void jni_GetByteArrayRegion(JNIEnv *env, jbyteArray
array, jsize start, jsize len, jbyte *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2547, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jbyte>(start), buf, len); } } }
;
2548DEFINE_GETSCALARARRAYREGION(T_SHORT, jshort, Short, short; ; extern "C" { void jni_GetShortArrayRegion(JNIEnv *env, jshortArray
array, jsize start, jsize len, jshort *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2550, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jshort>(start), buf, len); } } }
2549 , HOTSPOT_JNI_GETSHORTARRAYREGION_ENTRY(env, array, start, len, (uint16_t *) buf),; ; extern "C" { void jni_GetShortArrayRegion(JNIEnv *env, jshortArray
array, jsize start, jsize len, jshort *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2550, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jshort>(start), buf, len); } } }
2550 HOTSPOT_JNI_GETSHORTARRAYREGION_RETURN()); ; extern "C" { void jni_GetShortArrayRegion(JNIEnv *env, jshortArray
array, jsize start, jsize len, jshort *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2550, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jshort>(start), buf, len); } } }
;
2551DEFINE_GETSCALARARRAYREGION(T_CHAR, jchar, Char, char; ; extern "C" { void jni_GetCharArrayRegion(JNIEnv *env, jcharArray
array, jsize start, jsize len, jchar *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2553, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jchar>(start), buf, len); } } }
2552 , HOTSPOT_JNI_GETCHARARRAYREGION_ENTRY(env, array, start, len, (uint16_t*) buf),; ; extern "C" { void jni_GetCharArrayRegion(JNIEnv *env, jcharArray
array, jsize start, jsize len, jchar *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2553, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jchar>(start), buf, len); } } }
2553 HOTSPOT_JNI_GETCHARARRAYREGION_RETURN()); ; extern "C" { void jni_GetCharArrayRegion(JNIEnv *env, jcharArray
array, jsize start, jsize len, jchar *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2553, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jchar>(start), buf, len); } } }
;
2554DEFINE_GETSCALARARRAYREGION(T_INT, jint, Int, int; ; extern "C" { void jni_GetIntArrayRegion(JNIEnv *env, jintArray
array, jsize start, jsize len, jint *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2556, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jint>(start), buf, len); } } }
2555 , HOTSPOT_JNI_GETINTARRAYREGION_ENTRY(env, array, start, len, (uint32_t*) buf),; ; extern "C" { void jni_GetIntArrayRegion(JNIEnv *env, jintArray
array, jsize start, jsize len, jint *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2556, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jint>(start), buf, len); } } }
2556 HOTSPOT_JNI_GETINTARRAYREGION_RETURN()); ; extern "C" { void jni_GetIntArrayRegion(JNIEnv *env, jintArray
array, jsize start, jsize len, jint *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2556, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jint>(start), buf, len); } } }
;
2557DEFINE_GETSCALARARRAYREGION(T_LONG, jlong, Long, long; ; extern "C" { void jni_GetLongArrayRegion(JNIEnv *env, jlongArray
array, jsize start, jsize len, jlong *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2559, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jlong>(start), buf, len); } } }
2558 , HOTSPOT_JNI_GETLONGARRAYREGION_ENTRY(env, array, start, len, (uintptr_t *) buf),; ; extern "C" { void jni_GetLongArrayRegion(JNIEnv *env, jlongArray
array, jsize start, jsize len, jlong *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2559, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jlong>(start), buf, len); } } }
2559 HOTSPOT_JNI_GETLONGARRAYREGION_RETURN()); ; extern "C" { void jni_GetLongArrayRegion(JNIEnv *env, jlongArray
array, jsize start, jsize len, jlong *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2559, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jlong>(start), buf, len); } } }
;
2560DEFINE_GETSCALARARRAYREGION(T_FLOAT, jfloat, Float, float; ; extern "C" { void jni_GetFloatArrayRegion(JNIEnv *env, jfloatArray
array, jsize start, jsize len, jfloat *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2562, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jfloat>(start), buf, len); } } }
2561 , HOTSPOT_JNI_GETFLOATARRAYREGION_ENTRY(env, array, start, len, (float *) buf),; ; extern "C" { void jni_GetFloatArrayRegion(JNIEnv *env, jfloatArray
array, jsize start, jsize len, jfloat *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2562, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jfloat>(start), buf, len); } } }
2562 HOTSPOT_JNI_GETFLOATARRAYREGION_RETURN()); ; extern "C" { void jni_GetFloatArrayRegion(JNIEnv *env, jfloatArray
array, jsize start, jsize len, jfloat *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2562, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jfloat>(start), buf, len); } } }
;
2563DEFINE_GETSCALARARRAYREGION(T_DOUBLE, jdouble, Double, double; ; extern "C" { void jni_GetDoubleArrayRegion(JNIEnv *env, jdoubleArray
array, jsize start, jsize len, jdouble *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2565, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jdouble>(start), buf, len); } } }
2564 , HOTSPOT_JNI_GETDOUBLEARRAYREGION_ENTRY(env, array, start, len, (double *) buf),; ; extern "C" { void jni_GetDoubleArrayRegion(JNIEnv *env, jdoubleArray
array, jsize start, jsize len, jdouble *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2565, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jdouble>(start), buf, len); } } }
2565 HOTSPOT_JNI_GETDOUBLEARRAYREGION_RETURN()); ; extern "C" { void jni_GetDoubleArrayRegion(JNIEnv *env, jdoubleArray
array, jsize start, jsize len, jdouble *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2565, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop src = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, src->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_to_native(src, typeArrayOopDesc
::element_offset<jdouble>(start), buf, len); } } }
;
2566
2567
2568#define DEFINE_SETSCALARARRAYREGION(ElementTag,ElementType,Result, Tag \; ; extern "C" { void jni_SetResultArrayRegion(JNIEnv *env, ElementTypeArray
array, jsize start, jsize len, const ElementType *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2569, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ; typeArrayOop dst = typeArrayOop
(JNIHandles::resolve_non_null(array)); check_bounds(start, len
, dst->length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<ElementType>(start), len); } } }
2569 , EntryProbe, ReturnProbe); ; extern "C" { void jni_SetResultArrayRegion(JNIEnv *env, ElementTypeArray
array, jsize start, jsize len, const ElementType *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2569, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); EntryProbe; ; typeArrayOop dst = typeArrayOop
(JNIHandles::resolve_non_null(array)); check_bounds(start, len
, dst->length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<ElementType>(start), len); } } }
; \
2570 DT_VOID_RETURN_MARK_DECL(Set##Result##ArrayRegion \
2571 ,ReturnProbe); \extern "C" { void jni_Set##Result##ArrayRegion(JNIEnv *env, ElementType
##Array array, jsize start, jsize len, const ElementType *buf
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2575, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2572\extern "C" { void jni_Set##Result##ArrayRegion(JNIEnv *env, ElementType
##Array array, jsize start, jsize len, const ElementType *buf
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2575, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2573JNI_ENTRY(void, \extern "C" { void jni_Set##Result##ArrayRegion(JNIEnv *env, ElementType
##Array array, jsize start, jsize len, const ElementType *buf
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2575, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2574jni_Set##Result##ArrayRegion(JNIEnv *env, ElementType##Array array, jsize start, \extern "C" { void jni_Set##Result##ArrayRegion(JNIEnv *env, ElementType
##Array array, jsize start, jsize len, const ElementType *buf
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2575, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2575 jsize len, const ElementType *buf))extern "C" { void jni_Set##Result##ArrayRegion(JNIEnv *env, ElementType
##Array array, jsize start, jsize len, const ElementType *buf
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2575, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
\
2576 EntryProbe; \
2577 DT_VOID_RETURN_MARK(Set##Result##ArrayRegion); \
2578 typeArrayOop dst = typeArrayOop(JNIHandles::resolve_non_null(array)); \
2579 check_bounds(start, len, dst->length(), CHECK__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return ; (void)(0
); \
2580 if (len > 0) { \
2581 ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc::element_offset<ElementType>(start), len); \
2582 } \} }
2583JNI_END} }
2584
2585DEFINE_SETSCALARARRAYREGION(T_BOOLEAN, jboolean, Boolean, bool; ; extern "C" { void jni_SetBooleanArrayRegion(JNIEnv *env, jbooleanArray
array, jsize start, jsize len, const jboolean *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2587, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jboolean>(start), len); } } }
2586 , HOTSPOT_JNI_SETBOOLEANARRAYREGION_ENTRY(env, array, start, len, (uintptr_t *)buf),; ; extern "C" { void jni_SetBooleanArrayRegion(JNIEnv *env, jbooleanArray
array, jsize start, jsize len, const jboolean *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2587, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jboolean>(start), len); } } }
2587 HOTSPOT_JNI_SETBOOLEANARRAYREGION_RETURN()); ; extern "C" { void jni_SetBooleanArrayRegion(JNIEnv *env, jbooleanArray
array, jsize start, jsize len, const jboolean *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2587, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jboolean>(start), len); } } }
2588DEFINE_SETSCALARARRAYREGION(T_BYTE, jbyte, Byte, byte; ; extern "C" { void jni_SetByteArrayRegion(JNIEnv *env, jbyteArray
array, jsize start, jsize len, const jbyte *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2590, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jbyte>(start), len); } } }
2589 , HOTSPOT_JNI_SETBYTEARRAYREGION_ENTRY(env, array, start, len, (char *) buf),; ; extern "C" { void jni_SetByteArrayRegion(JNIEnv *env, jbyteArray
array, jsize start, jsize len, const jbyte *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2590, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jbyte>(start), len); } } }
2590 HOTSPOT_JNI_SETBYTEARRAYREGION_RETURN()); ; extern "C" { void jni_SetByteArrayRegion(JNIEnv *env, jbyteArray
array, jsize start, jsize len, const jbyte *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2590, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jbyte>(start), len); } } }
2591DEFINE_SETSCALARARRAYREGION(T_SHORT, jshort, Short, short; ; extern "C" { void jni_SetShortArrayRegion(JNIEnv *env, jshortArray
array, jsize start, jsize len, const jshort *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2593, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jshort>(start), len); } } }
2592 , HOTSPOT_JNI_SETSHORTARRAYREGION_ENTRY(env, array, start, len, (uint16_t *) buf),; ; extern "C" { void jni_SetShortArrayRegion(JNIEnv *env, jshortArray
array, jsize start, jsize len, const jshort *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2593, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jshort>(start), len); } } }
2593 HOTSPOT_JNI_SETSHORTARRAYREGION_RETURN()); ; extern "C" { void jni_SetShortArrayRegion(JNIEnv *env, jshortArray
array, jsize start, jsize len, const jshort *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2593, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jshort>(start), len); } } }
2594DEFINE_SETSCALARARRAYREGION(T_CHAR, jchar, Char, char; ; extern "C" { void jni_SetCharArrayRegion(JNIEnv *env, jcharArray
array, jsize start, jsize len, const jchar *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2596, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jchar>(start), len); } } }
2595 , HOTSPOT_JNI_SETCHARARRAYREGION_ENTRY(env, array, start, len, (uint16_t *) buf),; ; extern "C" { void jni_SetCharArrayRegion(JNIEnv *env, jcharArray
array, jsize start, jsize len, const jchar *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2596, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jchar>(start), len); } } }
2596 HOTSPOT_JNI_SETCHARARRAYREGION_RETURN()); ; extern "C" { void jni_SetCharArrayRegion(JNIEnv *env, jcharArray
array, jsize start, jsize len, const jchar *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2596, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jchar>(start), len); } } }
2597DEFINE_SETSCALARARRAYREGION(T_INT, jint, Int, int; ; extern "C" { void jni_SetIntArrayRegion(JNIEnv *env, jintArray
array, jsize start, jsize len, const jint *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2599, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jint>(start), len); } } }
2598 , HOTSPOT_JNI_SETINTARRAYREGION_ENTRY(env, array, start, len, (uint32_t *) buf),; ; extern "C" { void jni_SetIntArrayRegion(JNIEnv *env, jintArray
array, jsize start, jsize len, const jint *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2599, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jint>(start), len); } } }
2599 HOTSPOT_JNI_SETINTARRAYREGION_RETURN()); ; extern "C" { void jni_SetIntArrayRegion(JNIEnv *env, jintArray
array, jsize start, jsize len, const jint *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2599, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jint>(start), len); } } }
2600DEFINE_SETSCALARARRAYREGION(T_LONG, jlong, Long, long; ; extern "C" { void jni_SetLongArrayRegion(JNIEnv *env, jlongArray
array, jsize start, jsize len, const jlong *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2602, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jlong>(start), len); } } }
2601 , HOTSPOT_JNI_SETLONGARRAYREGION_ENTRY(env, array, start, len, (uintptr_t *) buf),; ; extern "C" { void jni_SetLongArrayRegion(JNIEnv *env, jlongArray
array, jsize start, jsize len, const jlong *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2602, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jlong>(start), len); } } }
2602 HOTSPOT_JNI_SETLONGARRAYREGION_RETURN()); ; extern "C" { void jni_SetLongArrayRegion(JNIEnv *env, jlongArray
array, jsize start, jsize len, const jlong *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2602, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jlong>(start), len); } } }
2603DEFINE_SETSCALARARRAYREGION(T_FLOAT, jfloat, Float, float; ; extern "C" { void jni_SetFloatArrayRegion(JNIEnv *env, jfloatArray
array, jsize start, jsize len, const jfloat *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2605, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jfloat>(start), len); } } }
2604 , HOTSPOT_JNI_SETFLOATARRAYREGION_ENTRY(env, array, start, len, (float *) buf),; ; extern "C" { void jni_SetFloatArrayRegion(JNIEnv *env, jfloatArray
array, jsize start, jsize len, const jfloat *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2605, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jfloat>(start), len); } } }
2605 HOTSPOT_JNI_SETFLOATARRAYREGION_RETURN()); ; extern "C" { void jni_SetFloatArrayRegion(JNIEnv *env, jfloatArray
array, jsize start, jsize len, const jfloat *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2605, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jfloat>(start), len); } } }
2606DEFINE_SETSCALARARRAYREGION(T_DOUBLE, jdouble, Double, double; ; extern "C" { void jni_SetDoubleArrayRegion(JNIEnv *env, jdoubleArray
array, jsize start, jsize len, const jdouble *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2608, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jdouble>(start), len); } } }
2607 , HOTSPOT_JNI_SETDOUBLEARRAYREGION_ENTRY(env, array, start, len, (double *) buf),; ; extern "C" { void jni_SetDoubleArrayRegion(JNIEnv *env, jdoubleArray
array, jsize start, jsize len, const jdouble *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2608, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jdouble>(start), len); } } }
2608 HOTSPOT_JNI_SETDOUBLEARRAYREGION_RETURN()); ; extern "C" { void jni_SetDoubleArrayRegion(JNIEnv *env, jdoubleArray
array, jsize start, jsize len, const jdouble *buf) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2608, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread); ; ; typeArrayOop dst = typeArrayOop(JNIHandles
::resolve_non_null(array)); check_bounds(start, len, dst->
length(), __the_thread__); if ((((ThreadShadow*)__the_thread__
)->has_pending_exception())) return ; (void)(0); if (len >
0) { ArrayAccess<>::arraycopy_from_native(buf, dst, typeArrayOopDesc
::element_offset<jdouble>(start), len); } } }
2609
2610
2611DT_RETURN_MARK_DECL(RegisterNatives, jint
2612 , HOTSPOT_JNI_REGISTERNATIVES_RETURN(_ret_ref));
2613
2614JNI_ENTRY(jint, jni_RegisterNatives(JNIEnv *env, jclass clazz,extern "C" { jint jni_RegisterNatives(JNIEnv *env, jclass clazz
, const JNINativeMethod *methods, jint nMethods) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2616, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2615 const JNINativeMethod *methods,extern "C" { jint jni_RegisterNatives(JNIEnv *env, jclass clazz
, const JNINativeMethod *methods, jint nMethods) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2616, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2616 jint nMethods))extern "C" { jint jni_RegisterNatives(JNIEnv *env, jclass clazz
, const JNINativeMethod *methods, jint nMethods) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2616, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2617 HOTSPOT_JNI_REGISTERNATIVES_ENTRY(env, clazz, (void *) methods, nMethods);
2618 jint ret = 0;
2619 DT_RETURN_MARK(RegisterNatives, jint, (const jint&)ret);
2620
2621 Klass* k = java_lang_Class::as_Klass(JNIHandles::resolve_non_null(clazz));
2622
2623 // There are no restrictions on native code registering native methods,
2624 // which allows agents to redefine the bindings to native methods, however
2625 // we issue a warning if any code running outside of the boot/platform
2626 // loader is rebinding any native methods in classes loaded by the
2627 // boot/platform loader that are in named modules. That will catch changes
2628 // to platform classes while excluding classes added to the bootclasspath.
2629 bool do_warning = false;
2630
2631 // Only instanceKlasses can have native methods
2632 if (k->is_instance_klass()) {
2633 oop cl = k->class_loader();
2634 InstanceKlass* ik = InstanceKlass::cast(k);
2635 // Check for a platform class
2636 if ((cl == NULL__null || SystemDictionary::is_platform_class_loader(cl)) &&
2637 ik->module()->is_named()) {
2638 Klass* caller = thread->security_get_caller_class(1);
2639 // If no caller class, or caller class has a different loader, then
2640 // issue a warning below.
2641 do_warning = (caller == NULL__null) || caller->class_loader() != cl;
2642 }
2643 }
2644
2645
2646 for (int index = 0; index < nMethods; index++) {
2647 const char* meth_name = methods[index].name;
2648 const char* meth_sig = methods[index].signature;
2649 int meth_name_len = (int)strlen(meth_name);
2650
2651 // The class should have been loaded (we have an instance of the class
2652 // passed in) so the method and signature should already be in the symbol
2653 // table. If they're not there, the method doesn't exist.
2654 TempNewSymbol name = SymbolTable::probe(meth_name, meth_name_len);
2655 TempNewSymbol signature = SymbolTable::probe(meth_sig, (int)strlen(meth_sig));
2656
2657 if (name == NULL__null || signature == NULL__null) {
2658 ResourceMark rm(THREAD__the_thread__);
2659 stringStream st;
2660 st.print("Method %s.%s%s not found", k->external_name(), meth_name, meth_sig);
2661 // Must return negative value on failure
2662 THROW_MSG_(vmSymbols::java_lang_NoSuchMethodError(), st.as_string(), -1){ Exceptions::_throw_msg(__the_thread__, "/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2662, vmSymbols::java_lang_NoSuchMethodError(), st.as_string
()); return -1; }
;
2663 }
2664
2665 if (do_warning) {
2666 ResourceMark rm(THREAD__the_thread__);
2667 log_warning(jni, resolve)(!(LogImpl<(LogTag::_jni), (LogTag::_resolve), (LogTag::__NO_TAG
), (LogTag::__NO_TAG), (LogTag::__NO_TAG), (LogTag::__NO_TAG)
>::is_level(LogLevel::Warning))) ? (void)0 : LogImpl<(LogTag
::_jni), (LogTag::_resolve), (LogTag::__NO_TAG), (LogTag::__NO_TAG
), (LogTag::__NO_TAG), (LogTag::__NO_TAG)>::write<LogLevel
::Warning>
("Re-registering of platform native method: %s.%s%s "
2668 "from code in a different classloader", k->external_name(), meth_name, meth_sig);
2669 }
2670
2671 bool res = Method::register_native(k, name, signature,
2672 (address) methods[index].fnPtr, THREAD__the_thread__);
2673 if (!res) {
2674 ret = -1;
2675 break;
2676 }
2677 }
2678 return ret;
2679JNI_END} }
2680
2681
2682JNI_ENTRY(jint, jni_UnregisterNatives(JNIEnv *env, jclass clazz))extern "C" { jint jni_UnregisterNatives(JNIEnv *env, jclass clazz
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2682, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2683 HOTSPOT_JNI_UNREGISTERNATIVES_ENTRY(env, clazz);
2684 Klass* k = java_lang_Class::as_Klass(JNIHandles::resolve_non_null(clazz));
2685 //%note jni_2
2686 if (k->is_instance_klass()) {
2687 for (int index = 0; index < InstanceKlass::cast(k)->methods()->length(); index++) {
2688 Method* m = InstanceKlass::cast(k)->methods()->at(index);
2689 if (m->is_native()) {
2690 m->clear_native_function();
2691 m->set_signature_handler(NULL__null);
2692 }
2693 }
2694 }
2695 HOTSPOT_JNI_UNREGISTERNATIVES_RETURN(0);
2696 return 0;
2697JNI_END} }
2698
2699//
2700// Monitor functions
2701//
2702
2703DT_RETURN_MARK_DECL(MonitorEnter, jint
2704 , HOTSPOT_JNI_MONITORENTER_RETURN(_ret_ref));
2705
2706JNI_ENTRY(jint, jni_MonitorEnter(JNIEnv *env, jobject jobj))extern "C" { jint jni_MonitorEnter(JNIEnv *env, jobject jobj)
{ JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2706, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2707 HOTSPOT_JNI_MONITORENTER_ENTRY(env, jobj);
2708 jint ret = JNI_ERR(-1);
2709 DT_RETURN_MARK(MonitorEnter, jint, (const jint&)ret);
2710
2711 // If the object is null, we can't do anything with it
2712 if (jobj == NULL__null) {
2713 THROW_(vmSymbols::java_lang_NullPointerException(), JNI_ERR){ Exceptions::_throw_msg(__the_thread__, "/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2713, vmSymbols::java_lang_NullPointerException(), __null);
return (-1); }
;
2714 }
2715
2716 Handle obj(thread, JNIHandles::resolve_non_null(jobj));
2717 ObjectSynchronizer::jni_enter(obj, thread);
2718 ret = JNI_OK0;
2719 return ret;
2720JNI_END} }
2721
2722DT_RETURN_MARK_DECL(MonitorExit, jint
2723 , HOTSPOT_JNI_MONITOREXIT_RETURN(_ret_ref));
2724
2725JNI_ENTRY(jint, jni_MonitorExit(JNIEnv *env, jobject jobj))extern "C" { jint jni_MonitorExit(JNIEnv *env, jobject jobj) {
JavaThread* thread=JavaThread::thread_from_jni_environment(env
); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2725, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2726 HOTSPOT_JNI_MONITOREXIT_ENTRY(env, jobj);
2727 jint ret = JNI_ERR(-1);
2728 DT_RETURN_MARK(MonitorExit, jint, (const jint&)ret);
2729
2730 // Don't do anything with a null object
2731 if (jobj == NULL__null) {
2732 THROW_(vmSymbols::java_lang_NullPointerException(), JNI_ERR){ Exceptions::_throw_msg(__the_thread__, "/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2732, vmSymbols::java_lang_NullPointerException(), __null);
return (-1); }
;
2733 }
2734
2735 Handle obj(THREAD__the_thread__, JNIHandles::resolve_non_null(jobj));
2736 ObjectSynchronizer::jni_exit(obj(), CHECK_(JNI_ERR)__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return (-1); (void)(0
);
2737
2738 ret = JNI_OK0;
2739 return ret;
2740JNI_END} }
2741
2742//
2743// Extensions
2744//
2745
2746DT_VOID_RETURN_MARK_DECL(GetStringRegion
2747 , HOTSPOT_JNI_GETSTRINGREGION_RETURN());
2748
2749JNI_ENTRY(void, jni_GetStringRegion(JNIEnv *env, jstring string, jsize start, jsize len, jchar *buf))extern "C" { void jni_GetStringRegion(JNIEnv *env, jstring string
, jsize start, jsize len, jchar *buf) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2749, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2750 HOTSPOT_JNI_GETSTRINGREGION_ENTRY(env, string, start, len, buf);
2751 DT_VOID_RETURN_MARK(GetStringRegion);
2752 oop s = JNIHandles::resolve_non_null(string);
2753 typeArrayOop s_value = java_lang_String::value(s);
2754 int s_len = java_lang_String::length(s, s_value);
2755 if (start < 0 || len < 0 || start > s_len - len) {
2756 THROW(vmSymbols::java_lang_StringIndexOutOfBoundsException()){ Exceptions::_throw_msg(__the_thread__, "/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2756, vmSymbols::java_lang_StringIndexOutOfBoundsException(
), __null); return; }
;
2757 } else {
2758 if (len > 0) {
2759 bool is_latin1 = java_lang_String::is_latin1(s);
2760 if (!is_latin1) {
2761 ArrayAccess<>::arraycopy_to_native(s_value, typeArrayOopDesc::element_offset<jchar>(start),
2762 buf, len);
2763 } else {
2764 for (int i = 0; i < len; i++) {
2765 buf[i] = ((jchar) s_value->byte_at(i + start)) & 0xff;
2766 }
2767 }
2768 }
2769 }
2770JNI_END} }
2771
2772DT_VOID_RETURN_MARK_DECL(GetStringUTFRegion
2773 , HOTSPOT_JNI_GETSTRINGUTFREGION_RETURN());
2774
2775JNI_ENTRY(void, jni_GetStringUTFRegion(JNIEnv *env, jstring string, jsize start, jsize len, char *buf))extern "C" { void jni_GetStringUTFRegion(JNIEnv *env, jstring
string, jsize start, jsize len, char *buf) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2775, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2776 HOTSPOT_JNI_GETSTRINGUTFREGION_ENTRY(env, string, start, len, buf);
2777 DT_VOID_RETURN_MARK(GetStringUTFRegion);
2778 oop s = JNIHandles::resolve_non_null(string);
2779 typeArrayOop s_value = java_lang_String::value(s);
2780 int s_len = java_lang_String::length(s, s_value);
2781 if (start < 0 || len < 0 || start > s_len - len) {
2782 THROW(vmSymbols::java_lang_StringIndexOutOfBoundsException()){ Exceptions::_throw_msg(__the_thread__, "/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2782, vmSymbols::java_lang_StringIndexOutOfBoundsException(
), __null); return; }
;
2783 } else {
2784 //%note jni_7
2785 if (len > 0) {
2786 // Assume the buffer is large enough as the JNI spec. does not require user error checking
2787 java_lang_String::as_utf8_string(s, s_value, start, len, buf, INT_MAX2147483647);
2788 // as_utf8_string null-terminates the result string
2789 } else {
2790 // JDK null-terminates the buffer even in len is zero
2791 if (buf != NULL__null) {
2792 buf[0] = 0;
2793 }
2794 }
2795 }
2796JNI_END} }
2797
2798static oop lock_gc_or_pin_object(JavaThread* thread, jobject obj) {
2799 if (Universe::heap()->supports_object_pinning()) {
2800 const oop o = JNIHandles::resolve_non_null(obj);
2801 return Universe::heap()->pin_object(thread, o);
2802 } else {
2803 GCLocker::lock_critical(thread);
2804 return JNIHandles::resolve_non_null(obj);
2805 }
2806}
2807
2808static void unlock_gc_or_unpin_object(JavaThread* thread, jobject obj) {
2809 if (Universe::heap()->supports_object_pinning()) {
2810 const oop o = JNIHandles::resolve_non_null(obj);
2811 return Universe::heap()->unpin_object(thread, o);
2812 } else {
2813 GCLocker::unlock_critical(thread);
2814 }
2815}
2816
2817JNI_ENTRY(void*, jni_GetPrimitiveArrayCritical(JNIEnv *env, jarray array, jboolean *isCopy))extern "C" { void* jni_GetPrimitiveArrayCritical(JNIEnv *env,
jarray array, jboolean *isCopy) { JavaThread* thread=JavaThread
::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2817, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2818 HOTSPOT_JNI_GETPRIMITIVEARRAYCRITICAL_ENTRY(env, array, (uintptr_t *) isCopy);
2819 if (isCopy != NULL__null) {
2820 *isCopy = JNI_FALSE0;
2821 }
2822 oop a = lock_gc_or_pin_object(thread, array);
2823 assert(a->is_typeArray(), "Primitive array only")do { if (!(a->is_typeArray())) { (*g_assert_poison) = 'X';
; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2823, "assert(" "a->is_typeArray()" ") failed", "Primitive array only"
); ::breakpoint(); } } while (0)
;
2824 BasicType type = TypeArrayKlass::cast(a->klass())->element_type();
2825 void* ret = arrayOop(a)->base(type);
2826 HOTSPOT_JNI_GETPRIMITIVEARRAYCRITICAL_RETURN(ret);
2827 return ret;
2828JNI_END} }
2829
2830
2831JNI_ENTRY(void, jni_ReleasePrimitiveArrayCritical(JNIEnv *env, jarray array, void *carray, jint mode))extern "C" { void jni_ReleasePrimitiveArrayCritical(JNIEnv *env
, jarray array, void *carray, jint mode) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2831, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2832 HOTSPOT_JNI_RELEASEPRIMITIVEARRAYCRITICAL_ENTRY(env, array, carray, mode);
2833 unlock_gc_or_unpin_object(thread, array);
2834HOTSPOT_JNI_RELEASEPRIMITIVEARRAYCRITICAL_RETURN();
2835JNI_END} }
2836
2837
2838static typeArrayOop lock_gc_or_pin_string_value(JavaThread* thread, oop str) {
2839 if (Universe::heap()->supports_object_pinning()) {
2840 // Forbid deduplication before obtaining the value array, to prevent
2841 // deduplication from replacing the value array while setting up or in
2842 // the critical section. That would lead to the release operation
2843 // unpinning the wrong object.
2844 if (StringDedup::is_enabled()) {
2845 NoSafepointVerifier nsv;
2846 StringDedup::forbid_deduplication(str);
2847 }
2848 typeArrayOop s_value = java_lang_String::value(str);
2849 return (typeArrayOop) Universe::heap()->pin_object(thread, s_value);
2850 } else {
2851 Handle h(thread, str); // Handlize across potential safepoint.
2852 GCLocker::lock_critical(thread);
2853 return java_lang_String::value(h());
2854 }
2855}
2856
2857static void unlock_gc_or_unpin_string_value(JavaThread* thread, oop str) {
2858 if (Universe::heap()->supports_object_pinning()) {
2859 typeArrayOop s_value = java_lang_String::value(str);
2860 Universe::heap()->unpin_object(thread, s_value);
2861 } else {
2862 GCLocker::unlock_critical(thread);
2863 }
2864}
2865
2866JNI_ENTRY(const jchar*, jni_GetStringCritical(JNIEnv *env, jstring string, jboolean *isCopy))extern "C" { const jchar* jni_GetStringCritical(JNIEnv *env, jstring
string, jboolean *isCopy) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2866, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2867 HOTSPOT_JNI_GETSTRINGCRITICAL_ENTRY(env, string, (uintptr_t *) isCopy);
2868 oop s = JNIHandles::resolve_non_null(string);
2869 jchar* ret;
2870 if (!java_lang_String::is_latin1(s)) {
2871 typeArrayOop s_value = lock_gc_or_pin_string_value(thread, s);
2872 ret = (jchar*) s_value->base(T_CHAR);
2873 if (isCopy != NULL__null) *isCopy = JNI_FALSE0;
2874 } else {
2875 // Inflate latin1 encoded string to UTF16
2876 typeArrayOop s_value = java_lang_String::value(s);
2877 int s_len = java_lang_String::length(s, s_value);
2878 ret = NEW_C_HEAP_ARRAY_RETURN_NULL(jchar, s_len + 1, mtInternal)(jchar*) (AllocateHeap(((s_len + 1)) * sizeof(jchar), mtInternal
, AllocFailStrategy::RETURN_NULL))
; // add one for zero termination
2879 /* JNI Specification states return NULL on OOM */
2880 if (ret != NULL__null) {
2881 for (int i = 0; i < s_len; i++) {
2882 ret[i] = ((jchar) s_value->byte_at(i)) & 0xff;
2883 }
2884 ret[s_len] = 0;
2885 }
2886 if (isCopy != NULL__null) *isCopy = JNI_TRUE1;
2887 }
2888 HOTSPOT_JNI_GETSTRINGCRITICAL_RETURN((uint16_t *) ret);
2889 return ret;
2890JNI_END} }
2891
2892
2893JNI_ENTRY(void, jni_ReleaseStringCritical(JNIEnv *env, jstring str, const jchar *chars))extern "C" { void jni_ReleaseStringCritical(JNIEnv *env, jstring
str, const jchar *chars) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2893, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2894 HOTSPOT_JNI_RELEASESTRINGCRITICAL_ENTRY(env, str, (uint16_t *) chars);
2895 oop s = JNIHandles::resolve_non_null(str);
2896 bool is_latin1 = java_lang_String::is_latin1(s);
2897 if (is_latin1) {
2898 // For latin1 string, free jchar array allocated by earlier call to GetStringCritical.
2899 // This assumes that ReleaseStringCritical bookends GetStringCritical.
2900 FREE_C_HEAP_ARRAY(jchar, chars)FreeHeap((char*)(chars));
2901 } else {
2902 // For non-latin1 string, drop the associated gc-locker/pin.
2903 unlock_gc_or_unpin_string_value(thread, s);
2904 }
2905HOTSPOT_JNI_RELEASESTRINGCRITICAL_RETURN();
2906JNI_END} }
2907
2908
2909JNI_ENTRY(jweak, jni_NewWeakGlobalRef(JNIEnv *env, jobject ref))extern "C" { jweak jni_NewWeakGlobalRef(JNIEnv *env, jobject ref
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2909, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2910 HOTSPOT_JNI_NEWWEAKGLOBALREF_ENTRY(env, ref);
2911 Handle ref_handle(thread, JNIHandles::resolve(ref));
2912 jweak ret = JNIHandles::make_weak_global(ref_handle, AllocFailStrategy::RETURN_NULL);
2913 if (ret == NULL__null) {
2914 THROW_OOP_(Universe::out_of_memory_error_c_heap(), NULL){ Exceptions::_throw_oop(__the_thread__, "/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2914, Universe::out_of_memory_error_c_heap()); return __null
; }
;
2915 }
2916 HOTSPOT_JNI_NEWWEAKGLOBALREF_RETURN(ret);
2917 return ret;
2918JNI_END} }
2919
2920// Must be JNI_ENTRY (with HandleMark)
2921JNI_ENTRY(void, jni_DeleteWeakGlobalRef(JNIEnv *env, jweak ref))extern "C" { void jni_DeleteWeakGlobalRef(JNIEnv *env, jweak ref
) { JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2921, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2922 HOTSPOT_JNI_DELETEWEAKGLOBALREF_ENTRY(env, ref);
2923 JNIHandles::destroy_weak_global(ref);
2924 HOTSPOT_JNI_DELETEWEAKGLOBALREF_RETURN();
2925JNI_END} }
2926
2927
2928JNI_ENTRY_NO_PRESERVE(jboolean, jni_ExceptionCheck(JNIEnv *env))extern "C" { jboolean jni_ExceptionCheck(JNIEnv *env) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2928, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment();
2929 HOTSPOT_JNI_EXCEPTIONCHECK_ENTRY(env);
2930 jni_check_async_exceptions(thread);
2931 jboolean ret = (thread->has_pending_exception()) ? JNI_TRUE1 : JNI_FALSE0;
2932 HOTSPOT_JNI_EXCEPTIONCHECK_RETURN(ret);
2933 return ret;
2934JNI_END} }
2935
2936
2937// Initialization state for three routines below relating to
2938// java.nio.DirectBuffers
2939static int directBufferSupportInitializeStarted = 0;
2940static volatile int directBufferSupportInitializeEnded = 0;
2941static volatile int directBufferSupportInitializeFailed = 0;
2942static jclass bufferClass = NULL__null;
2943static jclass directBufferClass = NULL__null;
2944static jclass directByteBufferClass = NULL__null;
2945static jmethodID directByteBufferConstructor = NULL__null;
2946static jfieldID directBufferAddressField = NULL__null;
2947static jfieldID bufferCapacityField = NULL__null;
2948
2949static jclass lookupOne(JNIEnv* env, const char* name, TRAPSJavaThread* __the_thread__) {
2950 Handle loader; // null (bootstrap) loader
2951 Handle protection_domain; // null protection domain
2952
2953 TempNewSymbol sym = SymbolTable::new_symbol(name);
2954 jclass result = find_class_from_class_loader(env, sym, true, loader, protection_domain, true, CHECK_NULL__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) return __null; (void)(0
);
2955
2956 if (log_is_enabled(Debug, class, resolve)(LogImpl<(LogTag::_class), (LogTag::_resolve), (LogTag::__NO_TAG
), (LogTag::__NO_TAG), (LogTag::__NO_TAG), (LogTag::__NO_TAG)
>::is_level(LogLevel::Debug))
&& result != NULL__null) {
2957 trace_class_resolution(java_lang_Class::as_Klass(JNIHandles::resolve_non_null(result)));
2958 }
2959 return result;
2960}
2961
2962// These lookups are done with the NULL (bootstrap) ClassLoader to
2963// circumvent any security checks that would be done by jni_FindClass.
2964JNI_ENTRY(bool, lookupDirectBufferClasses(JNIEnv* env))extern "C" { bool lookupDirectBufferClasses(JNIEnv* env) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 2964, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
2965{
2966 if ((bufferClass = lookupOne(env, "java/nio/Buffer", thread)) == NULL__null) { return false; }
2967 if ((directBufferClass = lookupOne(env, "sun/nio/ch/DirectBuffer", thread)) == NULL__null) { return false; }
2968 if ((directByteBufferClass = lookupOne(env, "java/nio/DirectByteBuffer", thread)) == NULL__null) { return false; }
2969 return true;
2970}
2971JNI_END} }
2972
2973
2974static bool initializeDirectBufferSupport(JNIEnv* env, JavaThread* thread) {
2975 if (directBufferSupportInitializeFailed) {
2976 return false;
2977 }
2978
2979 if (Atomic::cmpxchg(&directBufferSupportInitializeStarted, 0, 1) == 0) {
2980 if (!lookupDirectBufferClasses(env)) {
2981 directBufferSupportInitializeFailed = 1;
2982 return false;
2983 }
2984
2985 // Make global references for these
2986 bufferClass = (jclass) env->NewGlobalRef(bufferClass);
2987 directBufferClass = (jclass) env->NewGlobalRef(directBufferClass);
2988 directByteBufferClass = (jclass) env->NewGlobalRef(directByteBufferClass);
2989
2990 // Global refs will be NULL if out-of-memory (no exception is pending)
2991 if (bufferClass == NULL__null || directBufferClass == NULL__null || directByteBufferClass == NULL__null) {
2992 directBufferSupportInitializeFailed = 1;
2993 return false;
2994 }
2995
2996 // Get needed field and method IDs
2997 directByteBufferConstructor = env->GetMethodID(directByteBufferClass, "<init>", "(JI)V");
2998 if (env->ExceptionCheck()) {
2999 env->ExceptionClear();
3000 directBufferSupportInitializeFailed = 1;
3001 return false;
3002 }
3003 directBufferAddressField = env->GetFieldID(bufferClass, "address", "J");
3004 if (env->ExceptionCheck()) {
3005 env->ExceptionClear();
3006 directBufferSupportInitializeFailed = 1;
3007 return false;
3008 }
3009 bufferCapacityField = env->GetFieldID(bufferClass, "capacity", "I");
3010 if (env->ExceptionCheck()) {
3011 env->ExceptionClear();
3012 directBufferSupportInitializeFailed = 1;
3013 return false;
3014 }
3015
3016 if ((directByteBufferConstructor == NULL__null) ||
3017 (directBufferAddressField == NULL__null) ||
3018 (bufferCapacityField == NULL__null)) {
3019 directBufferSupportInitializeFailed = 1;
3020 return false;
3021 }
3022
3023 directBufferSupportInitializeEnded = 1;
3024 } else {
3025 while (!directBufferSupportInitializeEnded && !directBufferSupportInitializeFailed) {
3026 os::naked_yield();
3027 }
3028 }
3029
3030 return !directBufferSupportInitializeFailed;
3031}
3032
3033extern "C" jobject JNICALL jni_NewDirectByteBuffer(JNIEnv *env, void* address, jlong capacity)
3034{
3035 // thread_from_jni_environment() will block if VM is gone.
3036 JavaThread* thread = JavaThread::thread_from_jni_environment(env);
3037
3038 HOTSPOT_JNI_NEWDIRECTBYTEBUFFER_ENTRY(env, address, capacity);
3039
3040 if (!directBufferSupportInitializeEnded) {
3041 if (!initializeDirectBufferSupport(env, thread)) {
3042 HOTSPOT_JNI_NEWDIRECTBYTEBUFFER_RETURN(NULL);
3043 return NULL__null;
3044 }
3045 }
3046
3047 // Being paranoid about accidental sign extension on address
3048 jlong addr = (jlong) ((uintptr_t) address);
3049 // NOTE that package-private DirectByteBuffer constructor currently
3050 // takes int capacity
3051 jint cap = (jint) capacity;
3052 jobject ret = env->NewObject(directByteBufferClass, directByteBufferConstructor, addr, cap);
3053 HOTSPOT_JNI_NEWDIRECTBYTEBUFFER_RETURN(ret);
3054 return ret;
3055}
3056
3057DT_RETURN_MARK_DECL(GetDirectBufferAddress, void*
3058 , HOTSPOT_JNI_GETDIRECTBUFFERADDRESS_RETURN((void*) _ret_ref));
3059
3060extern "C" void* JNICALL jni_GetDirectBufferAddress(JNIEnv *env, jobject buf)
3061{
3062 // thread_from_jni_environment() will block if VM is gone.
3063 JavaThread* thread = JavaThread::thread_from_jni_environment(env);
3064
3065 HOTSPOT_JNI_GETDIRECTBUFFERADDRESS_ENTRY(env, buf);
3066 void* ret = NULL__null;
3067 DT_RETURN_MARK(GetDirectBufferAddress, void*, (const void*&)ret);
3068
3069 if (!directBufferSupportInitializeEnded) {
3070 if (!initializeDirectBufferSupport(env, thread)) {
3071 return 0;
3072 }
3073 }
3074
3075 if ((buf != NULL__null) && (!env->IsInstanceOf(buf, directBufferClass))) {
3076 return 0;
3077 }
3078
3079 ret = (void*)(intptr_t)env->GetLongField(buf, directBufferAddressField);
3080 return ret;
3081}
3082
3083DT_RETURN_MARK_DECL(GetDirectBufferCapacity, jlong
3084 , HOTSPOT_JNI_GETDIRECTBUFFERCAPACITY_RETURN(_ret_ref));
3085
3086extern "C" jlong JNICALL jni_GetDirectBufferCapacity(JNIEnv *env, jobject buf)
3087{
3088 // thread_from_jni_environment() will block if VM is gone.
3089 JavaThread* thread = JavaThread::thread_from_jni_environment(env);
3090
3091 HOTSPOT_JNI_GETDIRECTBUFFERCAPACITY_ENTRY(env, buf);
3092 jlong ret = -1;
3093 DT_RETURN_MARK(GetDirectBufferCapacity, jlong, (const jlong&)ret);
3094
3095 if (!directBufferSupportInitializeEnded) {
3096 if (!initializeDirectBufferSupport(env, thread)) {
3097 ret = 0;
3098 return ret;
3099 }
3100 }
3101
3102 if (buf == NULL__null) {
3103 return -1;
3104 }
3105
3106 if (!env->IsInstanceOf(buf, directBufferClass)) {
3107 return -1;
3108 }
3109
3110 // NOTE that capacity is currently an int in the implementation
3111 ret = env->GetIntField(buf, bufferCapacityField);
3112 return ret;
3113}
3114
3115
3116JNI_LEAF(jint, jni_GetVersion(JNIEnv *env))extern "C" { jint jni_GetVersion(JNIEnv *env) { JavaThread* thread
=JavaThread::thread_from_jni_environment(env); do { if (!(!VerifyJNIEnvThread
|| (thread == Thread::current()))) { (*g_assert_poison) = 'X'
;; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 3116, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); NoHandleMark __hm; ; os::verify_stack_alignment
();
3117 HOTSPOT_JNI_GETVERSION_ENTRY(env);
3118 HOTSPOT_JNI_GETVERSION_RETURN(CurrentVersion);
3119 return CurrentVersion;
3120JNI_END} }
3121
3122extern struct JavaVM_ main_vm;
3123
3124JNI_LEAF(jint, jni_GetJavaVM(JNIEnv *env, JavaVM **vm))extern "C" { jint jni_GetJavaVM(JNIEnv *env, JavaVM **vm) { JavaThread
* thread=JavaThread::thread_from_jni_environment(env); do { if
(!(!VerifyJNIEnvThread || (thread == Thread::current()))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 3124, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); NoHandleMark __hm; ; os::verify_stack_alignment
();
3125 HOTSPOT_JNI_GETJAVAVM_ENTRY(env, (void **) vm);
3126 *vm = (JavaVM *)(&main_vm);
3127 HOTSPOT_JNI_GETJAVAVM_RETURN(JNI_OK);
3128 return JNI_OK0;
3129JNI_END} }
3130
3131
3132JNI_ENTRY(jobject, jni_GetModule(JNIEnv* env, jclass clazz))extern "C" { jobject jni_GetModule(JNIEnv* env, jclass clazz)
{ JavaThread* thread=JavaThread::thread_from_jni_environment
(env); do { if (!(!VerifyJNIEnvThread || (thread == Thread::current
()))) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 3132, "assert(" "!VerifyJNIEnvThread || (thread == Thread::current())"
") failed", "JNIEnv is only valid in same thread"); ::breakpoint
(); } } while (0); ; ThreadInVMfromNative __tiv(thread); VMNativeEntryWrapper
__vew; HandleMarkCleaner __hm(thread); JavaThread* __the_thread__
= thread; os::verify_stack_alignment(); WeakPreserveExceptionMark
__wem(thread);
3133 return Modules::get_module(clazz, THREAD__the_thread__);
3134JNI_END} }
3135
3136
3137// Structure containing all jni functions
3138struct JNINativeInterface_ jni_NativeInterface = {
3139 NULL__null,
3140 NULL__null,
3141 NULL__null,
3142
3143 NULL__null,
3144
3145 jni_GetVersion,
3146
3147 jni_DefineClass,
3148 jni_FindClass,
3149
3150 jni_FromReflectedMethod,
3151 jni_FromReflectedField,
3152
3153 jni_ToReflectedMethod,
3154
3155 jni_GetSuperclass,
3156 jni_IsAssignableFrom,
3157
3158 jni_ToReflectedField,
3159
3160 jni_Throw,
3161 jni_ThrowNew,
3162 jni_ExceptionOccurred,
3163 jni_ExceptionDescribe,
3164 jni_ExceptionClear,
3165 jni_FatalError,
3166
3167 jni_PushLocalFrame,
3168 jni_PopLocalFrame,
3169
3170 jni_NewGlobalRef,
3171 jni_DeleteGlobalRef,
3172 jni_DeleteLocalRef,
3173 jni_IsSameObject,
3174
3175 jni_NewLocalRef,
3176 jni_EnsureLocalCapacity,
3177
3178 jni_AllocObject,
3179 jni_NewObject,
3180 jni_NewObjectV,
3181 jni_NewObjectA,
3182
3183 jni_GetObjectClass,
3184 jni_IsInstanceOf,
3185
3186 jni_GetMethodID,
3187
3188 jni_CallObjectMethod,
3189 jni_CallObjectMethodV,
3190 jni_CallObjectMethodA,
3191 jni_CallBooleanMethod,
3192 jni_CallBooleanMethodV,
3193 jni_CallBooleanMethodA,
3194 jni_CallByteMethod,
3195 jni_CallByteMethodV,
3196 jni_CallByteMethodA,
3197 jni_CallCharMethod,
3198 jni_CallCharMethodV,
3199 jni_CallCharMethodA,
3200 jni_CallShortMethod,
3201 jni_CallShortMethodV,
3202 jni_CallShortMethodA,
3203 jni_CallIntMethod,
3204 jni_CallIntMethodV,
3205 jni_CallIntMethodA,
3206 jni_CallLongMethod,
3207 jni_CallLongMethodV,
3208 jni_CallLongMethodA,
3209 jni_CallFloatMethod,
3210 jni_CallFloatMethodV,
3211 jni_CallFloatMethodA,
3212 jni_CallDoubleMethod,
3213 jni_CallDoubleMethodV,
3214 jni_CallDoubleMethodA,
3215 jni_CallVoidMethod,
3216 jni_CallVoidMethodV,
3217 jni_CallVoidMethodA,
3218
3219 jni_CallNonvirtualObjectMethod,
3220 jni_CallNonvirtualObjectMethodV,
3221 jni_CallNonvirtualObjectMethodA,
3222 jni_CallNonvirtualBooleanMethod,
3223 jni_CallNonvirtualBooleanMethodV,
3224 jni_CallNonvirtualBooleanMethodA,
3225 jni_CallNonvirtualByteMethod,
3226 jni_CallNonvirtualByteMethodV,
3227 jni_CallNonvirtualByteMethodA,
3228 jni_CallNonvirtualCharMethod,
3229 jni_CallNonvirtualCharMethodV,
3230 jni_CallNonvirtualCharMethodA,
3231 jni_CallNonvirtualShortMethod,
3232 jni_CallNonvirtualShortMethodV,
3233 jni_CallNonvirtualShortMethodA,
3234 jni_CallNonvirtualIntMethod,
3235 jni_CallNonvirtualIntMethodV,
3236 jni_CallNonvirtualIntMethodA,
3237 jni_CallNonvirtualLongMethod,
3238 jni_CallNonvirtualLongMethodV,
3239 jni_CallNonvirtualLongMethodA,
3240 jni_CallNonvirtualFloatMethod,
3241 jni_CallNonvirtualFloatMethodV,
3242 jni_CallNonvirtualFloatMethodA,
3243 jni_CallNonvirtualDoubleMethod,
3244 jni_CallNonvirtualDoubleMethodV,
3245 jni_CallNonvirtualDoubleMethodA,
3246 jni_CallNonvirtualVoidMethod,
3247 jni_CallNonvirtualVoidMethodV,
3248 jni_CallNonvirtualVoidMethodA,
3249
3250 jni_GetFieldID,
3251
3252 jni_GetObjectField,
3253 jni_GetBooleanField,
3254 jni_GetByteField,
3255 jni_GetCharField,
3256 jni_GetShortField,
3257 jni_GetIntField,
3258 jni_GetLongField,
3259 jni_GetFloatField,
3260 jni_GetDoubleField,
3261
3262 jni_SetObjectField,
3263 jni_SetBooleanField,
3264 jni_SetByteField,
3265 jni_SetCharField,
3266 jni_SetShortField,
3267 jni_SetIntField,
3268 jni_SetLongField,
3269 jni_SetFloatField,
3270 jni_SetDoubleField,
3271
3272 jni_GetStaticMethodID,
3273
3274 jni_CallStaticObjectMethod,
3275 jni_CallStaticObjectMethodV,
3276 jni_CallStaticObjectMethodA,
3277 jni_CallStaticBooleanMethod,
3278 jni_CallStaticBooleanMethodV,
3279 jni_CallStaticBooleanMethodA,
3280 jni_CallStaticByteMethod,
3281 jni_CallStaticByteMethodV,
3282 jni_CallStaticByteMethodA,
3283 jni_CallStaticCharMethod,
3284 jni_CallStaticCharMethodV,
3285 jni_CallStaticCharMethodA,
3286 jni_CallStaticShortMethod,
3287 jni_CallStaticShortMethodV,
3288 jni_CallStaticShortMethodA,
3289 jni_CallStaticIntMethod,
3290 jni_CallStaticIntMethodV,
3291 jni_CallStaticIntMethodA,
3292 jni_CallStaticLongMethod,
3293 jni_CallStaticLongMethodV,
3294 jni_CallStaticLongMethodA,
3295 jni_CallStaticFloatMethod,
3296 jni_CallStaticFloatMethodV,
3297 jni_CallStaticFloatMethodA,
3298 jni_CallStaticDoubleMethod,
3299 jni_CallStaticDoubleMethodV,
3300 jni_CallStaticDoubleMethodA,
3301 jni_CallStaticVoidMethod,
3302 jni_CallStaticVoidMethodV,
3303 jni_CallStaticVoidMethodA,
3304
3305 jni_GetStaticFieldID,
3306
3307 jni_GetStaticObjectField,
3308 jni_GetStaticBooleanField,
3309 jni_GetStaticByteField,
3310 jni_GetStaticCharField,
3311 jni_GetStaticShortField,
3312 jni_GetStaticIntField,
3313 jni_GetStaticLongField,
3314 jni_GetStaticFloatField,
3315 jni_GetStaticDoubleField,
3316
3317 jni_SetStaticObjectField,
3318 jni_SetStaticBooleanField,
3319 jni_SetStaticByteField,
3320 jni_SetStaticCharField,
3321 jni_SetStaticShortField,
3322 jni_SetStaticIntField,
3323 jni_SetStaticLongField,
3324 jni_SetStaticFloatField,
3325 jni_SetStaticDoubleField,
3326
3327 jni_NewString,
3328 jni_GetStringLength,
3329 jni_GetStringChars,
3330 jni_ReleaseStringChars,
3331
3332 jni_NewStringUTF,
3333 jni_GetStringUTFLength,
3334 jni_GetStringUTFChars,
3335 jni_ReleaseStringUTFChars,
3336
3337 jni_GetArrayLength,
3338
3339 jni_NewObjectArray,
3340 jni_GetObjectArrayElement,
3341 jni_SetObjectArrayElement,
3342
3343 jni_NewBooleanArray,
3344 jni_NewByteArray,
3345 jni_NewCharArray,
3346 jni_NewShortArray,
3347 jni_NewIntArray,
3348 jni_NewLongArray,
3349 jni_NewFloatArray,
3350 jni_NewDoubleArray,
3351
3352 jni_GetBooleanArrayElements,
3353 jni_GetByteArrayElements,
3354 jni_GetCharArrayElements,
3355 jni_GetShortArrayElements,
3356 jni_GetIntArrayElements,
3357 jni_GetLongArrayElements,
3358 jni_GetFloatArrayElements,
3359 jni_GetDoubleArrayElements,
3360
3361 jni_ReleaseBooleanArrayElements,
3362 jni_ReleaseByteArrayElements,
3363 jni_ReleaseCharArrayElements,
3364 jni_ReleaseShortArrayElements,
3365 jni_ReleaseIntArrayElements,
3366 jni_ReleaseLongArrayElements,
3367 jni_ReleaseFloatArrayElements,
3368 jni_ReleaseDoubleArrayElements,
3369
3370 jni_GetBooleanArrayRegion,
3371 jni_GetByteArrayRegion,
3372 jni_GetCharArrayRegion,
3373 jni_GetShortArrayRegion,
3374 jni_GetIntArrayRegion,
3375 jni_GetLongArrayRegion,
3376 jni_GetFloatArrayRegion,
3377 jni_GetDoubleArrayRegion,
3378
3379 jni_SetBooleanArrayRegion,
3380 jni_SetByteArrayRegion,
3381 jni_SetCharArrayRegion,
3382 jni_SetShortArrayRegion,
3383 jni_SetIntArrayRegion,
3384 jni_SetLongArrayRegion,
3385 jni_SetFloatArrayRegion,
3386 jni_SetDoubleArrayRegion,
3387
3388 jni_RegisterNatives,
3389 jni_UnregisterNatives,
3390
3391 jni_MonitorEnter,
3392 jni_MonitorExit,
3393
3394 jni_GetJavaVM,
3395
3396 jni_GetStringRegion,
3397 jni_GetStringUTFRegion,
3398
3399 jni_GetPrimitiveArrayCritical,
3400 jni_ReleasePrimitiveArrayCritical,
3401
3402 jni_GetStringCritical,
3403 jni_ReleaseStringCritical,
3404
3405 jni_NewWeakGlobalRef,
3406 jni_DeleteWeakGlobalRef,
3407
3408 jni_ExceptionCheck,
3409
3410 jni_NewDirectByteBuffer,
3411 jni_GetDirectBufferAddress,
3412 jni_GetDirectBufferCapacity,
3413
3414 // New 1_6 features
3415
3416 jni_GetObjectRefType,
3417
3418 // Module features
3419
3420 jni_GetModule
3421};
3422
3423
3424// For jvmti use to modify jni function table.
3425// Java threads in native contiues to run until it is transitioned
3426// to VM at safepoint. Before the transition or before it is blocked
3427// for safepoint it may access jni function table. VM could crash if
3428// any java thread access the jni function table in the middle of memcpy.
3429// To avoid this each function pointers are copied automically.
3430void copy_jni_function_table(const struct JNINativeInterface_ *new_jni_NativeInterface) {
3431 assert(SafepointSynchronize::is_at_safepoint(), "must be at safepoint")do { if (!(SafepointSynchronize::is_at_safepoint())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 3431, "assert(" "SafepointSynchronize::is_at_safepoint()" ") failed"
, "must be at safepoint"); ::breakpoint(); } } while (0)
;
3432 intptr_t *a = (intptr_t *) jni_functions();
3433 intptr_t *b = (intptr_t *) new_jni_NativeInterface;
3434 for (uint i=0; i < sizeof(struct JNINativeInterface_)/sizeof(void *); i++) {
3435 Atomic::store(a++, *b++);
3436 }
3437}
3438
3439void quicken_jni_functions() {
3440 // Replace Get<Primitive>Field with fast versions
3441 if (UseFastJNIAccessors && !VerifyJNIFields && !CheckJNICalls) {
3442 address func;
3443 func = JNI_FastGetField::generate_fast_get_boolean_field();
3444 if (func != (address)-1) {
3445 jni_NativeInterface.GetBooleanField = (GetBooleanField_t)func;
3446 }
3447 func = JNI_FastGetField::generate_fast_get_byte_field();
3448 if (func != (address)-1) {
3449 jni_NativeInterface.GetByteField = (GetByteField_t)func;
3450 }
3451 func = JNI_FastGetField::generate_fast_get_char_field();
3452 if (func != (address)-1) {
3453 jni_NativeInterface.GetCharField = (GetCharField_t)func;
3454 }
3455 func = JNI_FastGetField::generate_fast_get_short_field();
3456 if (func != (address)-1) {
3457 jni_NativeInterface.GetShortField = (GetShortField_t)func;
3458 }
3459 func = JNI_FastGetField::generate_fast_get_int_field();
3460 if (func != (address)-1) {
3461 jni_NativeInterface.GetIntField = (GetIntField_t)func;
3462 }
3463 func = JNI_FastGetField::generate_fast_get_long_field();
3464 if (func != (address)-1) {
3465 jni_NativeInterface.GetLongField = (GetLongField_t)func;
3466 }
3467 func = JNI_FastGetField::generate_fast_get_float_field();
3468 if (func != (address)-1) {
3469 jni_NativeInterface.GetFloatField = (GetFloatField_t)func;
3470 }
3471 func = JNI_FastGetField::generate_fast_get_double_field();
3472 if (func != (address)-1) {
3473 jni_NativeInterface.GetDoubleField = (GetDoubleField_t)func;
3474 }
3475 }
3476}
3477
3478// Returns the function structure
3479struct JNINativeInterface_* jni_functions() {
3480#if INCLUDE_JNI_CHECK1
3481 if (CheckJNICalls) return jni_functions_check();
3482#endif // INCLUDE_JNI_CHECK
3483 return &jni_NativeInterface;
3484}
3485
3486// Returns the function structure
3487struct JNINativeInterface_* jni_functions_nocheck() {
3488 return &jni_NativeInterface;
3489}
3490
3491static void post_thread_start_event(const JavaThread* jt) {
3492 assert(jt != NULL, "invariant")do { if (!(jt != __null)) { (*g_assert_poison) = 'X';; report_vm_error
("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 3492, "assert(" "jt != __null" ") failed", "invariant"); ::
breakpoint(); } } while (0)
;
3493 EventThreadStart event;
3494 if (event.should_commit()) {
3495 event.set_thread(JFR_THREAD_ID(jt)((jt)->jfr_thread_local()->thread_id()));
3496 event.set_parentThread((traceid)0);
3497#if INCLUDE_JFR1
3498 if (EventThreadStart::is_stacktrace_enabled()) {
3499 jt->jfr_thread_local()->set_cached_stack_trace_id((traceid)0);
3500 event.commit();
3501 jt->jfr_thread_local()->clear_cached_stack_trace();
3502 } else
3503#endif
3504 {
3505 event.commit();
3506 }
3507 }
3508}
3509
3510// Invocation API
3511
3512
3513// Forward declaration
3514extern const struct JNIInvokeInterface_ jni_InvokeInterface;
3515
3516// Global invocation API vars
3517volatile int vm_created = 0;
3518// Indicate whether it is safe to recreate VM. Recreation is only
3519// possible after a failed initial creation attempt in some cases.
3520volatile int safe_to_recreate_vm = 1;
3521struct JavaVM_ main_vm = {&jni_InvokeInterface};
3522
3523
3524#define JAVASTACKSIZE(400 * 1024) (400 * 1024) /* Default size of a thread java stack */
3525enum { VERIFY_NONE, VERIFY_REMOTE, VERIFY_ALL };
3526
3527DT_RETURN_MARK_DECL(GetDefaultJavaVMInitArgs, jint
3528 , HOTSPOT_JNI_GETDEFAULTJAVAVMINITARGS_RETURN(_ret_ref));
3529
3530_JNI_IMPORT_OR_EXPORT___attribute__((visibility("default"))) jint JNICALL JNI_GetDefaultJavaVMInitArgs(void *args_) {
3531 HOTSPOT_JNI_GETDEFAULTJAVAVMINITARGS_ENTRY(args_);
3532 JDK1_1InitArgs *args = (JDK1_1InitArgs *)args_;
3533 jint ret = JNI_ERR(-1);
3534 DT_RETURN_MARK(GetDefaultJavaVMInitArgs, jint, (const jint&)ret);
3535
3536 if (Threads::is_supported_jni_version(args->version)) {
3537 ret = JNI_OK0;
3538 }
3539 // 1.1 style no longer supported in hotspot.
3540 // According the JNI spec, we should update args->version on return.
3541 // We also use the structure to communicate with launcher about default
3542 // stack size.
3543 if (args->version == JNI_VERSION_1_10x00010001) {
3544 args->version = JNI_VERSION_1_20x00010002;
3545 // javaStackSize is int in arguments structure
3546 assert(jlong(ThreadStackSize) * K < INT_MAX, "integer overflow")do { if (!(jlong(ThreadStackSize) * K < 2147483647)) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 3546, "assert(" "jlong(ThreadStackSize) * K < 2147483647"
") failed", "integer overflow"); ::breakpoint(); } } while (
0)
;
3547 args->javaStackSize = (jint)(ThreadStackSize * K);
3548 }
3549 return ret;
3550}
3551
3552DT_RETURN_MARK_DECL(CreateJavaVM, jint
3553 , HOTSPOT_JNI_CREATEJAVAVM_RETURN(_ret_ref));
3554
3555static jint JNI_CreateJavaVM_inner(JavaVM **vm, void **penv, void *args) {
3556 HOTSPOT_JNI_CREATEJAVAVM_ENTRY((void **) vm, penv, args);
3557
3558 jint result = JNI_ERR(-1);
3559 DT_RETURN_MARK(CreateJavaVM, jint, (const jint&)result);
3560
3561 // We're about to use Atomic::xchg for synchronization. Some Zero
3562 // platforms use the GCC builtin __sync_lock_test_and_set for this,
3563 // but __sync_lock_test_and_set is not guaranteed to do what we want
3564 // on all architectures. So we check it works before relying on it.
3565#if defined(ZERO) && defined(ASSERT1)
3566 {
3567 jint a = 0xcafebabe;
3568 jint b = Atomic::xchg(&a, (jint) 0xdeadbeef);
3569 void *c = &a;
3570 void *d = Atomic::xchg(&c, &b);
3571 assert(a == (jint) 0xdeadbeef && b == (jint) 0xcafebabe, "Atomic::xchg() works")do { if (!(a == (jint) 0xdeadbeef && b == (jint) 0xcafebabe
)) { (*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 3571, "assert(" "a == (jint) 0xdeadbeef && b == (jint) 0xcafebabe"
") failed", "Atomic::xchg() works"); ::breakpoint(); } } while
(0)
;
3572 assert(c == &b && d == &a, "Atomic::xchg() works")do { if (!(c == &b && d == &a)) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 3572, "assert(" "c == &b && d == &a" ") failed"
, "Atomic::xchg() works"); ::breakpoint(); } } while (0)
;
3573 }
3574#endif // ZERO && ASSERT
3575
3576 // At the moment it's only possible to have one Java VM,
3577 // since some of the runtime state is in global variables.
3578
3579 // We cannot use our mutex locks here, since they only work on
3580 // Threads. We do an atomic compare and exchange to ensure only
3581 // one thread can call this method at a time
3582
3583 // We use Atomic::xchg rather than Atomic::add/dec since on some platforms
3584 // the add/dec implementations are dependent on whether we are running
3585 // on a multiprocessor Atomic::xchg does not have this problem.
3586 if (Atomic::xchg(&vm_created, 1) == 1) {
3587 return JNI_EEXIST(-5); // already created, or create attempt in progress
3588 }
3589
3590 // If a previous creation attempt failed but can be retried safely,
3591 // then safe_to_recreate_vm will have been reset to 1 after being
3592 // cleared here. If a previous creation attempt succeeded and we then
3593 // destroyed that VM, we will be prevented from trying to recreate
3594 // the VM in the same process, as the value will still be 0.
3595 if (Atomic::xchg(&safe_to_recreate_vm, 0) == 0) {
3596 return JNI_ERR(-1);
3597 }
3598
3599 assert(vm_created == 1, "vm_created is true during the creation")do { if (!(vm_created == 1)) { (*g_assert_poison) = 'X';; report_vm_error
("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 3599, "assert(" "vm_created == 1" ") failed", "vm_created is true during the creation"
); ::breakpoint(); } } while (0)
;
3600
3601 /**
3602 * Certain errors during initialization are recoverable and do not
3603 * prevent this method from being called again at a later time
3604 * (perhaps with different arguments). However, at a certain
3605 * point during initialization if an error occurs we cannot allow
3606 * this function to be called again (or it will crash). In those
3607 * situations, the 'canTryAgain' flag is set to false, which atomically
3608 * sets safe_to_recreate_vm to 1, such that any new call to
3609 * JNI_CreateJavaVM will immediately fail using the above logic.
3610 */
3611 bool can_try_again = true;
3612
3613 result = Threads::create_vm((JavaVMInitArgs*) args, &can_try_again);
3614 if (result == JNI_OK0) {
3615 JavaThread *thread = JavaThread::current();
3616 assert(!thread->has_pending_exception(), "should have returned not OK")do { if (!(!thread->has_pending_exception())) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 3616, "assert(" "!thread->has_pending_exception()" ") failed"
, "should have returned not OK"); ::breakpoint(); } } while (
0)
;
3617 /* thread is thread_in_vm here */
3618 *vm = (JavaVM *)(&main_vm);
3619 *(JNIEnv**)penv = thread->jni_environment();
3620
3621#if INCLUDE_JVMCI1
3622 if (EnableJVMCI) {
3623 if (UseJVMCICompiler) {
3624 // JVMCI is initialized on a CompilerThread
3625 if (BootstrapJVMCI) {
3626 JavaThread* THREAD__the_thread__ = thread; // For exception macros.
3627 JVMCICompiler* compiler = JVMCICompiler::instance(true, CATCH__the_thread__); if ((((ThreadShadow*)__the_thread__)->has_pending_exception
())) { oop ex = (((ThreadShadow*)__the_thread__)->pending_exception
()); (((ThreadShadow*)__the_thread__)->clear_pending_exception
()); ex->print(); do { if (!(false)) { (*g_assert_poison) =
'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/prims/jni.cpp"
, 3627, "assert(" "false" ") failed", "CATCH"); ::breakpoint(
); } } while (0); } (void)(0
);
3628 compiler->bootstrap(THREAD__the_thread__);
3629 if (HAS_PENDING_EXCEPTION(((ThreadShadow*)__the_thread__)->has_pending_exception())) {
3630 HandleMark hm(THREAD__the_thread__);
3631 vm_exit_during_initialization(Handle(THREAD__the_thread__, PENDING_EXCEPTION(((ThreadShadow*)__the_thread__)->pending_exception())));
3632 }
3633 }
3634 }
3635 }
3636#endif
3637
3638 // Notify JVMTI
3639 if (JvmtiExport::should_post_thread_life()) {
3640 JvmtiExport::post_thread_start(thread);
3641 }
3642
3643 post_thread_start_event(thread);
3644
3645#ifndef PRODUCT
3646 if (ReplayCompiles) ciReplay::replay(thread);
3647#endif
3648
3649#ifdef ASSERT1
3650 // Some platforms (like Win*) need a wrapper around these test
3651 // functions in order to properly handle error conditions.
3652 if (ErrorHandlerTest != 0) {
3653 VMError::controlled_crash(ErrorHandlerTest);
3654 }
3655#endif
3656
3657 // Since this is not a JVM_ENTRY we have to set the thread state manually before leaving.
3658 ThreadStateTransition::transition_from_vm(thread, _thread_in_native);
3659 MACOS_AARCH64_ONLY(thread->enable_wx(WXExec));
3660 } else {
3661 // If create_vm exits because of a pending exception, exit with that
3662 // exception. In the future when we figure out how to reclaim memory,
3663 // we may be able to exit with JNI_ERR and allow the calling application
3664 // to continue.
3665 if (Universe::is_fully_initialized()) {
3666 // otherwise no pending exception possible - VM will already have aborted
3667 JavaThread* THREAD__the_thread__ = JavaThread::current(); // For exception macros.
3668 if (HAS_PENDING_EXCEPTION(((ThreadShadow*)__the_thread__)->has_pending_exception())) {
3669 HandleMark hm(THREAD__the_thread__);
3670 vm_exit_during_initialization(Handle(THREAD__the_thread__, PENDING_EXCEPTION(((ThreadShadow*)__the_thread__)->pending_exception())));
3671 }
3672 }
3673
3674 if (can_try_again) {
3675 // reset safe_to_recreate_vm to 1 so that retrial would be possible
3676 safe_to_recreate_vm = 1;
3677 }
3678
3679 // Creation failed. We must reset vm_created
3680 *vm = 0;
3681 *(JNIEnv**)penv = 0;
3682 // reset vm_created last to avoid race condition. Use OrderAccess to
3683 // control both compiler and architectural-based reordering.
3684 Atomic::release_store(&vm_created, 0);
3685 }
3686
3687 // Flush stdout and stderr before exit.
3688 fflush(stdoutstdout);
3689 fflush(stderrstderr);
3690
3691 return result;
3692
3693}
3694
3695_JNI_IMPORT_OR_EXPORT___attribute__((visibility("default"))) jint JNICALL JNI_CreateJavaVM(JavaVM **vm, void **penv, void *args) {
3696 jint result = JNI_ERR(-1);
3697 // On Windows, let CreateJavaVM run with SEH protection
3698#if defined(_WIN32) && !defined(USE_VECTORED_EXCEPTION_HANDLING)
3699 __tryif (true) {
3700#endif
3701 result = JNI_CreateJavaVM_inner(vm, penv, args);
3702#if defined(_WIN32) && !defined(USE_VECTORED_EXCEPTION_HANDLING)
3703 } __except(topLevelExceptionFilter((_EXCEPTION_POINTERS*)_exception_info())) {
3704 // Nothing to do.
3705 }
3706#endif
3707 return result;
3708}
3709
3710_JNI_IMPORT_OR_EXPORT___attribute__((visibility("default"))) jint JNICALL JNI_GetCreatedJavaVMs(JavaVM **vm_buf, jsize bufLen, jsize *numVMs) {
3711 HOTSPOT_JNI_GETCREATEDJAVAVMS_ENTRY((void **) vm_buf, bufLen, (uintptr_t *) numVMs);
3712
3713 if (vm_created == 1) {
3714 if (numVMs != NULL__null) *numVMs = 1;
3715 if (bufLen > 0) *vm_buf = (JavaVM *)(&main_vm);
3716 } else {
3717 if (numVMs != NULL__null) *numVMs = 0;
3718 }
3719 HOTSPOT_JNI_GETCREATEDJAVAVMS_RETURN(JNI_OK);
3720 return JNI_OK0;
3721}
3722
3723extern "C" {
3724
3725DT_RETURN_MARK_DECL(DestroyJavaVM, jint
3726 , HOTSPOT_JNI_DESTROYJAVAVM_RETURN(_ret_ref));
3727
3728static jint JNICALL jni_DestroyJavaVM_inner(JavaVM *vm) {
3729 HOTSPOT_JNI_DESTROYJAVAVM_ENTRY(vm);
3730 jint res = JNI_ERR(-1);
3731 DT_RETURN_MARK(DestroyJavaVM, jint, (const jint&)res);
3732
3733 if (vm_created == 0) {
3734 res = JNI_ERR(-1);
3735 return res;
3736 }
3737
3738 JNIEnv *env;
3739 JavaVMAttachArgs destroyargs;
3740 destroyargs.version = CurrentVersion;
3741 destroyargs.name = (char *)"DestroyJavaVM";
3742 destroyargs.group = NULL__null;
3743 res = vm->AttachCurrentThread((void **)&env, (void *)&destroyargs);
3744 if (res != JNI_OK0) {
3745 return res;
3746 }
3747
3748 // Since this is not a JVM_ENTRY we have to set the thread state manually before entering.
3749 JavaThread* thread = JavaThread::current();
3750
3751 // We are going to VM, change W^X state to the expected one.
3752 MACOS_AARCH64_ONLY(WXMode oldmode = thread->enable_wx(WXWrite));
3753
3754 ThreadStateTransition::transition_from_native(thread, _thread_in_vm);
3755 Threads::destroy_vm();
3756 // Don't bother restoring thread state, VM is gone.
3757 vm_created = 0;
3758 return JNI_OK0;
3759}
3760
3761jint JNICALL jni_DestroyJavaVM(JavaVM *vm) {
3762 jint result = JNI_ERR(-1);
3763 // On Windows, we need SEH protection
3764#if defined(_WIN32) && !defined(USE_VECTORED_EXCEPTION_HANDLING)
3765 __tryif (true) {
3766#endif
3767 result = jni_DestroyJavaVM_inner(vm);
3768#if defined(_WIN32) && !defined(USE_VECTORED_EXCEPTION_HANDLING)
3769 } __except(topLevelExceptionFilter((_EXCEPTION_POINTERS*)_exception_info())) {
3770 // Nothing to do.
3771 }
3772#endif
3773 return result;
3774}
3775
3776static jint attach_current_thread(JavaVM *vm, void **penv, void *_args, bool daemon) {
3777 JavaVMAttachArgs *args = (JavaVMAttachArgs *) _args;
3778
3779 // Check below commented out from JDK1.2fcs as well
3780 /*
3781 if (args && (args->version != JNI_VERSION_1_1 || args->version != JNI_VERSION_1_2)) {
3782 return JNI_EVERSION;
3783 }
3784 */
3785
3786 Thread* t = Thread::current_or_null();
3787 if (t != NULL__null) {
3788 // If executing from an atexit hook we may be in the VMThread.
3789 if (t->is_Java_thread()) {
3790 // If the thread has been attached this operation is a no-op
3791 *(JNIEnv**)penv = JavaThread::cast(t)->jni_environment();
3792 return JNI_OK0;
3793 } else {
3794 return JNI_ERR(-1);
3795 }
3796 }
3797
3798 // Create a thread and mark it as attaching so it will be skipped by the
3799 // ThreadsListEnumerator - see CR 6404306
3800 JavaThread* thread = new JavaThread(true);
3801
3802 // Set correct safepoint info. The thread is going to call into Java when
3803 // initializing the Java level thread object. Hence, the correct state must
3804 // be set in order for the Safepoint code to deal with it correctly.
3805 thread->set_thread_state(_thread_in_vm);
3806 thread->record_stack_base_and_size();
3807 thread->register_thread_stack_with_NMT();
3808 thread->initialize_thread_current();
3809 MACOS_AARCH64_ONLY(thread->init_wx());
3810
3811 if (!os::create_attached_thread(thread)) {
3812 thread->smr_delete();
3813 return JNI_ERR(-1);
3814 }
3815 // Enable stack overflow checks
3816 thread->stack_overflow_state()->create_stack_guard_pages();
3817
3818 thread->initialize_tlab();
3819
3820 thread->cache_global_variables();
3821
3822 // This thread will not do a safepoint check, since it has
3823 // not been added to the Thread list yet.
3824 { MutexLocker ml(Threads_lock);
3825 // This must be inside this lock in order to get FullGCALot to work properly, i.e., to
3826 // avoid this thread trying to do a GC before it is added to the thread-list
3827 thread->set_active_handles(JNIHandleBlock::allocate_block());
3828 Threads::add(thread, daemon);
3829 }
3830 // Create thread group and name info from attach arguments
3831 oop group = NULL__null;
3832 char* thread_name = NULL__null;
3833 if (args != NULL__null && Threads::is_supported_jni_version(args->version)) {
3834 group = JNIHandles::resolve(args->group);
3835 thread_name = args->name; // may be NULL
3836 }
3837 if (group == NULL__null) group = Universe::main_thread_group();
3838
3839 // Create Java level thread object and attach it to this thread
3840 bool attach_failed = false;
3841 {
3842 EXCEPTION_MARKExceptionMark __em; JavaThread* __the_thread__ = __em.thread(
);
;
3843 HandleMark hm(THREAD__the_thread__);
3844 Handle thread_group(THREAD__the_thread__, group);
3845 thread->allocate_threadObj(thread_group, thread_name, daemon, THREAD__the_thread__);
3846 if (HAS_PENDING_EXCEPTION(((ThreadShadow*)__the_thread__)->has_pending_exception())) {
3847 CLEAR_PENDING_EXCEPTION(((ThreadShadow*)__the_thread__)->clear_pending_exception(
))
;
3848 // cleanup outside the handle mark.
3849 attach_failed = true;
3850 }
3851 }
3852
3853 if (attach_failed) {
3854 // Added missing cleanup
3855 thread->cleanup_failed_attach_current_thread(daemon);
3856 return JNI_ERR(-1);
3857 }
3858
3859 // mark the thread as no longer attaching
3860 // this uses a fence to push the change through so we don't have
3861 // to regrab the threads_lock
3862 thread->set_done_attaching_via_jni();
3863
3864 // Set java thread status.
3865 java_lang_Thread::set_thread_status(thread->threadObj(),
3866 JavaThreadStatus::RUNNABLE);
3867
3868 // Notify the debugger
3869 if (JvmtiExport::should_post_thread_life()) {
3870 JvmtiExport::post_thread_start(thread);
3871 }
3872
3873 post_thread_start_event(thread);
3874
3875 *(JNIEnv**)penv = thread->jni_environment();
3876
3877 // Now leaving the VM, so change thread_state. This is normally automatically taken care
3878 // of in the JVM_ENTRY. But in this situation we have to do it manually.
3879 ThreadStateTransition::transition_from_vm(thread, _thread_in_native);
3880 MACOS_AARCH64_ONLY(thread->enable_wx(WXExec));
3881
3882 // Perform any platform dependent FPU setup
3883 os::setup_fpu();
3884
3885 return JNI_OK0;
3886}
3887
3888
3889jint JNICALL jni_AttachCurrentThread(JavaVM *vm, void **penv, void *_args) {
3890 HOTSPOT_JNI_ATTACHCURRENTTHREAD_ENTRY(vm, penv, _args);
3891 if (vm_created == 0) {
3892 HOTSPOT_JNI_ATTACHCURRENTTHREAD_RETURN((uint32_t) JNI_ERR);
3893 return JNI_ERR(-1);
3894 }
3895
3896 jint ret = attach_current_thread(vm, penv, _args, false);
3897 HOTSPOT_JNI_ATTACHCURRENTTHREAD_RETURN(ret);
3898 return ret;
3899}
3900
3901
3902jint JNICALL jni_DetachCurrentThread(JavaVM *vm) {
3903 HOTSPOT_JNI_DETACHCURRENTTHREAD_ENTRY(vm);
3904 if (vm_created == 0) {
3905 HOTSPOT_JNI_DETACHCURRENTTHREAD_RETURN(JNI_ERR);
3906 return JNI_ERR(-1);
3907 }
3908
3909 Thread* current = Thread::current_or_null();
3910
3911 // If the thread has already been detached the operation is a no-op
3912 if (current == NULL__null) {
3913 HOTSPOT_JNI_DETACHCURRENTTHREAD_RETURN(JNI_OK);
3914 return JNI_OK0;
3915 }
3916
3917 // If executing from an atexit hook we may be in the VMThread.
3918 if (!current->is_Java_thread()) {
3919 HOTSPOT_JNI_DETACHCURRENTTHREAD_RETURN((uint32_t) JNI_ERR);
3920 return JNI_ERR(-1);
3921 }
3922
3923 VM_Exit::block_if_vm_exited();
3924
3925 JavaThread* thread = JavaThread::cast(current);
3926 if (thread->has_last_Java_frame()) {
3927 HOTSPOT_JNI_DETACHCURRENTTHREAD_RETURN((uint32_t) JNI_ERR);
3928 // Can't detach a thread that's running java, that can't work.
3929 return JNI_ERR(-1);
3930 }
3931
3932 // We are going to VM, change W^X state to the expected one.
3933 MACOS_AARCH64_ONLY(thread->enable_wx(WXWrite));
3934
3935 // Safepoint support. Have to do call-back to safepoint code, if in the
3936 // middle of a safepoint operation
3937 ThreadStateTransition::transition_from_native(thread, _thread_in_vm);
3938
3939 // XXX: Note that JavaThread::exit() call below removes the guards on the
3940 // stack pages set up via enable_stack_{red,yellow}_zone() calls
3941 // above in jni_AttachCurrentThread. Unfortunately, while the setting
3942 // of the guards is visible in jni_AttachCurrentThread above,
3943 // the removal of the guards is buried below in JavaThread::exit()
3944 // here. The abstraction should be more symmetrically either exposed
3945 // or hidden (e.g. it could probably be hidden in the same
3946 // (platform-dependent) methods where we do alternate stack
3947 // maintenance work?)
3948 thread->exit(false, JavaThread::jni_detach);
3949 thread->smr_delete();
3950
3951 // Go to the execute mode, the initial state of the thread on creation.
3952 // Use os interface as the thread is not a JavaThread anymore.
3953 MACOS_AARCH64_ONLY(os::current_thread_enable_wx(WXExec));
3954
3955 HOTSPOT_JNI_DETACHCURRENTTHREAD_RETURN(JNI_OK);
3956 return JNI_OK0;
3957}
3958
3959DT_RETURN_MARK_DECL(GetEnv, jint
3960 , HOTSPOT_JNI_GETENV_RETURN(_ret_ref));
3961
3962jint JNICALL jni_GetEnv(JavaVM *vm, void **penv, jint version) {
3963 HOTSPOT_JNI_GETENV_ENTRY(vm, penv, version);
3964 jint ret = JNI_ERR(-1);
3965 DT_RETURN_MARK(GetEnv, jint, (const jint&)ret);
3966
3967 if (vm_created == 0) {
3968 *penv = NULL__null;
3969 ret = JNI_EDETACHED(-2);
3970 return ret;
3971 }
3972
3973 if (JniExportedInterface::GetExportedInterface(vm, penv, version, &ret)) {
3974 return ret;
3975 }
3976
3977#ifndef JVMPI_VERSION_1((jint)0x10000001)
3978// need these in order to be polite about older agents
3979#define JVMPI_VERSION_1((jint)0x10000001) ((jint)0x10000001)
3980#define JVMPI_VERSION_1_1((jint)0x10000002) ((jint)0x10000002)
3981#define JVMPI_VERSION_1_2((jint)0x10000003) ((jint)0x10000003)
3982#endif // !JVMPI_VERSION_1
3983
3984 Thread* thread = Thread::current_or_null();
3985 if (thread != NULL__null && thread->is_Java_thread()) {
3986 if (Threads::is_supported_jni_version_including_1_1(version)) {
3987 *(JNIEnv**)penv = JavaThread::cast(thread)->jni_environment();
3988 ret = JNI_OK0;
3989 return ret;
3990
3991 } else if (version == JVMPI_VERSION_1((jint)0x10000001) ||
3992 version == JVMPI_VERSION_1_1((jint)0x10000002) ||
3993 version == JVMPI_VERSION_1_2((jint)0x10000003)) {
3994 tty->print_cr("ERROR: JVMPI, an experimental interface, is no longer supported.");
3995 tty->print_cr("Please use the supported interface: the JVM Tool Interface (JVM TI).");
3996 ret = JNI_EVERSION(-3);
3997 return ret;
3998 } else if (JvmtiExport::is_jvmdi_version(version)) {
3999 tty->print_cr("FATAL ERROR: JVMDI is no longer supported.");
4000 tty->print_cr("Please use the supported interface: the JVM Tool Interface (JVM TI).");
4001 ret = JNI_EVERSION(-3);
4002 return ret;
4003 } else {
4004 *penv = NULL__null;
4005 ret = JNI_EVERSION(-3);
4006 return ret;
4007 }
4008 } else {
4009 *penv = NULL__null;
4010 ret = JNI_EDETACHED(-2);
4011 return ret;
4012 }
4013}
4014
4015
4016jint JNICALL jni_AttachCurrentThreadAsDaemon(JavaVM *vm, void **penv, void *_args) {
4017 HOTSPOT_JNI_ATTACHCURRENTTHREADASDAEMON_ENTRY(vm, penv, _args);
4018 if (vm_created == 0) {
4019 HOTSPOT_JNI_ATTACHCURRENTTHREADASDAEMON_RETURN((uint32_t) JNI_ERR);
4020 return JNI_ERR(-1);
4021 }
4022
4023 jint ret = attach_current_thread(vm, penv, _args, true);
4024 HOTSPOT_JNI_ATTACHCURRENTTHREADASDAEMON_RETURN(ret);
4025 return ret;
4026}
4027
4028
4029} // End extern "C"
4030
4031const struct JNIInvokeInterface_ jni_InvokeInterface = {
4032 NULL__null,
4033 NULL__null,
4034 NULL__null,
4035
4036 jni_DestroyJavaVM,
4037 jni_AttachCurrentThread,
4038 jni_DetachCurrentThread,
4039 jni_GetEnv,
4040 jni_AttachCurrentThreadAsDaemon
4041};

/home/daniel/Projects/java/jdk/src/hotspot/share/utilities/globalDefinitions.hpp

1/*
2 * Copyright (c) 1997, 2021, 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 */
24
25#ifndef SHARE_UTILITIES_GLOBALDEFINITIONS_HPP
26#define SHARE_UTILITIES_GLOBALDEFINITIONS_HPP
27
28#include "utilities/compilerWarnings.hpp"
29#include "utilities/debug.hpp"
30#include "utilities/macros.hpp"
31
32// Get constants like JVM_T_CHAR and JVM_SIGNATURE_INT, before pulling in <jvm.h>.
33#include "classfile_constants.h"
34
35#include COMPILER_HEADER(utilities/globalDefinitions)"utilities/globalDefinitions_gcc.hpp"
36
37#include <cstddef>
38
39class oopDesc;
40
41// Defaults for macros that might be defined per compiler.
42#ifndef NOINLINE__attribute__ ((noinline))
43#define NOINLINE__attribute__ ((noinline))
44#endif
45#ifndef ALWAYSINLINEinline __attribute__ ((always_inline))
46#define ALWAYSINLINEinline __attribute__ ((always_inline)) inline
47#endif
48
49#ifndef ATTRIBUTE_ALIGNED
50#define ATTRIBUTE_ALIGNED(x)__attribute__((aligned(x)))
51#endif
52
53#ifndef ATTRIBUTE_FLATTEN__attribute__ ((flatten))
54#define ATTRIBUTE_FLATTEN__attribute__ ((flatten))
55#endif
56
57// These are #defines to selectively turn on/off the Print(Opto)Assembly
58// capabilities. Choices should be led by a tradeoff between
59// code size and improved supportability.
60// if PRINT_ASSEMBLY then PRINT_ABSTRACT_ASSEMBLY must be true as well
61// to have a fallback in case hsdis is not available.
62#if defined(PRODUCT)
63 #define SUPPORT_ABSTRACT_ASSEMBLY
64 #define SUPPORT_ASSEMBLY
65 #undef SUPPORT_OPTO_ASSEMBLY // Can't activate. In PRODUCT, many dump methods are missing.
66 #undef SUPPORT_DATA_STRUCTS // Of limited use. In PRODUCT, many print methods are empty.
67#else
68 #define SUPPORT_ABSTRACT_ASSEMBLY
69 #define SUPPORT_ASSEMBLY
70 #define SUPPORT_OPTO_ASSEMBLY
71 #define SUPPORT_DATA_STRUCTS
72#endif
73#if defined(SUPPORT_ASSEMBLY) && !defined(SUPPORT_ABSTRACT_ASSEMBLY)
74 #define SUPPORT_ABSTRACT_ASSEMBLY
75#endif
76
77// This file holds all globally used constants & types, class (forward)
78// declarations and a few frequently used utility functions.
79
80// Declare the named class to be noncopyable. This macro must be followed by
81// a semi-colon. The macro provides deleted declarations for the class's copy
82// constructor and assignment operator. Because these operations are deleted,
83// they cannot be defined and potential callers will fail to compile.
84#define NONCOPYABLE(C)C(C const&) = delete; C& operator=(C const&) = delete C(C const&) = delete; C& operator=(C const&) = delete /* next token must be ; */
85
86
87//----------------------------------------------------------------------------------------------------
88// Printf-style formatters for fixed- and variable-width types as pointers and
89// integers. These are derived from the definitions in inttypes.h. If the platform
90// doesn't provide appropriate definitions, they should be provided in
91// the compiler-specific definitions file (e.g., globalDefinitions_gcc.hpp)
92
93#define BOOL_TO_STR(_b_)((_b_) ? "true" : "false") ((_b_) ? "true" : "false")
94
95// Format 32-bit quantities.
96#define INT32_FORMAT"%" "d" "%" PRId32"d"
97#define UINT32_FORMAT"%" "u" "%" PRIu32"u"
98#define INT32_FORMAT_W(width)"%" "width" "d" "%" #width PRId32"d"
99#define UINT32_FORMAT_W(width)"%" "width" "u" "%" #width PRIu32"u"
100
101#define PTR32_FORMAT"0x%08" "x" "0x%08" PRIx32"x"
102#define PTR32_FORMAT_W(width)"0x%" "width" "x" "0x%" #width PRIx32"x"
103
104// Format 64-bit quantities.
105#define INT64_FORMAT"%" "l" "d" "%" PRId64"l" "d"
106#define UINT64_FORMAT"%" "l" "u" "%" PRIu64"l" "u"
107#define UINT64_FORMAT_X"%" "l" "x" "%" PRIx64"l" "x"
108#define INT64_FORMAT_W(width)"%" "width" "l" "d" "%" #width PRId64"l" "d"
109#define UINT64_FORMAT_W(width)"%" "width" "l" "u" "%" #width PRIu64"l" "u"
110#define UINT64_FORMAT_X_W(width)"%" "width" "l" "x" "%" #width PRIx64"l" "x"
111
112#define PTR64_FORMAT"0x%016" "l" "x" "0x%016" PRIx64"l" "x"
113
114// Format jlong, if necessary
115#ifndef JLONG_FORMAT"%" "l" "d"
116#define JLONG_FORMAT"%" "l" "d" INT64_FORMAT"%" "l" "d"
117#endif
118#ifndef JLONG_FORMAT_W
119#define JLONG_FORMAT_W(width)"%" "width" "l" "d" INT64_FORMAT_W(width)"%" "width" "l" "d"
120#endif
121#ifndef JULONG_FORMAT"%" "l" "u"
122#define JULONG_FORMAT"%" "l" "u" UINT64_FORMAT"%" "l" "u"
123#endif
124#ifndef JULONG_FORMAT_X"%" "l" "x"
125#define JULONG_FORMAT_X"%" "l" "x" UINT64_FORMAT_X"%" "l" "x"
126#endif
127
128// Format pointers which change size between 32- and 64-bit.
129#ifdef _LP641
130#define INTPTR_FORMAT"0x%016" "l" "x" "0x%016" PRIxPTR"l" "x"
131#define PTR_FORMAT"0x%016" "l" "x" "0x%016" PRIxPTR"l" "x"
132#else // !_LP64
133#define INTPTR_FORMAT"0x%016" "l" "x" "0x%08" PRIxPTR"l" "x"
134#define PTR_FORMAT"0x%016" "l" "x" "0x%08" PRIxPTR"l" "x"
135#endif // _LP64
136
137// Format pointers without leading zeros
138#define INTPTRNZ_FORMAT"0x%" "l" "x" "0x%" PRIxPTR"l" "x"
139
140#define INTPTR_FORMAT_W(width)"%" "width" "l" "x" "%" #width PRIxPTR"l" "x"
141
142#define SSIZE_FORMAT"%" "l" "d" "%" PRIdPTR"l" "d"
143#define SIZE_FORMAT"%" "l" "u" "%" PRIuPTR"l" "u"
144#define SIZE_FORMAT_HEX"0x%" "l" "x" "0x%" PRIxPTR"l" "x"
145#define SSIZE_FORMAT_W(width)"%" "width" "l" "d" "%" #width PRIdPTR"l" "d"
146#define SIZE_FORMAT_W(width)"%" "width" "l" "u" "%" #width PRIuPTR"l" "u"
147#define SIZE_FORMAT_HEX_W(width)"0x%" "width" "l" "x" "0x%" #width PRIxPTR"l" "x"
148
149#define INTX_FORMAT"%" "l" "d" "%" PRIdPTR"l" "d"
150#define UINTX_FORMAT"%" "l" "u" "%" PRIuPTR"l" "u"
151#define INTX_FORMAT_W(width)"%" "width" "l" "d" "%" #width PRIdPTR"l" "d"
152#define UINTX_FORMAT_W(width)"%" "width" "l" "u" "%" #width PRIuPTR"l" "u"
153
154// Convert pointer to intptr_t, for use in printing pointers.
155inline intptr_t p2i(const volatile void* p) {
156 return (intptr_t) p;
157}
158
159//----------------------------------------------------------------------------------------------------
160// Constants
161
162const int LogBytesPerShort = 1;
163const int LogBytesPerInt = 2;
164#ifdef _LP641
165const int LogBytesPerWord = 3;
166#else
167const int LogBytesPerWord = 2;
168#endif
169const int LogBytesPerLong = 3;
170
171const int BytesPerShort = 1 << LogBytesPerShort;
172const int BytesPerInt = 1 << LogBytesPerInt;
173const int BytesPerWord = 1 << LogBytesPerWord;
174const int BytesPerLong = 1 << LogBytesPerLong;
175
176const int LogBitsPerByte = 3;
177const int LogBitsPerShort = LogBitsPerByte + LogBytesPerShort;
178const int LogBitsPerInt = LogBitsPerByte + LogBytesPerInt;
179const int LogBitsPerWord = LogBitsPerByte + LogBytesPerWord;
180const int LogBitsPerLong = LogBitsPerByte + LogBytesPerLong;
181
182const int BitsPerByte = 1 << LogBitsPerByte;
183const int BitsPerShort = 1 << LogBitsPerShort;
184const int BitsPerInt = 1 << LogBitsPerInt;
185const int BitsPerWord = 1 << LogBitsPerWord;
186const int BitsPerLong = 1 << LogBitsPerLong;
187
188const int WordAlignmentMask = (1 << LogBytesPerWord) - 1;
189const int LongAlignmentMask = (1 << LogBytesPerLong) - 1;
190
191const int WordsPerLong = 2; // Number of stack entries for longs
192
193const int oopSize = sizeof(char*); // Full-width oop
194extern int heapOopSize; // Oop within a java object
195const int wordSize = sizeof(char*);
196const int longSize = sizeof(jlong);
197const int jintSize = sizeof(jint);
198const int size_tSize = sizeof(size_t);
199
200const int BytesPerOop = BytesPerWord; // Full-width oop
201
202extern int LogBytesPerHeapOop; // Oop within a java object
203extern int LogBitsPerHeapOop;
204extern int BytesPerHeapOop;
205extern int BitsPerHeapOop;
206
207const int BitsPerJavaInteger = 32;
208const int BitsPerJavaLong = 64;
209const int BitsPerSize_t = size_tSize * BitsPerByte;
210
211// Size of a char[] needed to represent a jint as a string in decimal.
212const int jintAsStringSize = 12;
213
214// An opaque type, so that HeapWord* can be a generic pointer into the heap.
215// We require that object sizes be measured in units of heap words (e.g.
216// pointer-sized values), so that given HeapWord* hw,
217// hw += oop(hw)->foo();
218// works, where foo is a method (like size or scavenge) that returns the
219// object size.
220class HeapWordImpl; // Opaque, never defined.
221typedef HeapWordImpl* HeapWord;
222
223// Analogous opaque struct for metadata allocated from metaspaces.
224class MetaWordImpl; // Opaque, never defined.
225typedef MetaWordImpl* MetaWord;
226
227// HeapWordSize must be 2^LogHeapWordSize.
228const int HeapWordSize = sizeof(HeapWord);
229#ifdef _LP641
230const int LogHeapWordSize = 3;
231#else
232const int LogHeapWordSize = 2;
233#endif
234const int HeapWordsPerLong = BytesPerLong / HeapWordSize;
235const int LogHeapWordsPerLong = LogBytesPerLong - LogHeapWordSize;
236
237// The minimum number of native machine words necessary to contain "byte_size"
238// bytes.
239inline size_t heap_word_size(size_t byte_size) {
240 return (byte_size + (HeapWordSize-1)) >> LogHeapWordSize;
241}
242
243inline jfloat jfloat_cast(jint x);
244inline jdouble jdouble_cast(jlong x);
245
246//-------------------------------------------
247// Constant for jlong (standardized by C++11)
248
249// Build a 64bit integer constant
250#define CONST64(x)(xLL) (x ## LL)
251#define UCONST64(x)(xULL) (x ## ULL)
252
253const jlong min_jlong = CONST64(0x8000000000000000)(0x8000000000000000LL);
254const jlong max_jlong = CONST64(0x7fffffffffffffff)(0x7fffffffffffffffLL);
255
256//-------------------------------------------
257// Constant for jdouble
258const jlong min_jlongDouble = CONST64(0x0000000000000001)(0x0000000000000001LL);
259const jdouble min_jdouble = jdouble_cast(min_jlongDouble);
260const jlong max_jlongDouble = CONST64(0x7fefffffffffffff)(0x7fefffffffffffffLL);
261const jdouble max_jdouble = jdouble_cast(max_jlongDouble);
262
263const size_t K = 1024;
264const size_t M = K*K;
265const size_t G = M*K;
266const size_t HWperKB = K / sizeof(HeapWord);
267
268// Constants for converting from a base unit to milli-base units. For
269// example from seconds to milliseconds and microseconds
270
271const int MILLIUNITS = 1000; // milli units per base unit
272const int MICROUNITS = 1000000; // micro units per base unit
273const int NANOUNITS = 1000000000; // nano units per base unit
274const int NANOUNITS_PER_MILLIUNIT = NANOUNITS / MILLIUNITS;
275
276const jlong NANOSECS_PER_SEC = CONST64(1000000000)(1000000000LL);
277const jint NANOSECS_PER_MILLISEC = 1000000;
278
279
280// Unit conversion functions
281// The caller is responsible for considering overlow.
282
283inline int64_t nanos_to_millis(int64_t nanos) {
284 return nanos / NANOUNITS_PER_MILLIUNIT;
285}
286inline int64_t millis_to_nanos(int64_t millis) {
287 return millis * NANOUNITS_PER_MILLIUNIT;
288}
289
290// Proper units routines try to maintain at least three significant digits.
291// In worst case, it would print five significant digits with lower prefix.
292// G is close to MAX_SIZE on 32-bit platforms, so its product can easily overflow,
293// and therefore we need to be careful.
294
295inline const char* proper_unit_for_byte_size(size_t s) {
296#ifdef _LP641
297 if (s >= 100*G) {
298 return "G";
299 }
300#endif
301 if (s >= 100*M) {
302 return "M";
303 } else if (s >= 100*K) {
304 return "K";
305 } else {
306 return "B";
307 }
308}
309
310template <class T>
311inline T byte_size_in_proper_unit(T s) {
312#ifdef _LP641
313 if (s >= 100*G) {
314 return (T)(s/G);
315 }
316#endif
317 if (s >= 100*M) {
318 return (T)(s/M);
319 } else if (s >= 100*K) {
320 return (T)(s/K);
321 } else {
322 return s;
323 }
324}
325
326inline const char* exact_unit_for_byte_size(size_t s) {
327#ifdef _LP641
328 if (s >= G && (s % G) == 0) {
329 return "G";
330 }
331#endif
332 if (s >= M && (s % M) == 0) {
333 return "M";
334 }
335 if (s >= K && (s % K) == 0) {
336 return "K";
337 }
338 return "B";
339}
340
341inline size_t byte_size_in_exact_unit(size_t s) {
342#ifdef _LP641
343 if (s >= G && (s % G) == 0) {
344 return s / G;
345 }
346#endif
347 if (s >= M && (s % M) == 0) {
348 return s / M;
349 }
350 if (s >= K && (s % K) == 0) {
351 return s / K;
352 }
353 return s;
354}
355
356// Memory size transition formatting.
357
358#define HEAP_CHANGE_FORMAT"%s: " "%" "l" "u" "K(" "%" "l" "u" "K)->" "%" "l" "u" "K("
"%" "l" "u" "K)"
"%s: " SIZE_FORMAT"%" "l" "u" "K(" SIZE_FORMAT"%" "l" "u" "K)->" SIZE_FORMAT"%" "l" "u" "K(" SIZE_FORMAT"%" "l" "u" "K)"
359
360#define HEAP_CHANGE_FORMAT_ARGS(_name_, _prev_used_, _prev_capacity_, _used_, _capacity_)(_name_), (_prev_used_) / K, (_prev_capacity_) / K, (_used_) /
K, (_capacity_) / K
\
361 (_name_), (_prev_used_) / K, (_prev_capacity_) / K, (_used_) / K, (_capacity_) / K
362
363//----------------------------------------------------------------------------------------------------
364// VM type definitions
365
366// intx and uintx are the 'extended' int and 'extended' unsigned int types;
367// they are 32bit wide on a 32-bit platform, and 64bit wide on a 64bit platform.
368
369typedef intptr_t intx;
370typedef uintptr_t uintx;
371
372const intx min_intx = (intx)1 << (sizeof(intx)*BitsPerByte-1);
373const intx max_intx = (uintx)min_intx - 1;
374const uintx max_uintx = (uintx)-1;
375
376// Table of values:
377// sizeof intx 4 8
378// min_intx 0x80000000 0x8000000000000000
379// max_intx 0x7FFFFFFF 0x7FFFFFFFFFFFFFFF
380// max_uintx 0xFFFFFFFF 0xFFFFFFFFFFFFFFFF
381
382typedef unsigned int uint; NEEDS_CLEANUP
383
384
385//----------------------------------------------------------------------------------------------------
386// Java type definitions
387
388// All kinds of 'plain' byte addresses
389typedef signed char s_char;
390typedef unsigned char u_char;
391typedef u_char* address;
392typedef uintptr_t address_word; // unsigned integer which will hold a pointer
393 // except for some implementations of a C++
394 // linkage pointer to function. Should never
395 // need one of those to be placed in this
396 // type anyway.
397
398// Utility functions to "portably" (?) bit twiddle pointers
399// Where portable means keep ANSI C++ compilers quiet
400
401inline address set_address_bits(address x, int m) { return address(intptr_t(x) | m); }
402inline address clear_address_bits(address x, int m) { return address(intptr_t(x) & ~m); }
403
404// Utility functions to "portably" make cast to/from function pointers.
405
406inline address_word mask_address_bits(address x, int m) { return address_word(x) & m; }
407inline address_word castable_address(address x) { return address_word(x) ; }
408inline address_word castable_address(void* x) { return address_word(x) ; }
409
410// Pointer subtraction.
411// The idea here is to avoid ptrdiff_t, which is signed and so doesn't have
412// the range we might need to find differences from one end of the heap
413// to the other.
414// A typical use might be:
415// if (pointer_delta(end(), top()) >= size) {
416// // enough room for an object of size
417// ...
418// and then additions like
419// ... top() + size ...
420// are safe because we know that top() is at least size below end().
421inline size_t pointer_delta(const volatile void* left,
422 const volatile void* right,
423 size_t element_size) {
424 assert(left >= right, "avoid underflow - left: " PTR_FORMAT " right: " PTR_FORMAT, p2i(left), p2i(right))do { if (!(left >= right)) { (*g_assert_poison) = 'X';; report_vm_error
("/home/daniel/Projects/java/jdk/src/hotspot/share/utilities/globalDefinitions.hpp"
, 424, "assert(" "left >= right" ") failed", "avoid underflow - left: "
"0x%016" "l" "x" " right: " "0x%016" "l" "x", p2i(left), p2i
(right)); ::breakpoint(); } } while (0)
;
425 return (((uintptr_t) left) - ((uintptr_t) right)) / element_size;
426}
427
428// A version specialized for HeapWord*'s.
429inline size_t pointer_delta(const HeapWord* left, const HeapWord* right) {
430 return pointer_delta(left, right, sizeof(HeapWord));
431}
432// A version specialized for MetaWord*'s.
433inline size_t pointer_delta(const MetaWord* left, const MetaWord* right) {
434 return pointer_delta(left, right, sizeof(MetaWord));
435}
436
437//
438// ANSI C++ does not allow casting from one pointer type to a function pointer
439// directly without at best a warning. This macro accomplishes it silently
440// In every case that is present at this point the value be cast is a pointer
441// to a C linkage function. In some case the type used for the cast reflects
442// that linkage and a picky compiler would not complain. In other cases because
443// there is no convenient place to place a typedef with extern C linkage (i.e
444// a platform dependent header file) it doesn't. At this point no compiler seems
445// picky enough to catch these instances (which are few). It is possible that
446// using templates could fix these for all cases. This use of templates is likely
447// so far from the middle of the road that it is likely to be problematic in
448// many C++ compilers.
449//
450#define CAST_TO_FN_PTR(func_type, value)(reinterpret_cast<func_type>(value)) (reinterpret_cast<func_type>(value))
451#define CAST_FROM_FN_PTR(new_type, func_ptr)((new_type)((address_word)(func_ptr))) ((new_type)((address_word)(func_ptr)))
452
453// In many places we've added C-style casts to silence compiler
454// warnings, for example when truncating a size_t to an int when we
455// know the size_t is a small struct. Such casts are risky because
456// they effectively disable useful compiler warnings. We can make our
457// lives safer with this function, which ensures that any cast is
458// reversible without loss of information. It doesn't check
459// everything: it isn't intended to make sure that pointer types are
460// compatible, for example.
461template <typename T2, typename T1>
462T2 checked_cast(T1 thing) {
463 T2 result = static_cast<T2>(thing);
464 assert(static_cast<T1>(result) == thing, "must be")do { if (!(static_cast<T1>(result) == thing)) { (*g_assert_poison
) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/utilities/globalDefinitions.hpp"
, 464, "assert(" "static_cast<T1>(result) == thing" ") failed"
, "must be"); ::breakpoint(); } } while (0)
;
465 return result;
466}
467
468// Need the correct linkage to call qsort without warnings
469extern "C" {
470 typedef int (*_sort_Fn)(const void *, const void *);
471}
472
473// Unsigned byte types for os and stream.hpp
474
475// Unsigned one, two, four and eigth byte quantities used for describing
476// the .class file format. See JVM book chapter 4.
477
478typedef jubyte u1;
479typedef jushort u2;
480typedef juint u4;
481typedef julong u8;
482
483const jubyte max_jubyte = (jubyte)-1; // 0xFF largest jubyte
484const jushort max_jushort = (jushort)-1; // 0xFFFF largest jushort
485const juint max_juint = (juint)-1; // 0xFFFFFFFF largest juint
486const julong max_julong = (julong)-1; // 0xFF....FF largest julong
487
488typedef jbyte s1;
489typedef jshort s2;
490typedef jint s4;
491typedef jlong s8;
492
493const jbyte min_jbyte = -(1 << 7); // smallest jbyte
494const jbyte max_jbyte = (1 << 7) - 1; // largest jbyte
495const jshort min_jshort = -(1 << 15); // smallest jshort
496const jshort max_jshort = (1 << 15) - 1; // largest jshort
497
498const jint min_jint = (jint)1 << (sizeof(jint)*BitsPerByte-1); // 0x80000000 == smallest jint
499const jint max_jint = (juint)min_jint - 1; // 0x7FFFFFFF == largest jint
500
501const jint min_jintFloat = (jint)(0x00000001);
502const jfloat min_jfloat = jfloat_cast(min_jintFloat);
503const jint max_jintFloat = (jint)(0x7f7fffff);
504const jfloat max_jfloat = jfloat_cast(max_jintFloat);
505
506//----------------------------------------------------------------------------------------------------
507// JVM spec restrictions
508
509const int max_method_code_size = 64*K - 1; // JVM spec, 2nd ed. section 4.8.1 (p.134)
510
511//----------------------------------------------------------------------------------------------------
512// old CDS options
513extern bool DumpSharedSpaces;
514extern bool DynamicDumpSharedSpaces;
515extern bool RequireSharedSpaces;
516extern "C" {
517// Make sure UseSharedSpaces is accessible to the serviceability agent.
518extern JNIEXPORT__attribute__((visibility("default"))) jboolean UseSharedSpaces;
519}
520
521//----------------------------------------------------------------------------------------------------
522// Object alignment, in units of HeapWords.
523//
524// Minimum is max(BytesPerLong, BytesPerDouble, BytesPerOop) / HeapWordSize, so jlong, jdouble and
525// reference fields can be naturally aligned.
526
527extern int MinObjAlignment;
528extern int MinObjAlignmentInBytes;
529extern int MinObjAlignmentInBytesMask;
530
531extern int LogMinObjAlignment;
532extern int LogMinObjAlignmentInBytes;
533
534const int LogKlassAlignmentInBytes = 3;
535const int LogKlassAlignment = LogKlassAlignmentInBytes - LogHeapWordSize;
536const int KlassAlignmentInBytes = 1 << LogKlassAlignmentInBytes;
537const int KlassAlignment = KlassAlignmentInBytes / HeapWordSize;
538
539// Maximal size of heap where unscaled compression can be used. Also upper bound
540// for heap placement: 4GB.
541const uint64_t UnscaledOopHeapMax = (uint64_t(max_juint) + 1);
542// Maximal size of heap where compressed oops can be used. Also upper bound for heap
543// placement for zero based compression algorithm: UnscaledOopHeapMax << LogMinObjAlignmentInBytes.
544extern uint64_t OopEncodingHeapMax;
545
546// Maximal size of compressed class space. Above this limit compression is not possible.
547// Also upper bound for placement of zero based class space. (Class space is further limited
548// to be < 3G, see arguments.cpp.)
549const uint64_t KlassEncodingMetaspaceMax = (uint64_t(max_juint) + 1) << LogKlassAlignmentInBytes;
550
551// Machine dependent stuff
552
553// The maximum size of the code cache. Can be overridden by targets.
554#define CODE_CACHE_SIZE_LIMIT(2*G) (2*G)
555// Allow targets to reduce the default size of the code cache.
556#define CODE_CACHE_DEFAULT_LIMIT(2*G) CODE_CACHE_SIZE_LIMIT(2*G)
557
558#include CPU_HEADER(globalDefinitions)"globalDefinitions_x86.hpp"
559
560// To assure the IRIW property on processors that are not multiple copy
561// atomic, sync instructions must be issued between volatile reads to
562// assure their ordering, instead of after volatile stores.
563// (See "A Tutorial Introduction to the ARM and POWER Relaxed Memory Models"
564// by Luc Maranget, Susmit Sarkar and Peter Sewell, INRIA/Cambridge)
565#ifdef CPU_MULTI_COPY_ATOMIC
566// Not needed.
567const bool support_IRIW_for_not_multiple_copy_atomic_cpu = false;
568#else
569// From all non-multi-copy-atomic architectures, only PPC64 supports IRIW at the moment.
570// Final decision is subject to JEP 188: Java Memory Model Update.
571const bool support_IRIW_for_not_multiple_copy_atomic_cpu = PPC64_ONLY(true) NOT_PPC64(false)false;
572#endif
573
574// The expected size in bytes of a cache line, used to pad data structures.
575#ifndef DEFAULT_CACHE_LINE_SIZE128
576 #define DEFAULT_CACHE_LINE_SIZE128 64
577#endif
578
579
580//----------------------------------------------------------------------------------------------------
581// Utility macros for compilers
582// used to silence compiler warnings
583
584#define Unused_Variable(var)var var
585
586
587//----------------------------------------------------------------------------------------------------
588// Miscellaneous
589
590// 6302670 Eliminate Hotspot __fabsf dependency
591// All fabs() callers should call this function instead, which will implicitly
592// convert the operand to double, avoiding a dependency on __fabsf which
593// doesn't exist in early versions of Solaris 8.
594inline double fabsd(double value) {
595 return fabs(value);
596}
597
598// Returns numerator/denominator as percentage value from 0 to 100. If denominator
599// is zero, return 0.0.
600template<typename T>
601inline double percent_of(T numerator, T denominator) {
602 return denominator != 0 ? (double)numerator / denominator * 100.0 : 0.0;
603}
604
605//----------------------------------------------------------------------------------------------------
606// Special casts
607// Cast floats into same-size integers and vice-versa w/o changing bit-pattern
608typedef union {
609 jfloat f;
610 jint i;
611} FloatIntConv;
612
613typedef union {
614 jdouble d;
615 jlong l;
616 julong ul;
617} DoubleLongConv;
618
619inline jint jint_cast (jfloat x) { return ((FloatIntConv*)&x)->i; }
620inline jfloat jfloat_cast (jint x) { return ((FloatIntConv*)&x)->f; }
621
622inline jlong jlong_cast (jdouble x) { return ((DoubleLongConv*)&x)->l; }
623inline julong julong_cast (jdouble x) { return ((DoubleLongConv*)&x)->ul; }
624inline jdouble jdouble_cast (jlong x) { return ((DoubleLongConv*)&x)->d; }
625
626inline jint low (jlong value) { return jint(value); }
627inline jint high(jlong value) { return jint(value >> 32); }
628
629// the fancy casts are a hopefully portable way
630// to do unsigned 32 to 64 bit type conversion
631inline void set_low (jlong* value, jint low ) { *value &= (jlong)0xffffffff << 32;
632 *value |= (jlong)(julong)(juint)low; }
633
634inline void set_high(jlong* value, jint high) { *value &= (jlong)(julong)(juint)0xffffffff;
635 *value |= (jlong)high << 32; }
636
637inline jlong jlong_from(jint h, jint l) {
638 jlong result = 0; // initialization to avoid warning
639 set_high(&result, h);
640 set_low(&result, l);
641 return result;
642}
643
644union jlong_accessor {
645 jint words[2];
646 jlong long_value;
647};
648
649void basic_types_init(); // cannot define here; uses assert
650
651
652// NOTE: replicated in SA in vm/agent/sun/jvm/hotspot/runtime/BasicType.java
653enum BasicType {
654// The values T_BOOLEAN..T_LONG (4..11) are derived from the JVMS.
655 T_BOOLEAN = JVM_T_BOOLEAN,
656 T_CHAR = JVM_T_CHAR,
657 T_FLOAT = JVM_T_FLOAT,
658 T_DOUBLE = JVM_T_DOUBLE,
659 T_BYTE = JVM_T_BYTE,
660 T_SHORT = JVM_T_SHORT,
661 T_INT = JVM_T_INT,
662 T_LONG = JVM_T_LONG,
663 // The remaining values are not part of any standard.
664 // T_OBJECT and T_VOID denote two more semantic choices
665 // for method return values.
666 // T_OBJECT and T_ARRAY describe signature syntax.
667 // T_ADDRESS, T_METADATA, T_NARROWOOP, T_NARROWKLASS describe
668 // internal references within the JVM as if they were Java
669 // types in their own right.
670 T_OBJECT = 12,
671 T_ARRAY = 13,
672 T_VOID = 14,
673 T_ADDRESS = 15,
674 T_NARROWOOP = 16,
675 T_METADATA = 17,
676 T_NARROWKLASS = 18,
677 T_CONFLICT = 19, // for stack value type with conflicting contents
678 T_ILLEGAL = 99
679};
680
681#define SIGNATURE_TYPES_DO(F, N)F(JVM_SIGNATURE_BOOLEAN, T_BOOLEAN, N) F(JVM_SIGNATURE_CHAR, T_CHAR
, N) F(JVM_SIGNATURE_FLOAT, T_FLOAT, N) F(JVM_SIGNATURE_DOUBLE
, T_DOUBLE, N) F(JVM_SIGNATURE_BYTE, T_BYTE, N) F(JVM_SIGNATURE_SHORT
, T_SHORT, N) F(JVM_SIGNATURE_INT, T_INT, N) F(JVM_SIGNATURE_LONG
, T_LONG, N) F(JVM_SIGNATURE_CLASS, T_OBJECT, N) F(JVM_SIGNATURE_ARRAY
, T_ARRAY, N) F(JVM_SIGNATURE_VOID, T_VOID, N)
\
682 F(JVM_SIGNATURE_BOOLEAN, T_BOOLEAN, N) \
683 F(JVM_SIGNATURE_CHAR, T_CHAR, N) \
684 F(JVM_SIGNATURE_FLOAT, T_FLOAT, N) \
685 F(JVM_SIGNATURE_DOUBLE, T_DOUBLE, N) \
686 F(JVM_SIGNATURE_BYTE, T_BYTE, N) \
687 F(JVM_SIGNATURE_SHORT, T_SHORT, N) \
688 F(JVM_SIGNATURE_INT, T_INT, N) \
689 F(JVM_SIGNATURE_LONG, T_LONG, N) \
690 F(JVM_SIGNATURE_CLASS, T_OBJECT, N) \
691 F(JVM_SIGNATURE_ARRAY, T_ARRAY, N) \
692 F(JVM_SIGNATURE_VOID, T_VOID, N) \
693 /*end*/
694
695inline bool is_java_type(BasicType t) {
696 return T_BOOLEAN <= t && t <= T_VOID;
697}
698
699inline bool is_java_primitive(BasicType t) {
700 return T_BOOLEAN <= t && t <= T_LONG;
701}
702
703inline bool is_subword_type(BasicType t) {
704 // these guys are processed exactly like T_INT in calling sequences:
705 return (t == T_BOOLEAN || t == T_CHAR || t == T_BYTE || t == T_SHORT);
706}
707
708inline bool is_signed_subword_type(BasicType t) {
709 return (t == T_BYTE || t == T_SHORT);
710}
711
712inline bool is_double_word_type(BasicType t) {
713 return (t == T_DOUBLE || t == T_LONG);
714}
715
716inline bool is_reference_type(BasicType t) {
717 return (t == T_OBJECT || t == T_ARRAY);
718}
719
720inline bool is_integral_type(BasicType t) {
721 return is_subword_type(t) || t == T_INT || t == T_LONG;
722}
723
724inline bool is_floating_point_type(BasicType t) {
725 return (t == T_FLOAT || t == T_DOUBLE);
726}
727
728extern char type2char_tab[T_CONFLICT+1]; // Map a BasicType to a jchar
729inline char type2char(BasicType t) { return (uint)t < T_CONFLICT+1 ? type2char_tab[t] : 0; }
730extern int type2size[T_CONFLICT+1]; // Map BasicType to result stack elements
731extern const char* type2name_tab[T_CONFLICT+1]; // Map a BasicType to a jchar
732inline const char* type2name(BasicType t) { return (uint)t < T_CONFLICT+1 ? type2name_tab[t] : NULL__null; }
733extern BasicType name2type(const char* name);
734
735inline jlong max_signed_integer(BasicType bt) {
736 if (bt == T_INT) {
737 return max_jint;
738 }
739 assert(bt == T_LONG, "unsupported")do { if (!(bt == T_LONG)) { (*g_assert_poison) = 'X';; report_vm_error
("/home/daniel/Projects/java/jdk/src/hotspot/share/utilities/globalDefinitions.hpp"
, 739, "assert(" "bt == T_LONG" ") failed", "unsupported"); ::
breakpoint(); } } while (0)
;
740 return max_jlong;
741}
742
743inline jlong min_signed_integer(BasicType bt) {
744 if (bt == T_INT) {
745 return min_jint;
746 }
747 assert(bt == T_LONG, "unsupported")do { if (!(bt == T_LONG)) { (*g_assert_poison) = 'X';; report_vm_error
("/home/daniel/Projects/java/jdk/src/hotspot/share/utilities/globalDefinitions.hpp"
, 747, "assert(" "bt == T_LONG" ") failed", "unsupported"); ::
breakpoint(); } } while (0)
;
748 return min_jlong;
749}
750
751// Auxiliary math routines
752// least common multiple
753extern size_t lcm(size_t a, size_t b);
754
755
756// NOTE: replicated in SA in vm/agent/sun/jvm/hotspot/runtime/BasicType.java
757enum BasicTypeSize {
758 T_BOOLEAN_size = 1,
759 T_CHAR_size = 1,
760 T_FLOAT_size = 1,
761 T_DOUBLE_size = 2,
762 T_BYTE_size = 1,
763 T_SHORT_size = 1,
764 T_INT_size = 1,
765 T_LONG_size = 2,
766 T_OBJECT_size = 1,
767 T_ARRAY_size = 1,
768 T_NARROWOOP_size = 1,
769 T_NARROWKLASS_size = 1,
770 T_VOID_size = 0
771};
772
773// this works on valid parameter types but not T_VOID, T_CONFLICT, etc.
774inline int parameter_type_word_count(BasicType t) {
775 if (is_double_word_type(t)) return 2;
776 assert(is_java_primitive(t) || is_reference_type(t), "no goofy types here please")do { if (!(is_java_primitive(t) || is_reference_type(t))) { (
*g_assert_poison) = 'X';; report_vm_error("/home/daniel/Projects/java/jdk/src/hotspot/share/utilities/globalDefinitions.hpp"
, 776, "assert(" "is_java_primitive(t) || is_reference_type(t)"
") failed", "no goofy types here please"); ::breakpoint(); }
} while (0)
;
777 assert(type2size[t] == 1, "must be")do { if (!(type2size[t] == 1)) { (*g_assert_poison) = 'X';; report_vm_error
("/home/daniel/Projects/java/jdk/src/hotspot/share/utilities/globalDefinitions.hpp"
, 777, "assert(" "type2size[t] == 1" ") failed", "must be"); ::
breakpoint(); } } while (0)
;
778 return 1;
779}
780
781// maps a BasicType to its instance field storage type:
782// all sub-word integral types are widened to T_INT
783extern BasicType type2field[T_CONFLICT+1];
784extern BasicType type2wfield[T_CONFLICT+1];
785
786
787// size in bytes
788enum ArrayElementSize {
789 T_BOOLEAN_aelem_bytes = 1,
790 T_CHAR_aelem_bytes = 2,
791 T_FLOAT_aelem_bytes = 4,
792 T_DOUBLE_aelem_bytes = 8,
793 T_BYTE_aelem_bytes = 1,
794 T_SHORT_aelem_bytes = 2,
795 T_INT_aelem_bytes = 4,
796 T_LONG_aelem_bytes = 8,
797#ifdef _LP641
798 T_OBJECT_aelem_bytes = 8,
799 T_ARRAY_aelem_bytes = 8,
800#else
801 T_OBJECT_aelem_bytes = 4,
802 T_ARRAY_aelem_bytes = 4,
803#endif
804 T_NARROWOOP_aelem_bytes = 4,
805 T_NARROWKLASS_aelem_bytes = 4,
806 T_VOID_aelem_bytes = 0
807};
808
809extern int _type2aelembytes[T_CONFLICT+1]; // maps a BasicType to nof bytes used by its array element
810#ifdef ASSERT1
811extern int type2aelembytes(BasicType t, bool allow_address = false); // asserts
812#else
813inline int type2aelembytes(BasicType t, bool allow_address = false) { return _type2aelembytes[t]; }
814#endif
815
816
817// JavaValue serves as a container for arbitrary Java values.
818
819class JavaValue {
820
821 public:
822 typedef union JavaCallValue {
823 jfloat f;
824 jdouble d;
825 jint i;
826 jlong l;
827 jobject h;
828 oopDesc* o;
829 } JavaCallValue;
830
831 private:
832 BasicType _type;
833 JavaCallValue _value;
834
835 public:
836 JavaValue(BasicType t = T_ILLEGAL) { _type = t; }
5
Returning without writing to 'this->_value.l'
837
838 JavaValue(jfloat value) {
839 _type = T_FLOAT;
840 _value.f = value;
841 }
842
843 JavaValue(jdouble value) {
844 _type = T_DOUBLE;
845 _value.d = value;
846 }
847
848 jfloat get_jfloat() const { return _value.f; }
849 jdouble get_jdouble() const { return _value.d; }
850 jint get_jint() const { return _value.i; }
851 jlong get_jlong() const { return _value.l; }
13
Undefined or garbage value returned to caller
852 jobject get_jobject() const { return _value.h; }
853 oopDesc* get_oop() const { return _value.o; }
854 JavaCallValue* get_value_addr() { return &_value; }
855 BasicType get_type() const { return _type; }
856
857 void set_jfloat(jfloat f) { _value.f = f;}
858 void set_jdouble(jdouble d) { _value.d = d;}
859 void set_jint(jint i) { _value.i = i;}
860 void set_jlong(jlong l) { _value.l = l;}
861 void set_jobject(jobject h) { _value.h = h;}
862 void set_oop(oopDesc* o) { _value.o = o;}
863 void set_type(BasicType t) { _type = t; }
864
865 jboolean get_jboolean() const { return (jboolean) (_value.i);}
866 jbyte get_jbyte() const { return (jbyte) (_value.i);}
867 jchar get_jchar() const { return (jchar) (_value.i);}
868 jshort get_jshort() const { return (jshort) (_value.i);}
869
870};
871
872
873// TosState describes the top-of-stack state before and after the execution of
874// a bytecode or method. The top-of-stack value may be cached in one or more CPU
875// registers. The TosState corresponds to the 'machine representation' of this cached
876// value. There's 4 states corresponding to the JAVA types int, long, float & double
877// as well as a 5th state in case the top-of-stack value is actually on the top
878// of stack (in memory) and thus not cached. The atos state corresponds to the itos
879// state when it comes to machine representation but is used separately for (oop)
880// type specific operations (e.g. verification code).
881
882enum TosState { // describes the tos cache contents
883 btos = 0, // byte, bool tos cached
884 ztos = 1, // byte, bool tos cached
885 ctos = 2, // char tos cached
886 stos = 3, // short tos cached
887 itos = 4, // int tos cached
888 ltos = 5, // long tos cached
889 ftos = 6, // float tos cached
890 dtos = 7, // double tos cached
891 atos = 8, // object cached
892 vtos = 9, // tos not cached
893 number_of_states,
894 ilgl // illegal state: should not occur
895};
896
897
898inline TosState as_TosState(BasicType type) {
899 switch (type) {
900 case T_BYTE : return btos;
901 case T_BOOLEAN: return ztos;
902 case T_CHAR : return ctos;
903 case T_SHORT : return stos;
904 case T_INT : return itos;
905 case T_LONG : return ltos;
906 case T_FLOAT : return ftos;
907 case T_DOUBLE : return dtos;
908 case T_VOID : return vtos;
909 case T_ARRAY : // fall through
910 case T_OBJECT : return atos;
911 default : return ilgl;
912 }
913}
914
915inline BasicType as_BasicType(TosState state) {
916 switch (state) {
917 case btos : return T_BYTE;
918 case ztos : return T_BOOLEAN;
919 case ctos : return T_CHAR;
920 case stos : return T_SHORT;
921 case itos : return T_INT;
922 case ltos : return T_LONG;
923 case ftos : return T_FLOAT;
924 case dtos : return T_DOUBLE;
925 case atos : return T_OBJECT;
926 case vtos : return T_VOID;
927 default : return T_ILLEGAL;
928 }
929}
930
931
932// Helper function to convert BasicType info into TosState
933// Note: Cannot define here as it uses global constant at the time being.
934TosState as_TosState(BasicType type);
935
936
937// JavaThreadState keeps track of which part of the code a thread is executing in. This
938// information is needed by the safepoint code.
939//
940// There are 4 essential states:
941//
942// _thread_new : Just started, but not executed init. code yet (most likely still in OS init code)
943// _thread_in_native : In native code. This is a safepoint region, since all oops will be in jobject handles
944// _thread_in_vm : Executing in the vm
945// _thread_in_Java : Executing either interpreted or compiled Java code (or could be in a stub)
946//
947// Each state has an associated xxxx_trans state, which is an intermediate state used when a thread is in
948// a transition from one state to another. These extra states makes it possible for the safepoint code to
949// handle certain thread_states without having to suspend the thread - making the safepoint code faster.
950//
951// Given a state, the xxxx_trans state can always be found by adding 1.
952//
953enum JavaThreadState {
954 _thread_uninitialized = 0, // should never happen (missing initialization)
955 _thread_new = 2, // just starting up, i.e., in process of being initialized
956 _thread_new_trans = 3, // corresponding transition state (not used, included for completness)
957 _thread_in_native = 4, // running in native code
958 _thread_in_native_trans = 5, // corresponding transition state
959 _thread_in_vm = 6, // running in VM
960 _thread_in_vm_trans = 7, // corresponding transition state
961 _thread_in_Java = 8, // running in Java or in stub code
962 _thread_in_Java_trans = 9, // corresponding transition state (not used, included for completness)
963 _thread_blocked = 10, // blocked in vm
964 _thread_blocked_trans = 11, // corresponding transition state
965 _thread_max_state = 12 // maximum thread state+1 - used for statistics allocation
966};
967
968//----------------------------------------------------------------------------------------------------
969// Special constants for debugging
970
971const jint badInt = -3; // generic "bad int" value
972const intptr_t badAddressVal = -2; // generic "bad address" value
973const intptr_t badOopVal = -1; // generic "bad oop" value
974const intptr_t badHeapOopVal = (intptr_t) CONST64(0x2BAD4B0BBAADBABE)(0x2BAD4B0BBAADBABELL); // value used to zap heap after GC
975const int badStackSegVal = 0xCA; // value used to zap stack segments
976const int badHandleValue = 0xBC; // value used to zap vm handle area
977const int badResourceValue = 0xAB; // value used to zap resource area
978const int freeBlockPad = 0xBA; // value used to pad freed blocks.
979const int uninitBlockPad = 0xF1; // value used to zap newly malloc'd blocks.
980const juint uninitMetaWordVal= 0xf7f7f7f7; // value used to zap newly allocated metachunk
981const juint badHeapWordVal = 0xBAADBABE; // value used to zap heap after GC
982const juint badMetaWordVal = 0xBAADFADE; // value used to zap metadata heap after GC
983const int badCodeHeapNewVal= 0xCC; // value used to zap Code heap at allocation
984const int badCodeHeapFreeVal = 0xDD; // value used to zap Code heap at deallocation
985
986
987// (These must be implemented as #defines because C++ compilers are
988// not obligated to inline non-integral constants!)
989#define badAddress((address)::badAddressVal) ((address)::badAddressVal)
990#define badOop(cast_to_oop(::badOopVal)) (cast_to_oop(::badOopVal))
991#define badHeapWord(::badHeapWordVal) (::badHeapWordVal)
992
993// Default TaskQueue size is 16K (32-bit) or 128K (64-bit)
994#define TASKQUEUE_SIZE( 1<<17) (NOT_LP64(1<<14) LP64_ONLY(1<<17)1<<17)
995
996//----------------------------------------------------------------------------------------------------
997// Utility functions for bitfield manipulations
998
999const intptr_t AllBits = ~0; // all bits set in a word
1000const intptr_t NoBits = 0; // no bits set in a word
1001const jlong NoLongBits = 0; // no bits set in a long
1002const intptr_t OneBit = 1; // only right_most bit set in a word
1003
1004// get a word with the n.th or the right-most or left-most n bits set
1005// (note: #define used only so that they can be used in enum constant definitions)
1006#define nth_bit(n)(((n) >= BitsPerWord) ? 0 : (OneBit << (n))) (((n) >= BitsPerWord) ? 0 : (OneBit << (n)))
1007#define right_n_bits(n)((((n) >= BitsPerWord) ? 0 : (OneBit << (n))) - 1) (nth_bit(n)(((n) >= BitsPerWord) ? 0 : (OneBit << (n))) - 1)
1008
1009// bit-operations using a mask m
1010inline void set_bits (intptr_t& x, intptr_t m) { x |= m; }
1011inline void clear_bits (intptr_t& x, intptr_t m) { x &= ~m; }
1012inline intptr_t mask_bits (intptr_t x, intptr_t m) { return x & m; }
1013inline jlong mask_long_bits (jlong x, jlong m) { return x & m; }
1014inline bool mask_bits_are_true (intptr_t flags, intptr_t mask) { return (flags & mask) == mask; }
1015
1016// bit-operations using the n.th bit
1017inline void set_nth_bit(intptr_t& x, int n) { set_bits (x, nth_bit(n)(((n) >= BitsPerWord) ? 0 : (OneBit << (n)))); }
1018inline void clear_nth_bit(intptr_t& x, int n) { clear_bits(x, nth_bit(n)(((n) >= BitsPerWord) ? 0 : (OneBit << (n)))); }
1019inline bool is_set_nth_bit(intptr_t x, int n) { return mask_bits (x, nth_bit(n)(((n) >= BitsPerWord) ? 0 : (OneBit << (n)))) != NoBits; }
1020
1021// returns the bitfield of x starting at start_bit_no with length field_length (no sign-extension!)
1022inline intptr_t bitfield(intptr_t x, int start_bit_no, int field_length) {
1023 return mask_bits(x >> start_bit_no, right_n_bits(field_length)((((field_length) >= BitsPerWord) ? 0 : (OneBit << (
field_length))) - 1)
);
1024}
1025
1026
1027//----------------------------------------------------------------------------------------------------
1028// Utility functions for integers
1029
1030// Avoid use of global min/max macros which may cause unwanted double
1031// evaluation of arguments.
1032#ifdef max
1033#undef max
1034#endif
1035
1036#ifdef min
1037#undef min
1038#endif
1039
1040// It is necessary to use templates here. Having normal overloaded
1041// functions does not work because it is necessary to provide both 32-
1042// and 64-bit overloaded functions, which does not work, and having
1043// explicitly-typed versions of these routines (i.e., MAX2I, MAX2L)
1044// will be even more error-prone than macros.
1045template<class T> constexpr T MAX2(T a, T b) { return (a > b) ? a : b; }
1046template<class T> constexpr T MIN2(T a, T b) { return (a < b) ? a : b; }
1047template<class T> constexpr T MAX3(T a, T b, T c) { return MAX2(MAX2(a, b), c); }
1048template<class T> constexpr T MIN3(T a, T b, T c) { return MIN2(MIN2(a, b), c); }
1049template<class T> constexpr T MAX4(T a, T b, T c, T d) { return MAX2(MAX3(a, b, c), d); }
1050template<class T> constexpr T MIN4(T a, T b, T c, T d) { return MIN2(MIN3(a, b, c), d); }
1051
1052template<class T> inline T ABS(T x) { return (x > 0) ? x : -x; }
1053
1054// Return the given value clamped to the range [min ... max]
1055template<typename T>
1056inline T clamp(T value, T min, T max) {
1057 assert(min <= max, "must be")do { if (!(min <= max)) { (*g_assert_poison) = 'X';; report_vm_error
("/home/daniel/Projects/java/jdk/src/hotspot/share/utilities/globalDefinitions.hpp"
, 1057, "assert(" "min <= max" ") failed", "must be"); ::breakpoint
(); } } while (0)
;
1058 return MIN2(MAX2(value, min), max);
1059}
1060
1061inline bool is_odd (intx x) { return x & 1; }
1062inline bool is_even(intx x) { return !is_odd(x); }
1063
1064// abs methods which cannot overflow and so are well-defined across
1065// the entire domain of integer types.
1066static inline unsigned int uabs(unsigned int n) {
1067 union {
1068 unsigned int result;
1069 int value;
1070 };
1071 result = n;
1072 if (value < 0) result = 0-result;
1073 return result;
1074}
1075static inline julong uabs(julong n) {
1076 union {
1077 julong result;
1078 jlong value;
1079 };
1080 result = n;
1081 if (value < 0) result = 0-result;
1082 return result;
1083}
1084static inline julong uabs(jlong n) { return uabs((julong)n); }
1085static inline unsigned int uabs(int n) { return uabs((unsigned int)n); }
1086
1087// "to" should be greater than "from."
1088inline intx byte_size(void* from, void* to) {
1089 return (address)to - (address)from;
1090}
1091
1092
1093// Pack and extract shorts to/from ints:
1094
1095inline int extract_low_short_from_int(jint x) {
1096 return x & 0xffff;
1097}
1098
1099inline int extract_high_short_from_int(jint x) {
1100 return (x >> 16) & 0xffff;
1101}
1102
1103inline int build_int_from_shorts( jushort low, jushort high ) {
1104 return ((int)((unsigned int)high << 16) | (unsigned int)low);
1105}
1106
1107// swap a & b
1108template<class T> static void swap(T& a, T& b) {
1109 T tmp = a;
1110 a = b;
1111 b = tmp;
1112}
1113
1114// array_size_impl is a function that takes a reference to T[N] and
1115// returns a reference to char[N]. It is not ODR-used, so not defined.
1116template<typename T, size_t N> char (&array_size_impl(T (&)[N]))[N];
1117
1118#define ARRAY_SIZE(array)sizeof(array_size_impl(array)) sizeof(array_size_impl(array))
1119
1120//----------------------------------------------------------------------------------------------------
1121// Sum and product which can never overflow: they wrap, just like the
1122// Java operations. Note that we don't intend these to be used for
1123// general-purpose arithmetic: their purpose is to emulate Java
1124// operations.
1125
1126// The goal of this code to avoid undefined or implementation-defined
1127// behavior. The use of an lvalue to reference cast is explicitly
1128// permitted by Lvalues and rvalues [basic.lval]. [Section 3.10 Para
1129// 15 in C++03]
1130#define JAVA_INTEGER_OP(OP, NAME, TYPE, UNSIGNED_TYPE) \
1131inline TYPE NAME (TYPE in1, TYPE in2) { \
1132 UNSIGNED_TYPE ures = static_cast<UNSIGNED_TYPE>(in1); \
1133 ures OP ## = static_cast<UNSIGNED_TYPE>(in2); \
1134 return reinterpret_cast<TYPE&>(ures); \
1135}
1136
1137JAVA_INTEGER_OP(+, java_add, jint, juint)
1138JAVA_INTEGER_OP(-, java_subtract, jint, juint)
1139JAVA_INTEGER_OP(*, java_multiply, jint, juint)
1140JAVA_INTEGER_OP(+, java_add, jlong, julong)
1141JAVA_INTEGER_OP(-, java_subtract, jlong, julong)
1142JAVA_INTEGER_OP(*, java_multiply, jlong, julong)
1143
1144#undef JAVA_INTEGER_OP
1145
1146// Provide integer shift operations with Java semantics. No overflow
1147// issues - left shifts simply discard shifted out bits. No undefined
1148// behavior for large or negative shift quantities; instead the actual
1149// shift distance is the argument modulo the lhs value's size in bits.
1150// No undefined or implementation defined behavior for shifting negative
1151// values; left shift discards bits, right shift sign extends. We use
1152// the same safe conversion technique as above for java_add and friends.
1153#define JAVA_INTEGER_SHIFT_OP(OP, NAME, TYPE, XTYPE) \
1154inline TYPE NAME (TYPE lhs, jint rhs) { \
1155 const uint rhs_mask = (sizeof(TYPE) * 8) - 1; \
1156 STATIC_ASSERT(rhs_mask == 31 || rhs_mask == 63)static_assert((rhs_mask == 31 || rhs_mask == 63), "rhs_mask == 31 || rhs_mask == 63"
)
; \
1157 XTYPE xres = static_cast<XTYPE>(lhs); \
1158 xres OP ## = (rhs & rhs_mask); \
1159 return reinterpret_cast<TYPE&>(xres); \
1160}
1161
1162JAVA_INTEGER_SHIFT_OP(<<, java_shift_left, jint, juint)
1163JAVA_INTEGER_SHIFT_OP(<<, java_shift_left, jlong, julong)
1164// For signed shift right, assume C++ implementation >> sign extends.
1165JAVA_INTEGER_SHIFT_OP(>>, java_shift_right, jint, jint)
1166JAVA_INTEGER_SHIFT_OP(>>, java_shift_right, jlong, jlong)
1167// For >>> use C++ unsigned >>.
1168JAVA_INTEGER_SHIFT_OP(>>, java_shift_right_unsigned, jint, juint)
1169JAVA_INTEGER_SHIFT_OP(>>, java_shift_right_unsigned, jlong, julong)
1170
1171#undef JAVA_INTEGER_SHIFT_OP
1172
1173//----------------------------------------------------------------------------------------------------
1174// The goal of this code is to provide saturating operations for int/uint.
1175// Checks overflow conditions and saturates the result to min_jint/max_jint.
1176#define SATURATED_INTEGER_OP(OP, NAME, TYPE1, TYPE2) \
1177inline int NAME (TYPE1 in1, TYPE2 in2) { \
1178 jlong res = static_cast<jlong>(in1); \
1179 res OP ## = static_cast<jlong>(in2); \
1180 if (res > max_jint) { \
1181 res = max_jint; \
1182 } else if (res < min_jint) { \
1183 res = min_jint; \
1184 } \
1185 return static_cast<int>(res); \
1186}
1187
1188SATURATED_INTEGER_OP(+, saturated_add, int, int)
1189SATURATED_INTEGER_OP(+, saturated_add, int, uint)
1190SATURATED_INTEGER_OP(+, saturated_add, uint, int)
1191SATURATED_INTEGER_OP(+, saturated_add, uint, uint)
1192
1193#undef SATURATED_INTEGER_OP
1194
1195// Dereference vptr
1196// All C++ compilers that we know of have the vtbl pointer in the first
1197// word. If there are exceptions, this function needs to be made compiler
1198// specific.
1199static inline void* dereference_vptr(const void* addr) {
1200 return *(void**)addr;
1201}
1202
1203//----------------------------------------------------------------------------------------------------
1204// String type aliases used by command line flag declarations and
1205// processing utilities.
1206
1207typedef const char* ccstr;
1208typedef const char* ccstrlist; // represents string arguments which accumulate
1209
1210//----------------------------------------------------------------------------------------------------
1211// Default hash/equals functions used by ResourceHashtable
1212
1213template<typename K> unsigned primitive_hash(const K& k) {
1214 unsigned hash = (unsigned)((uintptr_t)k);
1215 return hash ^ (hash >> 3); // just in case we're dealing with aligned ptrs
1216}
1217
1218template<typename K> bool primitive_equals(const K& k0, const K& k1) {
1219 return k0 == k1;
1220}
1221
1222
1223#endif // SHARE_UTILITIES_GLOBALDEFINITIONS_HPP