< prev index next >

test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap/filter-tagged/HeapFilter.cpp

Print this page

        

*** 59,72 **** static int reported_objects = 0; //expected values #define INT_ARRAY_LENGTH 2 ! static jint TAGGED_STATIC_INT_VALUE = 0xC0DE01; ! static jint TAGGED_INT_VALUE = 0xC0DE02; ! static jint UNTAGGED_STATIC_INT_VALUE = 0xC0DE03; ! static jint UNTAGGED_INT_VALUE = 0xC0DE04; static jint TAGGED_INT_ARRAY_VALUE[] = {0xC0DE01, 0xC0DE01+1}; static jint UNTAGGED_INT_ARRAY_VALUE[] = {0xC0DE03, 0xC0DE03+1}; static const wchar_t *TAGGED_STRING_VALUE = L"I'm a tagged string"; --- 59,73 ---- static int reported_objects = 0; //expected values #define INT_ARRAY_LENGTH 2 ! static jint POISON = 0x1234; ! static jint TAGGED_STATIC_INT_VALUE = 0xC0DE01 + POISON; ! static jint TAGGED_INT_VALUE = 0xC0DE02 + POISON; ! static jint UNTAGGED_STATIC_INT_VALUE = 0xC0DE03 + POISON; ! static jint UNTAGGED_INT_VALUE = 0xC0DE04 + POISON; static jint TAGGED_INT_ARRAY_VALUE[] = {0xC0DE01, 0xC0DE01+1}; static jint UNTAGGED_INT_ARRAY_VALUE[] = {0xC0DE03, 0xC0DE03+1}; static const wchar_t *TAGGED_STRING_VALUE = L"I'm a tagged string";
*** 350,359 **** --- 351,368 ---- } is_static = (modifiers & STATIC_FIELD) == STATIC_FIELD; if (is_primitive_type(objects_info[object].fields[field].signature)) { objects_info[object].fields[field].primitive = 1; is_primitive = 1; + // Add POISON to all int fields to make the value opaque to the JIT compiler. + if (is_static) { + jint value = jni->GetStaticIntField(targetClass, targetFields[field]); + jni->SetStaticIntField(targetClass, targetFields[field], value + POISON); + } else { + jint value = jni->GetIntField(target, targetFields[field]); + jni->SetIntField(target, targetFields[field], value + POISON); + } } else { jobject value; if (!NSK_JVMTI_VERIFY(jvmti->GetFieldModifiers( targetClass, targetFields[field], &modifiers))) { return JNI_ERR;
< prev index next >