Bug 781679 - Assert that we're not in the middle of a transaction when we switch layer managers. r=mattwoodrow

This commit is contained in:
Joe Drew
2012-08-15 17:55:38 -04:00
parent 3f0afe00d0
commit e09a2e3ed4
6 changed files with 40 additions and 1 deletions

View File

@@ -152,6 +152,7 @@ BasicLayerManager::SetDefaultTargetConfiguration(BufferMode aDoubleBuffering, Sc
void
BasicLayerManager::BeginTransaction()
{
mInTransaction = true;
mUsingDefaultTarget = true;
BeginTransactionWithTarget(mDefaultTarget);
}
@@ -204,6 +205,8 @@ BasicLayerManager::PopGroupToSourceWithCachedSurface(gfxContext *aTarget, gfxCon
void
BasicLayerManager::BeginTransactionWithTarget(gfxContext* aTarget)
{
mInTransaction = true;
#ifdef MOZ_LAYERS_HAVE_LOG
MOZ_LAYERS_LOG(("[----- BeginTransaction"));
Log();
@@ -390,6 +393,8 @@ BasicLayerManager::EndTransaction(DrawThebesLayerCallback aCallback,
void* aCallbackData,
EndTransactionFlags aFlags)
{
mInTransaction = false;
EndTransactionInternal(aCallback, aCallbackData, aFlags);
}
@@ -401,6 +406,7 @@ BasicLayerManager::AbortTransaction()
mPhase = PHASE_NONE;
#endif
mUsingDefaultTarget = false;
mInTransaction = false;
}
bool
@@ -529,6 +535,8 @@ BasicLayerManager::FlashWidgetUpdateArea(gfxContext *aContext)
bool
BasicLayerManager::EndEmptyTransaction(EndTransactionFlags aFlags)
{
mInTransaction = false;
if (!mRoot) {
return false;
}