author | Robert O'Callahan <robert@ocallahan.org> |
Mon, 21 Oct 2013 15:47:26 -0700 | |
changeset 151567 | 683b5927e3feb6d8f66bd9657c7deb944f752c19 |
parent 151566 | ad69ff83ed544314bc074d567419ca6786411a32 |
child 151568 | d1e82adf4a645e64cf12e4161fab3eb908faf678 |
push id | 25502 |
push user | kwierso@gmail.com |
push date | Tue, 22 Oct 2013 22:00:08 +0000 |
treeherder | mozilla-central@a7c3da1f3af7 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | tn |
bugs | 903340 |
milestone | 27.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
layout/base/nsDisplayList.cpp | file | annotate | diff | comparison | revisions | |
layout/base/nsDisplayList.h | file | annotate | diff | comparison | revisions |
--- a/layout/base/nsDisplayList.cpp +++ b/layout/base/nsDisplayList.cpp @@ -3662,43 +3662,33 @@ nsDisplayScrollLayer::GetScrollLayerCoun // that it is processed last. NS_ABORT_IF_FALSE(hasCount, "nsDisplayScrollLayer should always be defined"); return result; #else return reinterpret_cast<intptr_t>(props.Get(nsIFrame::ScrollLayerCount())); #endif } -intptr_t -nsDisplayScrollLayer::RemoveScrollLayerCount() -{ - intptr_t result = GetScrollLayerCount(); - FrameProperties props = mScrolledFrame->Properties(); - props.Remove(nsIFrame::ScrollLayerCount()); - return result; -} - - nsDisplayScrollInfoLayer::nsDisplayScrollInfoLayer( nsDisplayListBuilder* aBuilder, nsIFrame* aScrolledFrame, nsIFrame* aScrollFrame) : nsDisplayScrollLayer(aBuilder, aScrollFrame, aScrolledFrame, aScrollFrame) { #ifdef NS_BUILD_REFCNT_LOGGING MOZ_COUNT_CTOR(nsDisplayScrollInfoLayer); #endif } -#ifdef NS_BUILD_REFCNT_LOGGING nsDisplayScrollInfoLayer::~nsDisplayScrollInfoLayer() { + FrameProperties props = mScrolledFrame->Properties(); + props.Remove(nsIFrame::ScrollLayerCount()); MOZ_COUNT_DTOR(nsDisplayScrollInfoLayer); } -#endif LayerState nsDisplayScrollInfoLayer::GetLayerState(nsDisplayListBuilder* aBuilder, LayerManager* aManager, const ContainerParameters& aParameters) { return LAYER_ACTIVE_EMPTY; } @@ -3712,17 +3702,17 @@ nsDisplayScrollInfoLayer::TryMerge(nsDis bool nsDisplayScrollInfoLayer::ShouldFlattenAway(nsDisplayListBuilder* aBuilder) { // Layer metadata for a particular scroll frame needs to be unique. Only // one nsDisplayScrollLayer (with rendered content) or one // nsDisplayScrollInfoLayer (with only the metadata) should survive the // visibility computation. - return RemoveScrollLayerCount() == 1; + return GetScrollLayerCount() == 1; } nsDisplayZoom::nsDisplayZoom(nsDisplayListBuilder* aBuilder, nsIFrame* aFrame, nsDisplayList* aList, int32_t aAPD, int32_t aParentAPD, uint32_t aFlags) : nsDisplayOwnLayer(aBuilder, aFrame, aList, aFlags) , mAPD(aAPD), mParentAPD(aParentAPD) {
--- a/layout/base/nsDisplayList.h +++ b/layout/base/nsDisplayList.h @@ -2723,21 +2723,20 @@ public: nsDisplayItem* aItem) MOZ_OVERRIDE; virtual bool ShouldFlattenAway(nsDisplayListBuilder* aBuilder) MOZ_OVERRIDE; // Get the number of nsDisplayScrollLayers for a scroll frame. Note that this // number does not include nsDisplayScrollInfoLayers. If this number is not 1 // after merging, all the nsDisplayScrollLayers should flatten away. intptr_t GetScrollLayerCount(); - intptr_t RemoveScrollLayerCount(); virtual nsIFrame* GetScrolledFrame() { return mScrolledFrame; } -private: +protected: nsIFrame* mScrollFrame; nsIFrame* mScrolledFrame; }; /** * Like nsDisplayScrollLayer, but only has metadata on the scroll frame. This * creates a layer that has no Thebes child layer, but still allows the * compositor process to know of the scroll frame's existence. @@ -2750,19 +2749,17 @@ private: */ class nsDisplayScrollInfoLayer : public nsDisplayScrollLayer { public: nsDisplayScrollInfoLayer(nsDisplayListBuilder* aBuilder, nsIFrame* aScrolledFrame, nsIFrame* aScrollFrame); NS_DISPLAY_DECL_NAME("ScrollInfoLayer", TYPE_SCROLL_INFO_LAYER) -#ifdef NS_BUILD_REFCNT_LOGGING virtual ~nsDisplayScrollInfoLayer(); -#endif virtual LayerState GetLayerState(nsDisplayListBuilder* aBuilder, LayerManager* aManager, const ContainerParameters& aParameters) MOZ_OVERRIDE; virtual bool ShouldBuildLayerEvenIfInvisible(nsDisplayListBuilder* aBuilder) MOZ_OVERRIDE { return true; } virtual bool TryMerge(nsDisplayListBuilder* aBuilder, nsDisplayItem* aItem) MOZ_OVERRIDE;