jvmtiError RetainedSizeAndHeldObjectsAction::estimateObjectSize()

in src/sizes/retained_size_and_held_objects.cpp [70:82]


jvmtiError RetainedSizeAndHeldObjectsAction::estimateObjectSize(jobject &object, jlong &retainedSize, std::vector<jobject> &heldObjects) {
    jvmtiError err = traverseHeapForTheFirstTime(object);
    if (!isOk(err)) return err;
    if (shouldStopExecution()) return MEMORY_AGENT_INTERRUPTED_ERROR;

    err = traverseHeapFromStartObjectAndCountRetainedSize(object, retainedSize);
    if (!isOk(err)) return err;
    if (shouldStopExecution()) return MEMORY_AGENT_INTERRUPTED_ERROR;

    logger::debug("collect held objects");
    progressManager.updateProgress(85, "Collecting held objects...");
    return getObjectsByTags(jvmti, std::vector<jlong>{HELD_OBJECT_TAG}, heldObjects);
}