jvmtiError RetainedSizeByObjectsAction::createTagForObject()

in src/sizes/retained_size_by_objects.cpp [22:35]


jvmtiError RetainedSizeByObjectsAction::createTagForObject(jobject object, size_t index) {
    jlong oldTag;
    jvmtiError err = jvmti->GetTag(object, &oldTag);
    if (!isOk(err)) return err;
    Tag *tag = Tag::create(index, createState(true, true, false, false));
    if (oldTag != 0 && !isTagWithNewInfo(oldTag)) {
        tagToPointer(oldTag)->array.extend(tag->array);
        delete tag;
    } else {
        err = jvmti->SetTag(object, pointerToTag(tag));
    }

    return err;
}