Bug 1341086 - Part 3: stylo: Add thread-safe version of nsStyleUtil::IsSignificantChild(); r=emilio

MozReview-Commit-ID: 3l8cNwDHKFl
This commit is contained in:
Manish Goregaokar
2017-03-16 14:10:22 -07:00
parent de1687e9f8
commit b937485251
10 changed files with 84 additions and 7 deletions

View File

@@ -982,6 +982,21 @@ nsGenericDOMDataNode::AppendText(const char16_t* aBuffer,
bool
nsGenericDOMDataNode::TextIsOnlyWhitespace()
{
MOZ_ASSERT(NS_IsMainThread());
if (!ThreadSafeTextIsOnlyWhitespace()) {
UnsetFlags(NS_TEXT_IS_ONLY_WHITESPACE);
SetFlags(NS_CACHED_TEXT_IS_ONLY_WHITESPACE);
return false;
}
SetFlags(NS_CACHED_TEXT_IS_ONLY_WHITESPACE | NS_TEXT_IS_ONLY_WHITESPACE);
return true;
}
bool
nsGenericDOMDataNode::ThreadSafeTextIsOnlyWhitespace() const
{
// FIXME: should this method take content language into account?
if (mText.Is2b()) {
@@ -1001,15 +1016,12 @@ nsGenericDOMDataNode::TextIsOnlyWhitespace()
char ch = *cp;
if (!dom::IsSpaceCharacter(ch)) {
UnsetFlags(NS_TEXT_IS_ONLY_WHITESPACE);
SetFlags(NS_CACHED_TEXT_IS_ONLY_WHITESPACE);
return false;
}
++cp;
}
SetFlags(NS_CACHED_TEXT_IS_ONLY_WHITESPACE | NS_TEXT_IS_ONLY_WHITESPACE);
return true;
}