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

This commit is contained in:
Benoit Girard 2010-04-05 00:29:56 -04:00
parent 71f1e1e1ec
commit e854857c67

View file

@ -246,6 +246,10 @@ void cgdata_release_callback(void *aCGData, const void *data, size_t size) {
void nsCARenderer::Destroy() { void nsCARenderer::Destroy() {
if (mCARenderer) { if (mCARenderer) {
CARenderer* caRenderer = (CARenderer*)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]; [caRenderer release];
} }
if (mPixelBuffer) { if (mPixelBuffer) {