< 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 >