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

Reply via email to