REOPENED 101860
RenderStyle: Pack Color members tighter in substructures.
https://bugs.webkit.org/show_bug.cgi?id=101860
Summary RenderStyle: Pack Color members tighter in substructures.
Andreas Kling
Reported 2012-11-11 05:05:55 PST
WebCore::Color is currently quite wasteful with its { RGBA32 rgba; bool isValid; } layout. For colors that can never be invalid, we should just store an RGBA32. For others, we can pack the validity flags with other bitfield members.
Attachments
EWS experiment (36.15 KB, patch)
2012-11-11 05:06 PST, Andreas Kling
webkit-ews: commit-queue-
EWS experiment 2 (36.29 KB, patch)
2012-11-11 10:54 PST, Andreas Kling
no flags
Patch (40.70 KB, patch)
2012-11-11 12:30 PST, Andreas Kling
koivisto: review+
Andreas Kling
Comment 1 2012-11-11 05:06:24 PST
Created attachment 173497 [details] EWS experiment
WebKit Review Bot
Comment 2 2012-11-11 05:08:03 PST
Attachment 173497 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/rendering/style/RenderStyle..." exit_code: 1 Source/WebCore/rendering/style/RenderStyle.cpp:977: More than one command on the same line [whitespace/newline] [4] Total errors found: 1 in 12 files If any of these errors are false positives, please file a bug against check-webkit-style.
Early Warning System Bot
Comment 3 2012-11-11 05:12:01 PST
Comment on attachment 173497 [details] EWS experiment Attachment 173497 [details] did not pass qt-ews (qt): Output: http://queues.webkit.org/results/14792714
Early Warning System Bot
Comment 4 2012-11-11 05:13:27 PST
Comment on attachment 173497 [details] EWS experiment Attachment 173497 [details] did not pass qt-wk2-ews (qt): Output: http://queues.webkit.org/results/14813025
EFL EWS Bot
Comment 5 2012-11-11 05:18:37 PST
Comment on attachment 173497 [details] EWS experiment Attachment 173497 [details] did not pass efl-ews (efl): Output: http://queues.webkit.org/results/14809114
WebKit Review Bot
Comment 6 2012-11-11 05:32:03 PST
Comment on attachment 173497 [details] EWS experiment Attachment 173497 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/14794644
Peter Beverloo (cr-android ews)
Comment 7 2012-11-11 05:41:20 PST
Comment on attachment 173497 [details] EWS experiment Attachment 173497 [details] did not pass cr-android-ews (chromium-android): Output: http://queues.webkit.org/results/14794646
Andreas Kling
Comment 8 2012-11-11 10:54:10 PST
Created attachment 173510 [details] EWS experiment 2
Andreas Kling
Comment 9 2012-11-11 12:30:05 PST
Antti Koivisto
Comment 10 2012-11-12 02:12:20 PST
Comment on attachment 173515 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=173515&action=review > Source/WebCore/rendering/style/RenderStyle.cpp:978 > Color RenderStyle::color() const { return inherited->color; } > Color RenderStyle::visitedLinkColor() const { return inherited->visitedLinkColor; } > -void RenderStyle::setColor(const Color& v) { SET_VAR(inherited, color, v) }; > -void RenderStyle::setVisitedLinkColor(const Color& v) { SET_VAR(inherited, visitedLinkColor, v) } > +void RenderStyle::setColor(const Color& v) { SET_VAR(inherited, color, v.rgb()); } > +void RenderStyle::setVisitedLinkColor(const Color& v) { SET_VAR(inherited, visitedLinkColor, v.rgb()); } Should these just take/return RGB32s? It would be good if the interface would make it clear what is being saved. At least there should be ASSERT(c.isValid()).
Andreas Kling
Comment 11 2012-11-12 06:45:27 PST
WebKit Review Bot
Comment 12 2012-11-12 07:56:37 PST
Re-opened since this is blocked by bug 101937
Note You need to log in before you can comment on or make changes to this bug.