gecko-dev/layout/painting
Doug Thayer ebc62f01e4 Bug 1489588 - Disallow nsDisplayList copies and implement moves r=mattwoodrow
Summary:
nsDisplayLists are currently a little bit error prone, since the
empty state of an nsDisplayList requires mTop == &mSentinel.
since &mSentinel will change when copied, while mTop won't,
this naturally creates an invalid state. Additionally, copies
don't quite make sense, since there is a requirement in the
destructor that destructed nsDisplayLists are empty - in which
case we would have to empty both the copied and the original
nsDisplayList - something which is unlikely to happen naturally.
Moves however are a natural operation - we just need to implement
the correct move behavior accounting for this mTop == &mSentinel
requirement.

Reviewers: mattwoodrow

Reviewed By: mattwoodrow

Bug #: 1489588

Differential Revision: https://phabricator.services.mozilla.com/D5293

--HG--
extra : rebase_source : e8889903c6cd03a8ec0ff90f189dbdcc79201eb3
extra : histedit_source : 9e0e18702e6e4b4feb5bea0548dc42250905f897
2018-09-11 04:29:38 +03:00
..
crashtests Bug 1477831 - Merge items in FLBDisplayItemIterator r=mattwoodrow 2018-07-24 16:31:04 +02:00
ActiveLayerTracker.cpp Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
ActiveLayerTracker.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
BorderCache.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
BorderConsts.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
DashedCornerFinder.cpp Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
DashedCornerFinder.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
DisplayItemClip.cpp Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
DisplayItemClip.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
DisplayItemClipChain.cpp Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
DisplayItemClipChain.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
DisplayListChecker.cpp Bug 1433850 - layout.display-list.retain.verify.order to also check RDL ordering - r=mattwoodrow 2018-01-29 18:23:14 +11:00
DisplayListChecker.h Bug 1420298 'layout.display-list.retain.verify' to debug retained-dl - r=mattwoodrow 2017-11-20 17:15:08 +11:00
DisplayListClipState.cpp Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
DisplayListClipState.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
DottedCornerFinder.cpp Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
DottedCornerFinder.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
FrameLayerBuilder.cpp Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
FrameLayerBuilder.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
LayerState.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
MaskLayerImageCache.cpp Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
MaskLayerImageCache.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
MatrixStack.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
moz.build Bug 1487190 - Update bugzilla metadata in moz.build files to reflect Layout components reorganization in bug 1484408. r=heycam 2018-09-05 11:16:02 +00:00
nsCSSRendering.cpp Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
nsCSSRendering.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
nsCSSRenderingBorders.cpp Bug 1488555 - Use ImageRendering property to provide proper filtering support for AsyncImage. r=nical 2018-09-07 22:28:41 +02:00
nsCSSRenderingBorders.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
nsCSSRenderingGradients.cpp Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
nsCSSRenderingGradients.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
nsDisplayItemTypes.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
nsDisplayItemTypesList.h Bug 1449634. Handle foreignobject better with blob invalidation. r=mstange 2018-09-06 16:10:51 -04:00
nsDisplayList.cpp Bug 1449634. Handle foreignobject better with blob invalidation. r=mstange 2018-09-06 16:10:51 -04:00
nsDisplayList.h Bug 1489588 - Disallow nsDisplayList copies and implement moves r=mattwoodrow 2018-09-11 04:29:38 +03:00
nsDisplayListInvalidation.cpp Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
nsDisplayListInvalidation.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
nsImageRenderer.cpp Bug 1486377. Avoid repeat sampling when not wanted. r=mstange 2018-09-07 18:12:21 -04:00
nsImageRenderer.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
PaintTracker.cpp Bug 1412346 part 5: (automated patch) Switch a bunch of C++ files in layout to use our standard mode lines. r=jfkthame 2017-10-27 10:33:53 -07:00
PaintTracker.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
RetainedDisplayListBuilder.cpp Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
RetainedDisplayListBuilder.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
RetainedDisplayListHelpers.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00
TransformClipNode.h Bug 1484966 - Part 3: Clang format layout/painting/ r=mattwoodrow 2018-09-04 20:46:21 +00:00