< prev index next >
test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/FollowReferences/followref001/followref001.cpp
Print this page
rev 52185 : [mq]: refactor
*** 140,152 ****
/* root object + reachable and unreachable object chains */
*objectsCount = 1 + 2 * chainLength;
printf("Allocate memory for objects list: %d objects\n", *objectsCount);
fflush(0);
! if (!NSK_JVMTI_VERIFY(
! NSK_CPP_STUB3(Allocate, jvmti,
! (*objectsCount * sizeof(ObjectDesc)),
(unsigned char**) objectDescList))) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
printf(" ... allocated array: 0x%p\n", (void*)objectDescList);
--- 140,150 ----
/* root object + reachable and unreachable object chains */
*objectsCount = 1 + 2 * chainLength;
printf("Allocate memory for objects list: %d objects\n", *objectsCount);
fflush(0);
! if (!NSK_JVMTI_VERIFY(jvmti->Allocate((*objectsCount * sizeof(ObjectDesc)),
(unsigned char**) objectDescList))) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
printf(" ... allocated array: 0x%p\n", (void*)objectDescList);
*** 178,223 ****
jclass* debugeeClass,
jclass* rootObjectClass,
jclass* chainObjectClass)
{
! if (!NSK_JNI_VERIFY(jni, (*debugeeClass =
! NSK_CPP_STUB2(FindClass, jni, DEBUGEE_CLASS_NAME)) != NULL)) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
printf("\nFound debugee class: 0x%p\n %s\n",
(void*) *debugeeClass, DEBUGEE_CLASS_NAME);
fflush(0);
if (!NSK_JNI_VERIFY(jni, (*rootObjectClass =
! NSK_CPP_STUB2(FindClass, jni, ROOT_OBJECT_CLASS_NAME)) != NULL)) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
! if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetTag, jvmti,
! *rootObjectClass,
! ROOT_CLASS_TAG))) {
nsk_jvmti_setFailStatus();
}
printf("\nFound root object class: 0x%p, tag=%ld\n %s\n",
(void*) *rootObjectClass,(long) ROOT_CLASS_TAG,
ROOT_OBJECT_CLASS_NAME);
fflush(0);
if (!NSK_JNI_VERIFY(jni, (*chainObjectClass =
! NSK_CPP_STUB2(FindClass, jni, CHAIN_OBJECT_CLASS_NAME)) != NULL)) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
! if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetTag, jvmti,
! *chainObjectClass,
! CHAIN_CLASS_TAG))) {
nsk_jvmti_setFailStatus();
}
printf("\nFound chain object class: 0x%p, tag=%ld\n %s\n",
(void*) *chainObjectClass, (long) CHAIN_CLASS_TAG,
CHAIN_OBJECT_CLASS_NAME);
--- 176,216 ----
jclass* debugeeClass,
jclass* rootObjectClass,
jclass* chainObjectClass)
{
! if (!NSK_JNI_VERIFY(jni, (*debugeeClass = jni->FindClass(DEBUGEE_CLASS_NAME)) != NULL)) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
printf("\nFound debugee class: 0x%p\n %s\n",
(void*) *debugeeClass, DEBUGEE_CLASS_NAME);
fflush(0);
if (!NSK_JNI_VERIFY(jni, (*rootObjectClass =
! jni->FindClass(ROOT_OBJECT_CLASS_NAME)) != NULL)) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
! if (!NSK_JVMTI_VERIFY(jvmti->SetTag(*rootObjectClass, ROOT_CLASS_TAG))) {
nsk_jvmti_setFailStatus();
}
printf("\nFound root object class: 0x%p, tag=%ld\n %s\n",
(void*) *rootObjectClass,(long) ROOT_CLASS_TAG,
ROOT_OBJECT_CLASS_NAME);
fflush(0);
if (!NSK_JNI_VERIFY(jni, (*chainObjectClass =
! jni->FindClass(CHAIN_OBJECT_CLASS_NAME)) != NULL)) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
! if (!NSK_JVMTI_VERIFY(jvmti->SetTag(*chainObjectClass, CHAIN_CLASS_TAG))) {
nsk_jvmti_setFailStatus();
}
printf("\nFound chain object class: 0x%p, tag=%ld\n %s\n",
(void*) *chainObjectClass, (long) CHAIN_CLASS_TAG,
CHAIN_OBJECT_CLASS_NAME);
*** 239,303 ****
jfieldID* nextField)
{
jfieldID rootObjectField = NULL;
if (!NSK_JNI_VERIFY(jni, (rootObjectField =
! NSK_CPP_STUB4(GetStaticFieldID, jni,
! debugeeClass,
! OBJECT_FIELD_NAME,
! ROOT_OBJECT_CLASS_SIG)) != NULL)) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
printf("\nFound fieldID: 0x%p - \'%s\' static field in debugee class\n",
(void*) rootObjectField, OBJECT_FIELD_NAME);
fflush(0);
if (!NSK_JNI_VERIFY(jni, (*reachableChainField =
! NSK_CPP_STUB4(GetFieldID, jni, rootObjectClass,
! REACHABLE_CHAIN_FIELD_NAME,
! CHAIN_OBJECT_CLASS_SIG)) != NULL)) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
printf("\nFound fieldID: 0x%p - \'%s\' field in root object class\n",
(void*) reachableChainField, REACHABLE_CHAIN_FIELD_NAME);
fflush(0);
if (!NSK_JNI_VERIFY(jni, (*unreachableChainField =
! NSK_CPP_STUB4(GetFieldID, jni, rootObjectClass,
! UNREACHABLE_CHAIN_FIELD_NAME,
! CHAIN_OBJECT_CLASS_SIG)) != NULL)) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
printf("\nFound fieldID: 0x%p - \'%s\' field in root object class\n",
(void*) unreachableChainField, UNREACHABLE_CHAIN_FIELD_NAME);
fflush(0);
if (!NSK_JNI_VERIFY(jni, (*nextField =
! NSK_CPP_STUB4(GetFieldID, jni, chainObjectClass,
! NEXT_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
printf("\nFound fieldID: 0x%p - \'%s\' field in chain object class\n",
(void*) nextField, NEXT_FIELD_NAME);
fflush(0);
if (!NSK_JNI_VERIFY(jni, (*rootObjectPtr =
! NSK_CPP_STUB3(GetStaticObjectField, jni,
! debugeeClass, rootObjectField)) != NULL)) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
printf("\nFound root object: 0x%p\n", (void*) *rootObjectPtr);
fflush(0);
! if (!NSK_JNI_VERIFY(jni, (*rootObjectPtr =
! NSK_CPP_STUB2(NewGlobalRef, jni, *rootObjectPtr)) != NULL)) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
printf("Created root object global ref: 0x%p\n", (void*)*rootObjectPtr);
fflush(0);
--- 232,286 ----
jfieldID* nextField)
{
jfieldID rootObjectField = NULL;
if (!NSK_JNI_VERIFY(jni, (rootObjectField =
! jni->GetStaticFieldID(debugeeClass, OBJECT_FIELD_NAME, ROOT_OBJECT_CLASS_SIG)) != NULL)) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
printf("\nFound fieldID: 0x%p - \'%s\' static field in debugee class\n",
(void*) rootObjectField, OBJECT_FIELD_NAME);
fflush(0);
if (!NSK_JNI_VERIFY(jni, (*reachableChainField =
! jni->GetFieldID(rootObjectClass, REACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
printf("\nFound fieldID: 0x%p - \'%s\' field in root object class\n",
(void*) reachableChainField, REACHABLE_CHAIN_FIELD_NAME);
fflush(0);
if (!NSK_JNI_VERIFY(jni, (*unreachableChainField =
! jni->GetFieldID(rootObjectClass, UNREACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
printf("\nFound fieldID: 0x%p - \'%s\' field in root object class\n",
(void*) unreachableChainField, UNREACHABLE_CHAIN_FIELD_NAME);
fflush(0);
if (!NSK_JNI_VERIFY(jni, (*nextField =
! jni->GetFieldID(chainObjectClass, NEXT_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
printf("\nFound fieldID: 0x%p - \'%s\' field in chain object class\n",
(void*) nextField, NEXT_FIELD_NAME);
fflush(0);
if (!NSK_JNI_VERIFY(jni, (*rootObjectPtr =
! jni->GetStaticObjectField(debugeeClass, rootObjectField)) != NULL)) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
printf("\nFound root object: 0x%p\n", (void*) *rootObjectPtr);
fflush(0);
! if (!NSK_JNI_VERIFY(jni, (*rootObjectPtr = jni->NewGlobalRef(*rootObjectPtr)) != NULL)) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
printf("Created root object global ref: 0x%p\n", (void*)*rootObjectPtr);
fflush(0);
*** 326,347 ****
}
count--;
tag++;
! if (!NSK_JNI_VERIFY(jni, (nextObj =
! NSK_CPP_STUB3(GetObjectField, jni, currObj, refField)) != NULL)) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
objectDescList[count].tag = objTag;
if (reachable) {
objectDescList[count].exp_found++;
}
! if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetTag, jvmti, nextObj, objTag))) {
nsk_jvmti_setFailStatus();
}
printf(" tag=%-5ld object=0x%p\n", (long)objTag, (void*)nextObj);
fflush(0);
--- 309,329 ----
}
count--;
tag++;
! if (!NSK_JNI_VERIFY(jni, (nextObj = jni->GetObjectField(currObj, refField)) != NULL)) {
nsk_jvmti_setFailStatus();
return NSK_FALSE;
}
objectDescList[count].tag = objTag;
if (reachable) {
objectDescList[count].exp_found++;
}
! if (!NSK_JVMTI_VERIFY(jvmti->SetTag(nextObj, objTag))) {
nsk_jvmti_setFailStatus();
}
printf(" tag=%-5ld object=0x%p\n", (long)objTag, (void*)nextObj);
fflush(0);
*** 357,367 ****
reachable)
) {
return NSK_FALSE;
}
! NSK_TRACE(NSK_CPP_STUB2(DeleteLocalRef, jni, nextObj));
return NSK_TRUE;
} /* getAndTagChainObjects */
/** Obtain all tested objects from debugee class and tag them recursively. */
--- 339,349 ----
reachable)
) {
return NSK_FALSE;
}
! NSK_TRACE(jni->DeleteLocalRef(nextObj));
return NSK_TRUE;
} /* getAndTagChainObjects */
/** Obtain all tested objects from debugee class and tag them recursively. */
*** 409,421 ****
}
printf("\nObtain and tag chain objects:\n");
printf(" root tested object:\n");
! if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetTag, jvmti,
! *rootObjectPtr,
! ROOT_OBJECT_TAG))
) {
nsk_jvmti_setFailStatus();
}
printf(" tag=%-5ld object = 0x%p\n",
(long) ROOT_OBJECT_TAG, (void*) *rootObjectPtr);
--- 391,401 ----
}
printf("\nObtain and tag chain objects:\n");
printf(" root tested object:\n");
! if (!NSK_JVMTI_VERIFY(jvmti->SetTag(*rootObjectPtr, ROOT_OBJECT_TAG))
) {
nsk_jvmti_setFailStatus();
}
printf(" tag=%-5ld object = 0x%p\n",
(long) ROOT_OBJECT_TAG, (void*) *rootObjectPtr);
*** 529,545 ****
ObjectDesc* objectDescList,
jobject rootObject)
{
if (rootObject != NULL) {
printf("Release object reference to root tested object: 0x%p\n", rootObject);
! NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, rootObject));
}
if (objectDescList != NULL) {
printf("Deallocate objects list: 0x%p\n", (void*)objectDescList);
! if (!NSK_JVMTI_VERIFY(
! NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)objectDescList))) {
nsk_jvmti_setFailStatus();
}
}
fflush(0);
--- 509,524 ----
ObjectDesc* objectDescList,
jobject rootObject)
{
if (rootObject != NULL) {
printf("Release object reference to root tested object: 0x%p\n", rootObject);
! NSK_TRACE(jni->DeleteGlobalRef(rootObject));
}
if (objectDescList != NULL) {
printf("Deallocate objects list: 0x%p\n", (void*)objectDescList);
! if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)objectDescList))) {
nsk_jvmti_setFailStatus();
}
}
fflush(0);
*** 784,801 ****
}
printf(">>> Start iteration from root tested object: 0x%p\n\n", rootObject);
fflush(0);
! if (!NSK_JVMTI_VERIFY(
! NSK_CPP_STUB6(FollowReferences, jvmti,
! (jint) 0, /* heap_filter */
(jclass) NULL, /* class */
rootObject, /* initial_object */
&heapCallbacks,
! (const void *) &fakeUserData))
! ) {
nsk_jvmti_setFailStatus();
return;
}
printf(">>> Check if reachable objects were iterated:\n");
--- 763,777 ----
}
printf(">>> Start iteration from root tested object: 0x%p\n\n", rootObject);
fflush(0);
! if (!NSK_JVMTI_VERIFY(jvmti->FollowReferences((jint) 0, /* heap_filter */
(jclass) NULL, /* class */
rootObject, /* initial_object */
&heapCallbacks,
! (const void *) &fakeUserData))) {
nsk_jvmti_setFailStatus();
return;
}
printf(">>> Check if reachable objects were iterated:\n");
*** 854,864 ****
{
jvmtiCapabilities caps;
memset(&caps, 0, sizeof(caps));
caps.can_tag_objects = 1;
! if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) {
return JNI_ERR;
}
}
/* Setting Heap Callbacks */
--- 830,840 ----
{
jvmtiCapabilities caps;
memset(&caps, 0, sizeof(caps));
caps.can_tag_objects = 1;
! if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) {
return JNI_ERR;
}
}
/* Setting Heap Callbacks */
< prev index next >