Bug 1348481 Part 3: Fix a dangerous typo in StyleSetHandleInlines (replaced one variable with another) and add assert to catch the problem it created.
MozReview-Commit-ID: L2tfMt7TM60
--- a/layout/style/ServoStyleSet.cpp
+++ b/layout/style/ServoStyleSet.cpp
@@ -655,16 +655,17 @@ ServoStyleSet::ReplaceSheets(SheetType a
nsresult
ServoStyleSet::InsertStyleSheetBefore(SheetType aType,
ServoStyleSheet* aNewSheet,
ServoStyleSheet* aReferenceSheet)
{
MOZ_ASSERT(aNewSheet);
MOZ_ASSERT(aReferenceSheet);
MOZ_ASSERT(aNewSheet->IsApplicable());
+ MOZ_ASSERT(aNewSheet != aReferenceSheet, "Can't place sheet before itself.");
MOZ_ASSERT(aNewSheet->RawSheet(), "Raw sheet should be in place before insertion.");
MOZ_ASSERT(aReferenceSheet->RawSheet(), "Reference sheet should have a raw sheet.");
uint32_t beforeUniqueID = FindSheetOfType(aType, aReferenceSheet);
if (beforeUniqueID == 0) {
return NS_ERROR_INVALID_ARG;
}
--- a/layout/style/StyleSetHandleInlines.h
+++ b/layout/style/StyleSetHandleInlines.h
@@ -180,17 +180,17 @@ StyleSetHandle::Ptr::ReplaceSheets(Sheet
nsresult
StyleSetHandle::Ptr::InsertStyleSheetBefore(SheetType aType,
StyleSheet* aNewSheet,
StyleSheet* aReferenceSheet)
{
FORWARD_CONCRETE(
InsertStyleSheetBefore,
(aType, aNewSheet->AsGecko(), aReferenceSheet->AsGecko()),
- (aType, aReferenceSheet->AsServo(), aReferenceSheet->AsServo()));
+ (aType, aNewSheet->AsServo(), aReferenceSheet->AsServo()));
}
int32_t
StyleSetHandle::Ptr::SheetCount(SheetType aType) const
{
FORWARD(SheetCount, (aType));
}