jvmtiError MemoryAgentAction::FollowReferences()

in src/memory_agent_action.hpp [70:85]


jvmtiError MemoryAgentAction<RESULT_TYPE, ARGS_TYPES...>::FollowReferences(jint heapFilter, jclass klass, jobject initialObject,
                                                                           jvmtiHeapReferenceCallback callback, void *userData,
                                                                           const char *debugMessage) const {
    if (shouldStopExecution()) return MEMORY_AGENT_INTERRUPTED_ERROR;

    if (debugMessage) {
        logger::debug(debugMessage);
    }

    jvmtiHeapCallbacks cb;
    std::memset(&cb, 0, sizeof(jvmtiHeapCallbacks));
    cb.heap_reference_callback = followReferencesCallbackWrapper;

    CallbackWrapperData wrapperData(reinterpret_cast<void *>(callback), userData, dynamic_cast<const CancellationChecker *>(this));
    return jvmti->FollowReferences(heapFilter, klass, initialObject, &cb, &wrapperData);
}