Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(120)

Issue 147233002: Remove internal recursion for RenderBlockFlow and RenderMultiColumnBlock layout (Closed)

Created:
6 years, 11 months ago by atreat
Modified:
6 years, 10 months ago
Reviewers:
eseidel, esprehn, ojan
CC:
blink-reviews, bemjb+rendering_chromium.org, dsinclair, zoltan1, eae+blinkwatch, leviw+renderwatch, jchaffraix+rendering
Base URL:
https://chromium.googlesource.com/chromium/blink.git@master
Visibility:
Public.

Description

Remove internal recursion for RenderBlockFlow and RenderMultiColumnBlock layout The layout routine for pagination and multicolumn support is changed to a non-recursive algorithm. The patch also removes a virtual function in the process and reduces the binary size by 32 bytes. This is a non-functional change, but I have observed a 4%-6% performance improvement in some of the flexbox tests in Performance/Layout. BUG=331879 R=eseidel, esprehn Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=166076

Patch Set 1 #

Total comments: 2

Patch Set 2 : Make the shouldRelayout* methods const and add comment for the while loop #

Total comments: 2

Patch Set 3 : Changed the naming away from tryLayoutBlockFlow #

Patch Set 4 : Rebase to apply on latest trunk #

Unified diffs Side-by-side diffs Delta from patch set Stats (+103 lines, -104 lines) Patch
M Source/core/rendering/LayoutState.h View 1 1 chunk +1 line, -1 line 0 comments Download
M Source/core/rendering/LayoutState.cpp View 1 1 chunk +1 line, -1 line 0 comments Download
M Source/core/rendering/RenderBlock.h View 1 2 3 1 chunk +0 lines, -3 lines 0 comments Download
M Source/core/rendering/RenderBlock.cpp View 1 2 3 1 chunk +0 lines, -11 lines 0 comments Download
M Source/core/rendering/RenderBlockFlow.h View 1 2 3 2 chunks +4 lines, -2 lines 0 comments Download
M Source/core/rendering/RenderBlockFlow.cpp View 1 2 3 8 chunks +71 lines, -49 lines 0 comments Download
M Source/core/rendering/RenderMultiColumnBlock.h View 1 3 chunks +4 lines, -3 lines 0 comments Download
M Source/core/rendering/RenderMultiColumnBlock.cpp View 1 1 chunk +22 lines, -34 lines 0 comments Download

Messages

Total messages: 15 (0 generated)
atreat
Please have a look
6 years, 11 months ago (2014-01-24 22:13:22 UTC) #1
esprehn
Can you explain what this patch is doing? Why do you call layout repeatedly? "tryLayout" ...
6 years, 11 months ago (2014-01-24 22:19:16 UTC) #2
atreat
On 2014/01/24 22:19:16, esprehn wrote: > Can you explain what this patch is doing? Why ...
6 years, 11 months ago (2014-01-24 22:31:43 UTC) #3
atreat
On 2014/01/24 22:31:43, atreat wrote: > On 2014/01/24 22:19:16, esprehn wrote: Ready for another round ...
6 years, 11 months ago (2014-01-27 19:41:02 UTC) #4
esprehn
https://codereview.chromium.org/147233002/diff/80001/Source/core/rendering/RenderBlockFlow.cpp File Source/core/rendering/RenderBlockFlow.cpp (right): https://codereview.chromium.org/147233002/diff/80001/Source/core/rendering/RenderBlockFlow.cpp#newcode260 Source/core/rendering/RenderBlockFlow.cpp:260: success = tryLayoutBlockFlow(relayoutChildren, pageLogicalHeight, layoutScope); I'm not a fan ...
6 years, 11 months ago (2014-01-27 19:45:51 UTC) #5
atreat
On 2014/01/27 19:45:51, esprehn wrote: > I'd suggest: > > bool done = false; > ...
6 years, 11 months ago (2014-01-27 20:24:06 UTC) #6
atreat
On 2014/01/27 20:24:06, atreat wrote: > On 2014/01/27 19:45:51, esprehn wrote: > > I'd suggest: ...
6 years, 10 months ago (2014-01-28 16:37:14 UTC) #7
esprehn
lgtm, ojan knows flex box and the inner bits of layout better and might have ...
6 years, 10 months ago (2014-01-29 00:39:54 UTC) #8
ojan
On 2014/01/29 00:39:54, esprehn wrote: > lgtm, ojan knows flex box and the inner bits ...
6 years, 10 months ago (2014-01-29 01:58:31 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/adam.treat@samsung.com/147233002/120001
6 years, 10 months ago (2014-01-29 15:29:59 UTC) #10
commit-bot: I haz the power
Failed to apply patch for Source/core/rendering/RenderBlockFlow.cpp: While running patch -p1 --forward --force --no-backup-if-mismatch; patching file ...
6 years, 10 months ago (2014-01-29 15:30:07 UTC) #11
commit-bot: I haz the power
CQ bit was unchecked on CL. Ignoring.
6 years, 10 months ago (2014-01-29 15:31:02 UTC) #12
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/adam.treat@samsung.com/147233002/140001
6 years, 10 months ago (2014-01-29 15:48:32 UTC) #13
commit-bot: I haz the power
Change committed as 166076
6 years, 10 months ago (2014-01-30 02:10:46 UTC) #14
commit-bot: I haz the power
6 years, 10 months ago (2014-01-30 02:11:58 UTC) #15
Message was sent while issue was closed.
CQ bit was unchecked on CL. Ignoring.

Powered by Google App Engine
This is Rietveld 408576698