From e854857c67ebeef9397cd4ce1bc04a56503cbb6b Mon Sep 17 00:00:00 2001 From: Benoit Girard Date: Mon, 5 Apr 2010 00:29:56 -0400 Subject: [PATCH] Explicitly remove CALayer from CARenderer when CARenderer is destroyed in order to avoid situations where the CALayer is attached to two renderers. b=556453 r=josh --- layout/generic/nsPluginUtilsOSX.mm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/layout/generic/nsPluginUtilsOSX.mm b/layout/generic/nsPluginUtilsOSX.mm index b4269ccf32a3..bcb653bf28eb 100644 --- a/layout/generic/nsPluginUtilsOSX.mm +++ b/layout/generic/nsPluginUtilsOSX.mm @@ -246,6 +246,10 @@ void cgdata_release_callback(void *aCGData, const void *data, size_t size) { void nsCARenderer::Destroy() { if (mCARenderer) { CARenderer* caRenderer = (CARenderer*)mCARenderer; + // Bug 556453: + // Explicitly remove the layer from the renderer + // otherwise it does not always happen right away. + caRenderer.layer = NULL; [caRenderer release]; } if (mPixelBuffer) {