in stetho/src/main/java/com/facebook/stetho/inspector/elements/ShadowDocument.java [196:237]
private void setElementParent(Object element, Object parentElement) {
ElementInfo changesElementInfo = mElementToInfoChangesMap.get(element);
if (changesElementInfo != null &&
parentElement == changesElementInfo.parentElement) {
return;
}
ElementInfo oldElementInfo = mElementToInfoMap.get(element);
if (changesElementInfo == null &&
oldElementInfo != null &&
parentElement == oldElementInfo.parentElement) {
return;
}
if (changesElementInfo != null &&
oldElementInfo != null &&
parentElement == oldElementInfo.parentElement &&
ListUtil.identityEquals(oldElementInfo.children, changesElementInfo.children)) {
mElementToInfoChangesMap.remove(element);
if (parentElement == null) {
mRootElementChanges.remove(element);
}
return;
}
List<Object> children = (changesElementInfo != null)
? changesElementInfo.children
: (oldElementInfo != null)
? oldElementInfo.children
: Collections.emptyList();
ElementInfo newElementInfo = new ElementInfo(element, parentElement, children);
mElementToInfoChangesMap.put(element, newElementInfo);
if (parentElement == null) {
mRootElementChanges.add(element);
} else {
mRootElementChanges.remove(element);
}
}