Summary: | REGRESSION (r166422): All RenderBox objects grew 104 bytes from adding repaint timers. | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Andreas Kling <kling> | ||||||
Component: | Layout and Rendering | Assignee: | Andreas Kling <kling> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | CC: | bdakin, commit-queue, dino, esprehn+autocc, glenn, koivisto, kondapallykalyan | ||||||
Priority: | P2 | Keywords: | InRadar, Performance | ||||||
Version: | 528+ (Nightly build) | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
Attachments: |
|
Description
Andreas Kling
2014-05-17 01:08:11 PDT
Created attachment 231624 [details]
Patch
Comment on attachment 231624 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=231624&action=review > Source/WebCore/rendering/RenderBox.cpp:131 > RenderBox::~RenderBox() > { > - m_repaintTimer.stop(); > + view().unscheduleLazyRepaint(*this); Shouldn't it check the lazy repaint bit? Unscheduling does hash lookup and is expensive. Also we might want to not do this on full tree teardown. > Source/WebCore/rendering/RenderView.cpp:142 > +void RenderView::scheduleLazyRepaint(RenderBox& renderer) > +{ > + renderer.setRenderBoxNeedsLazyRepaint(true); This could bail out if the bit is already set. > Source/WebCore/rendering/RenderView.cpp:150 > +void RenderView::unscheduleLazyRepaint(RenderBox& renderer) > +{ > + renderer.setRenderBoxNeedsLazyRepaint(false); This could either assert or bail out if the bit is not set. Created attachment 231625 [details]
Patch
That went really well. Let's try again!
Comment on attachment 231625 [details] Patch Clearing flags on attachment: 231625 Committed r168993: <http://trac.webkit.org/changeset/168993> All reviewed patches have been landed. Closing bug. |