in src/roots/paths_to_closest_gc_roots.cpp [148:164]
void insertRootInfos(jlong referee, std::unordered_map<jlong, std::vector<ReferenceInfo *>> &tagToInfos) {
std::vector<ReferenceInfo *> *pInfos;
auto it = tagToInfos.find(referee);
if (it == tagToInfos.end()) {
tagToInfos[referee] = std::vector<ReferenceInfo *>();
pInfos = &tagToInfos[referee];
} else {
pInfos = &it->second;
}
GcTag *tag = GcTag::pointerToGcTag(referee);
for (ReferenceInfo *info : tag->backRefs) {
if (info->getTag() == -1) {
pInfos->push_back(info);
}
}
}