summaryrefslogtreecommitdiffstats
path: root/dom/base/nsNodeUtils.cpp
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@wolfbeast.com>2019-01-29 09:40:44 +0100
committerwolfbeast <mcwerewolf@wolfbeast.com>2019-01-29 09:40:44 +0100
commit1a04d73a129926d54e13ac9d947062b221f0bacd (patch)
treef7bb70c9928ad16a56e2532f9d98aece61dbe1c4 /dom/base/nsNodeUtils.cpp
parent1f9ab3a6e6e3f1e79b482c0540c98859bbc71350 (diff)
parent7f992d50e417b0c2f18259ce2353e3ead4870694 (diff)
downloadUXP-1a04d73a129926d54e13ac9d947062b221f0bacd.tar
UXP-1a04d73a129926d54e13ac9d947062b221f0bacd.tar.gz
UXP-1a04d73a129926d54e13ac9d947062b221f0bacd.tar.lz
UXP-1a04d73a129926d54e13ac9d947062b221f0bacd.tar.xz
UXP-1a04d73a129926d54e13ac9d947062b221f0bacd.zip
Merge branch 'master' into cycle_collector-work
Diffstat (limited to 'dom/base/nsNodeUtils.cpp')
-rw-r--r--dom/base/nsNodeUtils.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/dom/base/nsNodeUtils.cpp b/dom/base/nsNodeUtils.cpp
index ecea95dc1..75d408151 100644
--- a/dom/base/nsNodeUtils.cpp
+++ b/dom/base/nsNodeUtils.cpp
@@ -297,6 +297,16 @@ nsNodeUtils::LastRelease(nsINode* aNode)
NodeWillBeDestroyed, (aNode));
}
+ if (aNode->IsElement()) {
+ Element* elem = aNode->AsElement();
+ FragmentOrElement::nsDOMSlots* domSlots =
+ static_cast<FragmentOrElement::nsDOMSlots*>(slots);
+ for (auto iter = domSlots->mRegisteredIntersectionObservers.Iter(); !iter.Done(); iter.Next()) {
+ DOMIntersectionObserver* observer = iter.Key();
+ observer->UnlinkTarget(*elem);
+ }
+ }
+
delete slots;
aNode->mSlots = nullptr;
}