< prev index next >

test/hotspot/jtreg/vmTestbase/nsk/share/gc/lock/jni/ShortArrayCriticalLocker.cpp

Print this page
rev 52100 : 8212083: Handle remaining gc/lock native code and fix two strings
Summary:
Reviewed-by:

*** 21,30 **** --- 21,31 ---- * questions. */ #include <jni.h> #include <stdio.h> #include <time.h> + #include "ExceptionCheckingJniEnv.hpp" #include "jni_tools.h" extern "C" { static jfieldID objFieldId = NULL;
*** 33,67 **** * Class: nsk_share_gc_lock_jni_ShortArrayCriticalLocker * Method: criticalNative * Signature: ([Z)Z */ JNIEXPORT jshort JNICALL Java_nsk_share_gc_lock_jni_ShortArrayCriticalLocker_criticalNative ! (JNIEnv *env, jobject o, jlong enterTime, jlong sleepTime) { jsize size, i; jshortArray arr; jshort *pa; jshort hash = 0; time_t start_time, current_time; if (objFieldId == NULL) { jclass klass = env->GetObjectClass(o); - if (klass == NULL) { - printf("Error: GetObjectClass returned NULL\n"); - return 0; - } objFieldId = env->GetFieldID(klass, "obj", "Ljava/lang/Object;"); - if (objFieldId == NULL) { - printf("Error: GetFieldID returned NULL\n"); - return 0; - } } arr = (jshortArray) env->GetObjectField(o, objFieldId); - if (arr == NULL) { - printf("Error: GetObjectField returned NULL\n"); - return JNI_FALSE; - } env->SetObjectField(o, objFieldId, NULL); size = env->GetArrayLength(arr); start_time = time(NULL); enterTime /= 1000; current_time = 0; while (current_time - start_time < enterTime) { --- 34,59 ---- * Class: nsk_share_gc_lock_jni_ShortArrayCriticalLocker * Method: criticalNative * Signature: ([Z)Z */ JNIEXPORT jshort JNICALL Java_nsk_share_gc_lock_jni_ShortArrayCriticalLocker_criticalNative ! (JNIEnv *jni_env, jobject o, jlong enterTime, jlong sleepTime) { ! ExceptionCheckingJniEnvPtr env(jni_env); ! jsize size, i; jshortArray arr; jshort *pa; jshort hash = 0; time_t start_time, current_time; if (objFieldId == NULL) { jclass klass = env->GetObjectClass(o); objFieldId = env->GetFieldID(klass, "obj", "Ljava/lang/Object;"); } arr = (jshortArray) env->GetObjectField(o, objFieldId); env->SetObjectField(o, objFieldId, NULL); + size = env->GetArrayLength(arr); start_time = time(NULL); enterTime /= 1000; current_time = 0; while (current_time - start_time < enterTime) {
< prev index next >