Bug 694964 - Don't generate a Thebes Paint edit in an incomplete transaction. r=bgirard
authorAli Juma <ajuma@mozilla.com>
Fri, 30 Mar 2012 09:25:20 -0400
changeset 94039 d5a7628eed875905a4b3b8f7860c97a04dfb7355
parent 94038 6a45337b5ed6a6e3689ec2ab1e444acb17392bd8
child 94040 ba83e928fec3f78c0c6cb70c11c1104c91c78b2a
push id886
push userlsblakk@mozilla.com
push dateMon, 04 Jun 2012 19:57:52 +0000
treeherdermozilla-beta@bbd8d5efd6d1 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbgirard
bugs694964
milestone14.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 694964 - Don't generate a Thebes Paint edit in an incomplete transaction. r=bgirard
gfx/layers/basic/BasicLayers.cpp
--- a/gfx/layers/basic/BasicLayers.cpp
+++ b/gfx/layers/basic/BasicLayers.cpp
@@ -2407,17 +2407,17 @@ BasicShadowableThebesLayer::PaintBuffer(
                                         bool aDidSelfCopy,
                                         LayerManager::DrawThebesLayerCallback aCallback,
                                         void* aCallbackData)
 {
   Base::PaintBuffer(aContext,
                     aRegionToDraw, aExtendedRegionToDraw, aRegionToInvalidate,
                     aDidSelfCopy,
                     aCallback, aCallbackData);
-  if (!HasShadow()) {
+  if (!HasShadow() || BasicManager()->IsTransactionIncomplete()) {
     return;
   }
 
   nsIntRegion updatedRegion;
   if (mIsNewBuffer || aDidSelfCopy) {
     // A buffer reallocation clears both buffers. The front buffer has all the
     // content by now, but the back buffer is still clear. Here, in effect, we
     // are saying to copy all of the pixels of the front buffer to the back.