Index: Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.cpp |
=================================================================== |
--- Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.cpp (revision 106674) |
+++ Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.cpp (working copy) |
@@ -150,8 +150,17 @@ |
CRASH(); // Someone updated convertVFCFormatToGC3DFormat above but update this! |
} |
- for (unsigned plane = 0; plane < frame->planes(); ++plane) |
+ for (unsigned plane = 0; plane < frame->planes(); ++plane) { |
m_textures[plane].m_texture->unreserve(); |
+ // FIXME: ManagedTexture's store a raw pointer to their TextureManager, |
+ // and the textures we create use layerRenderer->renderSurfaceTextureManager(). |
+ // Since there is no guarantee layerRenderer will still be alive the |
+ // next time we are called, we clear the texture reference. It would |
+ // be nice if instead we could rely on textures being invalidated when |
+ // their manager was deleted so that new textures didn't always have to |
+ // be recreated for each frame. |
+ m_textures[plane].m_texture.clear(); |
+ } |
m_provider->putCurrentFrame(frame); |
} |