void CompositorChild::Destroy() { mLayerManager = NULL; size_t numChildren = ManagedPLayersChild().Length(); NS_ABORT_IF_FALSE(0 == numChildren || 1 == numChildren, "compositor must only have 0 or 1 layer forwarder"); if (numChildren) { ShadowLayersChild* layers = static_cast<ShadowLayersChild*>(ManagedPLayersChild()[0]); layers->Destroy(); } SendStop(); }
void RenderFrameChild::Destroy() { size_t numChildren = ManagedPLayersChild().Length(); NS_ABORT_IF_FALSE(0 == numChildren || 1 == numChildren, "render frame must only have 0 or 1 layer forwarder"); if (numChildren) { ShadowLayersChild* layers = static_cast<ShadowLayersChild*>(ManagedPLayersChild()[0]); layers->Destroy(); // |layers| was just deleted, take care } Send__delete__(this); // WARNING: |this| is dead, hands off }