forked from mirrors/gecko-dev
Bug 1843848. Add some diagnostic asserts related to ASRs. r=mstange
Depends on D183742 Differential Revision: https://phabricator.services.mozilla.com/D183743
This commit is contained in:
parent
5267cbd117
commit
a8658cf650
4 changed files with 11 additions and 5 deletions
|
|
@ -400,6 +400,9 @@ Maybe<wr::WrClipChainId> ClipManager::DefineClipChain(
|
||||||
// in WR, and put their IDs into |clipIds|.
|
// in WR, and put their IDs into |clipIds|.
|
||||||
for (const DisplayItemClipChain* chain = aChain; chain;
|
for (const DisplayItemClipChain* chain = aChain; chain;
|
||||||
chain = chain->mParent) {
|
chain = chain->mParent) {
|
||||||
|
MOZ_DIAGNOSTIC_ASSERT(chain->mOnStack || !chain->mASR ||
|
||||||
|
chain->mASR->mScrollableFrame);
|
||||||
|
|
||||||
if (!chain->mClip.HasClip()) {
|
if (!chain->mClip.HasClip()) {
|
||||||
// This item in the chain is a no-op, skip over it
|
// This item in the chain is a no-op, skip over it
|
||||||
continue;
|
continue;
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ struct DisplayItemClipChain {
|
||||||
mASR(aASR),
|
mASR(aASR),
|
||||||
mParent(aParent),
|
mParent(aParent),
|
||||||
mNextClipChainToDestroy(aNextClipChainToDestroy)
|
mNextClipChainToDestroy(aNextClipChainToDestroy)
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) || defined(MOZ_DIAGNOSTIC_ASSERT_ENABLED)
|
||||||
,
|
,
|
||||||
mOnStack(true)
|
mOnStack(true)
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -79,7 +79,7 @@ struct DisplayItemClipChain {
|
||||||
DisplayItemClipChain()
|
DisplayItemClipChain()
|
||||||
: mASR(nullptr),
|
: mASR(nullptr),
|
||||||
mNextClipChainToDestroy(nullptr)
|
mNextClipChainToDestroy(nullptr)
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) || defined(MOZ_DIAGNOSTIC_ASSERT_ENABLED)
|
||||||
,
|
,
|
||||||
mOnStack(true)
|
mOnStack(true)
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -91,7 +91,7 @@ struct DisplayItemClipChain {
|
||||||
RefPtr<const DisplayItemClipChain> mParent;
|
RefPtr<const DisplayItemClipChain> mParent;
|
||||||
uint32_t mRefCount = 0;
|
uint32_t mRefCount = 0;
|
||||||
DisplayItemClipChain* mNextClipChainToDestroy;
|
DisplayItemClipChain* mNextClipChainToDestroy;
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) || defined(MOZ_DIAGNOSTIC_ASSERT_ENABLED)
|
||||||
bool mOnStack;
|
bool mOnStack;
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -362,6 +362,9 @@ static Maybe<const ActiveScrolledRoot*> SelectContainerASR(
|
||||||
const ActiveScrolledRoot* itemClipASR =
|
const ActiveScrolledRoot* itemClipASR =
|
||||||
aClipChain ? aClipChain->mASR : nullptr;
|
aClipChain ? aClipChain->mASR : nullptr;
|
||||||
|
|
||||||
|
MOZ_DIAGNOSTIC_ASSERT(!aClipChain || aClipChain->mOnStack || !itemClipASR ||
|
||||||
|
itemClipASR->mScrollableFrame);
|
||||||
|
|
||||||
const ActiveScrolledRoot* finiteBoundsASR =
|
const ActiveScrolledRoot* finiteBoundsASR =
|
||||||
ActiveScrolledRoot::PickDescendant(itemClipASR, aItemASR);
|
ActiveScrolledRoot::PickDescendant(itemClipASR, aItemASR);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1428,12 +1428,12 @@ ActiveScrolledRoot* nsDisplayListBuilder::AllocateActiveScrolledRoot(
|
||||||
const DisplayItemClipChain* nsDisplayListBuilder::AllocateDisplayItemClipChain(
|
const DisplayItemClipChain* nsDisplayListBuilder::AllocateDisplayItemClipChain(
|
||||||
const DisplayItemClip& aClip, const ActiveScrolledRoot* aASR,
|
const DisplayItemClip& aClip, const ActiveScrolledRoot* aASR,
|
||||||
const DisplayItemClipChain* aParent) {
|
const DisplayItemClipChain* aParent) {
|
||||||
MOZ_ASSERT(!(aParent && aParent->mOnStack));
|
MOZ_DIAGNOSTIC_ASSERT(!(aParent && aParent->mOnStack));
|
||||||
void* p = Allocate(sizeof(DisplayItemClipChain),
|
void* p = Allocate(sizeof(DisplayItemClipChain),
|
||||||
DisplayListArenaObjectId::CLIPCHAIN);
|
DisplayListArenaObjectId::CLIPCHAIN);
|
||||||
DisplayItemClipChain* c = new (KnownNotNull, p)
|
DisplayItemClipChain* c = new (KnownNotNull, p)
|
||||||
DisplayItemClipChain(aClip, aASR, aParent, mFirstClipChainToDestroy);
|
DisplayItemClipChain(aClip, aASR, aParent, mFirstClipChainToDestroy);
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) || defined(MOZ_DIAGNOSTIC_ASSERT_ENABLED)
|
||||||
c->mOnStack = false;
|
c->mOnStack = false;
|
||||||
#endif
|
#endif
|
||||||
auto result = mClipDeduplicator.insert(c);
|
auto result = mClipDeduplicator.insert(c);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue