69 nsk_jvmti_setFailStatus();
70 callbackAborted = 1;
71 NSK_COMPLAIN0("heapObjectCallbackForFirstIteration: Allocation failed. Iteration aborted.\n");
72 return JVMTI_ITERATION_ABORT;
73 }
74 objectDescBuf->next = objectDescList;
75 objectDescList = objectDescBuf;
76
77 return JVMTI_ITERATION_CONTINUE;
78 }
79
80 /** heapRootCallback for second heap iterator. */
81 jvmtiIterationControl JNICALL
82 heapObjectCallbackForSecondIteration(jlong class_tag,
83 jlong size,
84 jlong* tag_ptr,
85 void* user_data) {
86
87 long ind = (long)((*tag_ptr) - 1);
88
89 if (ind < 0 || ind > objectDescCount ) {
90 NSK_COMPLAIN1("heapObjectCallbackForSecondIteration: invalid object tag value: %d\n", (long)*tag_ptr);
91 nsk_jvmti_setFailStatus();
92 callbackAborted = 1;
93 return JVMTI_ITERATION_ABORT;
94 }
95
96 /* Deallocate memory of list element*/
97 if (!NSK_JVMTI_VERIFY(
98 jvmti->Deallocate((unsigned char*)objectDescArr[ind]))) {
99 nsk_jvmti_setFailStatus();
100 callbackAborted = 1;
101 NSK_COMPLAIN0("heapObjectCallbackForSecondIteration: Deallocation failed. Iteration aborted.\n");
102 return JVMTI_ITERATION_ABORT;
103 }
104
105 numberOfDeallocatedFromCallbacksDescriptors++;
106 deallocatedFlagsArr[ind] = 1;
107
108 /* unset tag */
109 *tag_ptr = 0;
|
69 nsk_jvmti_setFailStatus();
70 callbackAborted = 1;
71 NSK_COMPLAIN0("heapObjectCallbackForFirstIteration: Allocation failed. Iteration aborted.\n");
72 return JVMTI_ITERATION_ABORT;
73 }
74 objectDescBuf->next = objectDescList;
75 objectDescList = objectDescBuf;
76
77 return JVMTI_ITERATION_CONTINUE;
78 }
79
80 /** heapRootCallback for second heap iterator. */
81 jvmtiIterationControl JNICALL
82 heapObjectCallbackForSecondIteration(jlong class_tag,
83 jlong size,
84 jlong* tag_ptr,
85 void* user_data) {
86
87 long ind = (long)((*tag_ptr) - 1);
88
89 if (ind < 0 || ind > objectDescCount) {
90 NSK_COMPLAIN1("heapObjectCallbackForSecondIteration: invalid object tag value: %d\n", (long)*tag_ptr);
91 nsk_jvmti_setFailStatus();
92 callbackAborted = 1;
93 return JVMTI_ITERATION_ABORT;
94 }
95
96 /* Deallocate memory of list element*/
97 if (!NSK_JVMTI_VERIFY(
98 jvmti->Deallocate((unsigned char*)objectDescArr[ind]))) {
99 nsk_jvmti_setFailStatus();
100 callbackAborted = 1;
101 NSK_COMPLAIN0("heapObjectCallbackForSecondIteration: Deallocation failed. Iteration aborted.\n");
102 return JVMTI_ITERATION_ABORT;
103 }
104
105 numberOfDeallocatedFromCallbacksDescriptors++;
106 deallocatedFlagsArr[ind] = 1;
107
108 /* unset tag */
109 *tag_ptr = 0;
|