Title: [92871] trunk/Source/WebCore
- Revision
- 92871
- Author
- [email protected]
- Date
- 2011-08-11 12:22:57 -0700 (Thu, 11 Aug 2011)
Log Message
https://bugs.webkit.org/show_bug.cgi?id=65944
Replace QuotesData::operator==() with QuotesData::equal(const QuotesData*
, const QuotesData*) because QuotesData::operator==() were using non-standard
C++ code that is not supported by all compilers.
Patch by Yong Li <[email protected]> on 2011-08-11
Reviewed by Alexey Proskuryakov.
No new tests because some existing test cases can show the issue,
for example, fast/css/content/content-quotes-01.html.
* rendering/RenderQuote.cpp:
(WebCore::RenderQuote::styleDidChange):
* rendering/style/QuotesData.cpp:
(WebCore::QuotesData::equal):
* rendering/style/QuotesData.h:
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setQuotes):
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::operator==):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (92870 => 92871)
--- trunk/Source/WebCore/ChangeLog 2011-08-11 18:08:08 UTC (rev 92870)
+++ trunk/Source/WebCore/ChangeLog 2011-08-11 19:22:57 UTC (rev 92871)
@@ -1,3 +1,25 @@
+2011-08-11 Yong Li <[email protected]>
+
+ https://bugs.webkit.org/show_bug.cgi?id=65944
+ Replace QuotesData::operator==() with QuotesData::equal(const QuotesData*
+ , const QuotesData*) because QuotesData::operator==() were using non-standard
+ C++ code that is not supported by all compilers.
+
+ Reviewed by Alexey Proskuryakov.
+
+ No new tests because some existing test cases can show the issue,
+ for example, fast/css/content/content-quotes-01.html.
+
+ * rendering/RenderQuote.cpp:
+ (WebCore::RenderQuote::styleDidChange):
+ * rendering/style/QuotesData.cpp:
+ (WebCore::QuotesData::equal):
+ * rendering/style/QuotesData.h:
+ * rendering/style/RenderStyle.cpp:
+ (WebCore::RenderStyle::setQuotes):
+ * rendering/style/StyleRareInheritedData.cpp:
+ (WebCore::StyleRareInheritedData::operator==):
+
2011-08-11 David Hyatt <[email protected]>
https://bugs.webkit.org/show_bug.cgi?id=66075
Modified: trunk/Source/WebCore/rendering/RenderQuote.cpp (92870 => 92871)
--- trunk/Source/WebCore/rendering/RenderQuote.cpp 2011-08-11 18:08:08 UTC (rev 92870)
+++ trunk/Source/WebCore/rendering/RenderQuote.cpp 2011-08-11 19:22:57 UTC (rev 92871)
@@ -323,7 +323,7 @@
{
const QuotesData* newQuotes = style()->quotes();
const QuotesData* oldQuotes = oldStyle ? oldStyle->quotes() : 0;
- if (!((newQuotes && oldQuotes && (*newQuotes == *oldQuotes)) || (!newQuotes && !oldQuotes)))
+ if (!QuotesData::equal(newQuotes, oldQuotes))
setNeedsLayoutAndPrefWidthsRecalc();
RenderText::styleDidChange(diff, oldStyle);
}
Modified: trunk/Source/WebCore/rendering/style/QuotesData.cpp (92870 => 92871)
--- trunk/Source/WebCore/rendering/style/QuotesData.cpp 2011-08-11 18:08:08 UTC (rev 92870)
+++ trunk/Source/WebCore/rendering/style/QuotesData.cpp 2011-08-11 19:22:57 UTC (rev 92871)
@@ -34,18 +34,18 @@
return reinterpret_cast<QuotesData*>(tmp);
}
-bool QuotesData::operator==(const QuotesData& other) const
+bool QuotesData::equal(const QuotesData* quotesData1, const QuotesData* quotesData2)
{
- if (this == &other)
+ if (quotesData1 == quotesData2)
return true;
- if (!&other || !this)
+ if (!quotesData1 || !quotesData2)
return false;
- if (length != other.length)
+ if (quotesData1->length != quotesData2->length)
return false;
- const String* myData = data();
- const String* otherData = other.data();
- for (int i = length-1; i >= 0; --i)
- if (myData[i] != otherData[i])
+ const String* data1 = quotesData1->data();
+ const String* data2 = quotesData2->data();
+ for (int i = quotesData1->length - 1; i >= 0; --i)
+ if (data1[i] != data2[i])
return false;
return true;
}
Modified: trunk/Source/WebCore/rendering/style/QuotesData.h (92870 => 92871)
--- trunk/Source/WebCore/rendering/style/QuotesData.h 2011-08-11 18:08:08 UTC (rev 92870)
+++ trunk/Source/WebCore/rendering/style/QuotesData.h 2011-08-11 19:22:57 UTC (rev 92871)
@@ -33,8 +33,8 @@
String* data() { return reinterpret_cast<String*>(this+1); }
const String* data() const { return reinterpret_cast<const String*>(this+1); }
int length;
- bool operator==(const QuotesData&) const;
void operator delete(void* p) { delete[] static_cast<char*>(p); }
+ static bool equal(const QuotesData*, const QuotesData*);
private:
QuotesData(int stringCount) : length(stringCount) {}
};
Modified: trunk/Source/WebCore/rendering/style/RenderStyle.cpp (92870 => 92871)
--- trunk/Source/WebCore/rendering/style/RenderStyle.cpp 2011-08-11 18:08:08 UTC (rev 92870)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.cpp 2011-08-11 19:22:57 UTC (rev 92871)
@@ -627,7 +627,7 @@
void RenderStyle::setQuotes(PassRefPtr<QuotesData> q)
{
- if (*rareInheritedData->quotes.get() == *q.get())
+ if (QuotesData::equal(rareInheritedData->quotes.get(), q.get()))
return;
rareInheritedData.access()->quotes = q;
}
Modified: trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp (92870 => 92871)
--- trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp 2011-08-11 18:08:08 UTC (rev 92870)
+++ trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp 2011-08-11 19:22:57 UTC (rev 92871)
@@ -143,7 +143,7 @@
&& hyphenationString == o.hyphenationString
&& locale == o.locale
&& textEmphasisCustomMark == o.textEmphasisCustomMark
- && *quotes == *o.quotes
+ && QuotesData::equal(quotes.get(), o.quotes.get())
&& m_imageRendering == o.m_imageRendering;
}
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes