summaryrefslogtreecommitdiffstats
path: root/gfx/layers/composite/CanvasLayerComposite.cpp
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@wolfbeast.com>2019-05-28 15:18:04 +0200
committerwolfbeast <mcwerewolf@wolfbeast.com>2019-05-28 15:18:04 +0200
commit9b655e3666a6eae6f217e584ef3915c8ff99ddc1 (patch)
tree31861f345384317ea7a99e1520e24519f9c07304 /gfx/layers/composite/CanvasLayerComposite.cpp
parent65991dc1f2d197bed4657780d7f3b0204a78bb4e (diff)
downloadUXP-9b655e3666a6eae6f217e584ef3915c8ff99ddc1.tar
UXP-9b655e3666a6eae6f217e584ef3915c8ff99ddc1.tar.gz
UXP-9b655e3666a6eae6f217e584ef3915c8ff99ddc1.tar.lz
UXP-9b655e3666a6eae6f217e584ef3915c8ff99ddc1.tar.xz
UXP-9b655e3666a6eae6f217e584ef3915c8ff99ddc1.zip
Make extra sure Compositables don't refer back to layers after reassignment.
Diffstat (limited to 'gfx/layers/composite/CanvasLayerComposite.cpp')
-rw-r--r--gfx/layers/composite/CanvasLayerComposite.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/gfx/layers/composite/CanvasLayerComposite.cpp b/gfx/layers/composite/CanvasLayerComposite.cpp
index 3c8299e05..86f25b1ee 100644
--- a/gfx/layers/composite/CanvasLayerComposite.cpp
+++ b/gfx/layers/composite/CanvasLayerComposite.cpp
@@ -43,9 +43,13 @@ bool
CanvasLayerComposite::SetCompositableHost(CompositableHost* aHost)
{
switch (aHost->GetType()) {
- case CompositableType::IMAGE:
+ case CompositableType::IMAGE: {
+ if (mCompositableHost && aHost != mCompositableHost) {
+ mCompositableHost->Detach(this);
+ }
mCompositableHost = aHost;
return true;
+ }
default:
return false;
}