< prev index next >
src/share/vm/prims/jni.cpp
Print this page
rev 10653 : Excess barriers before JNI accesses, already covered by "Move barriers into typeArrayOop.hpp direct memory accessors"
rev 10719 : [backport] Fix up superfluous changes against upstream
*** 389,399 ****
Handle class_loader (THREAD, JNIHandles::resolve(loaderRef));
if (UsePerfData && !class_loader.is_null()) {
// check whether the current caller thread holds the lock or not.
// If not, increment the corresponding counter
- Handle class_loader1 (THREAD, class_loader());
if (ObjectSynchronizer::
query_lock_ownership((JavaThread*)THREAD, class_loader) !=
ObjectSynchronizer::owner_self) {
ClassLoader::sync_JNIDefineClassLockFreeCounter()->inc();
}
--- 389,398 ----
*** 3616,3626 ****
jni_Get##Result##ArrayElements(JNIEnv *env, ElementType##Array array, jboolean *isCopy)) \
JNIWrapper("Get" XSTR(Result) "ArrayElements"); \
DTRACE_PROBE3(hotspot_jni, Get##Result##ArrayElements__entry, env, array, isCopy);\
/* allocate an chunk of memory in c land */ \
typeArrayOop a = typeArrayOop(JNIHandles::resolve_non_null(array)); \
- a = typeArrayOop(oopDesc::bs()->read_barrier(a)); \
ElementType* result; \
int len = a->length(); \
if (len == 0) { \
/* Empty array: legal but useless, can't return NULL. \
* Return a pointer to something useless. \
--- 3615,3624 ----
*** 3717,3727 ****
jni_Release##Result##ArrayElements(JNIEnv *env, ElementType##Array array, \
ElementType *buf, jint mode)) \
JNIWrapper("Release" XSTR(Result) "ArrayElements"); \
DTRACE_PROBE4(hotspot_jni, Release##Result##ArrayElements__entry, env, array, buf, mode);\
typeArrayOop a = typeArrayOop(JNIHandles::resolve_non_null(array)); \
- a = typeArrayOop(oopDesc::bs()->write_barrier(a)); \
int len = a->length(); \
if (len != 0) { /* Empty array: nothing to free or copy. */ \
if ((mode == 0) || (mode == JNI_COMMIT)) { \
memcpy(a->Tag##_at_addr(0), buf, sizeof(ElementType)*len); \
} \
--- 3715,3724 ----
*** 3799,3809 ****
jsize len, ElementType *buf)) \
JNIWrapper("Get" XSTR(Result) "ArrayRegion"); \
DTRACE_PROBE5(hotspot_jni, Get##Result##ArrayRegion__entry, env, array, start, len, buf);\
DT_VOID_RETURN_MARK(Get##Result##ArrayRegion); \
typeArrayOop src = typeArrayOop(JNIHandles::resolve_non_null(array)); \
- src = typeArrayOop(oopDesc::bs()->read_barrier(src)); \
if (start < 0 || len < 0 || ((unsigned int)start + (unsigned int)len > (unsigned int)src->length())) { \
THROW(vmSymbols::java_lang_ArrayIndexOutOfBoundsException()); \
} else { \
if (len > 0) { \
int sc = TypeArrayKlass::cast(src->klass())->log2_element_size(); \
--- 3796,3805 ----
*** 3884,3894 ****
jsize len, const ElementType *buf)) \
JNIWrapper("Set" XSTR(Result) "ArrayRegion"); \
DTRACE_PROBE5(hotspot_jni, Set##Result##ArrayRegion__entry, env, array, start, len, buf);\
DT_VOID_RETURN_MARK(Set##Result##ArrayRegion); \
typeArrayOop dst = typeArrayOop(JNIHandles::resolve_non_null(array)); \
- dst = typeArrayOop(oopDesc::bs()->write_barrier(dst)); \
if (start < 0 || len < 0 || ((unsigned int)start + (unsigned int)len > (unsigned int)dst->length())) { \
THROW(vmSymbols::java_lang_ArrayIndexOutOfBoundsException()); \
} else { \
if (len > 0) { \
int sc = TypeArrayKlass::cast(dst->klass())->log2_element_size(); \
--- 3880,3889 ----
< prev index next >