Extended Color Cleanup: Assert !isExtended() in Color::asSimpleColor()...finally
authorweinig@apple.com <weinig@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 25 May 2020 19:25:51 +0000 (19:25 +0000)
committerweinig@apple.com <weinig@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 25 May 2020 19:25:51 +0000 (19:25 +0000)
https://bugs.webkit.org/show_bug.cgi?id=212357

Reviewed by Simon Fraser.

Reap the reward of the cleanup, and add the ASSERT(!isExtended()) to Color::asSimpleColor()
as was the original goal of this effort. Only tree non-checked places remained and were
trivial to add isExtended() checks for.

* platform/graphics/Color.cpp:
(WebCore::Color::nameForRenderTreeAsText const):
Use ExtenedColor::cssText() for the RenderTree representation. It is stable
and as good as any, no need to re-invent the wheel here.

(WebCore::Color::light const):
(WebCore::Color::dark const):
Add isExtended() checks before doing white/black checks,

* platform/graphics/Color.h:
(WebCore::Color::asSimpleColor const):
Add ASSERT.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262129 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/Color.cpp
Source/WebCore/platform/graphics/Color.h

index 55a9499..a965fd8 100644 (file)
@@ -1,3 +1,27 @@
+2020-05-25  Sam Weinig  <weinig@apple.com>
+
+        Extended Color Cleanup: Assert !isExtended() in Color::asSimpleColor()...finally
+        https://bugs.webkit.org/show_bug.cgi?id=212357
+
+        Reviewed by Simon Fraser.
+
+        Reap the reward of the cleanup, and add the ASSERT(!isExtended()) to Color::asSimpleColor()
+        as was the original goal of this effort. Only tree non-checked places remained and were 
+        trivial to add isExtended() checks for.
+
+        * platform/graphics/Color.cpp:
+        (WebCore::Color::nameForRenderTreeAsText const):
+        Use ExtenedColor::cssText() for the RenderTree representation. It is stable 
+        and as good as any, no need to re-invent the wheel here.
+
+        (WebCore::Color::light const):
+        (WebCore::Color::dark const):
+        Add isExtended() checks before doing white/black checks,
+
+        * platform/graphics/Color.h:
+        (WebCore::Color::asSimpleColor const):
+        Add ASSERT.
+
 2020-05-24  Sam Weinig  <weinig@apple.com>
 
         Extended Color Cleanup: Use the name SimpleColor consistently
index efee94a..0d16665 100644 (file)
@@ -171,13 +171,15 @@ String Color::cssText() const
 
 String Color::nameForRenderTreeAsText() const
 {
+    if (isExtended())
+        return asExtended().cssText();
     return asSimpleColor().serializationForRenderTreeAsText();
 }
 
 Color Color::light() const
 {
     // Hardcode this common case for speed.
-    if (asSimpleColor() == black)
+    if (!isExtended() && asSimpleColor() == black)
         return lightenedBlack;
     
     const float scaleFactor = nextafterf(256.0f, 0.0f);
@@ -202,7 +204,7 @@ Color Color::light() const
 Color Color::dark() const
 {
     // Hardcode this common case for speed.
-    if (asSimpleColor() == white)
+    if (!isExtended() && asSimpleColor() == white)
         return darkenedWhite;
     
     const float scaleFactor = nextafterf(256.0f, 0.0f);
index dadbeaa..996d95c 100644 (file)
@@ -325,8 +325,7 @@ inline const ExtendedColor& Color::asExtended() const
 
 inline const SimpleColor Color::asSimpleColor() const
 {
-    // FIXME: We should ASSERT(!isExtended()) here once we have verified all
-    // call sites are checking isExtended().
+    ASSERT(!isExtended());
     return { static_cast<uint32_t>(m_colorData.simpleColorAndFlags >> 32) };
 }