diff --git a/layout/style/crashtests/509569-1.html b/layout/style/crashtests/509569-1.html new file mode 100644 index 000000000000..023c710401ee --- /dev/null +++ b/layout/style/crashtests/509569-1.html @@ -0,0 +1,2 @@ + + diff --git a/layout/style/crashtests/crashtests.list b/layout/style/crashtests/crashtests.list index 8d22e2346141..474d070cb1af 100644 --- a/layout/style/crashtests/crashtests.list +++ b/layout/style/crashtests/crashtests.list @@ -48,6 +48,7 @@ load 495269-2.html load 498036-1.html load 509155-1.html load 509156-1.html +load 509569-1.html load 524252-1.html load font-face-truncated-src.html load 536789-1.html diff --git a/layout/style/nsRuleNode.cpp b/layout/style/nsRuleNode.cpp index a4f79a9bc355..cb9ce6b9ec59 100644 --- a/layout/style/nsRuleNode.cpp +++ b/layout/style/nsRuleNode.cpp @@ -2326,6 +2326,12 @@ nsRuleNode::AdjustLogicalBoxProp(nsStyleContext* aContext, if (RTLlogical) aValueRect.*(nsCSSRect::sides[aSide]) = aRTLLogicalValue; } + } else if (aLTRLogicalValue.GetUnit() == eCSSUnit_Inherit || + aRTLLogicalValue.GetUnit() == eCSSUnit_Inherit) { + // It actually is valid to store this in the ruletree, since + // LTRlogical and RTLlogical are both false, but doing that will + // trigger asserts. Silence those. + aCanStoreInRuleTree = PR_FALSE; } }