static bool handleReferrersWithNoInfo()

in src/sizes/retained_size_action.cpp [7:28]


static bool handleReferrersWithNoInfo(const jlong *referrerTagPtr, jlong *tagPtr, bool setTagsWithNewInfo=false) {
    if (referrerTagPtr == nullptr || isEmptyTag(*referrerTagPtr)) {
        if (*tagPtr == 0) {
            *tagPtr = pointerToTag(&Tag::EmptyTag);
        } else if (!isEmptyTag(*tagPtr)) {
            Tag *referree = tagToPointer(*tagPtr);
            if (setTagsWithNewInfo && referree->alreadyReferred) {
                referree->unref();
                *tagPtr = pointerToTag(&Tag::TagWithNewInfo);
            } else {
                referree->visitFromUntaggedReferrer();
            }
        }

        return true;
    } else if (isTagWithNewInfo(*referrerTagPtr) || *referrerTagPtr == 0 ||
               tagToClassTagPointer(*referrerTagPtr)) {
        return true;
    }

    return false;
}