jint JNICALL secondTraversal()

in src/sizes/retained_size_and_held_objects.cpp [25:36]


jint JNICALL secondTraversal(jvmtiHeapReferenceKind refKind, const jvmtiHeapReferenceInfo *refInfo, jlong classTag,
                            jlong referrerClassTag, jlong size, jlong *tagPtr,
                            jlong *referrerTagPtr, jint length, void *userData) {
    if (*tagPtr != 0 || refKind == JVMTI_HEAP_REFERENCE_JNI_LOCAL || refKind == JVMTI_HEAP_REFERENCE_JNI_GLOBAL) {
        return 0;
    } else if (*tagPtr == 0) {
        *reinterpret_cast<jlong *>(userData) += size;
        *tagPtr = HELD_OBJECT_TAG;
    }

    return JVMTI_VISIT_OBJECTS;
}