From c7595046d1c58f227a98d32fac4aecdca55d6790 Mon Sep 17 00:00:00 2001 From: Matt Woodrow Date: Wed, 29 Aug 2012 17:48:15 +1200 Subject: [PATCH] Bug 539356 - Part 12 - Remove unnecessary LayerManagerLayerBuilder indirection. r=roc --- gfx/layers/Layers.h | 17 +---------------- layout/base/FrameLayerBuilder.cpp | 10 +--------- layout/base/FrameLayerBuilder.h | 2 +- 3 files changed, 3 insertions(+), 26 deletions(-) diff --git a/gfx/layers/Layers.h b/gfx/layers/Layers.h index 40e61e547523..a01086f959ed 100644 --- a/gfx/layers/Layers.h +++ b/gfx/layers/Layers.h @@ -87,20 +87,6 @@ public: virtual ~LayerUserData() {} }; -class LayerManagerLayerBuilder : public LayerUserData { -public: - LayerManagerLayerBuilder(FrameLayerBuilder* aBuilder, bool aDelete = true) - : mLayerBuilder(aBuilder) - , mDelete(aDelete) - { - MOZ_COUNT_CTOR(LayerManagerLayerBuilder); - } - ~LayerManagerLayerBuilder(); - - FrameLayerBuilder* mLayerBuilder; - bool mDelete; -}; - /* * Motivation: For truly smooth animation and video playback, we need to * be able to compose frames and render them on a dedicated thread (i.e. @@ -213,8 +199,7 @@ public: }; FrameLayerBuilder* GetLayerBuilder() { - LayerManagerLayerBuilder *data = static_cast(GetUserData(&gLayerManagerLayerBuilder)); - return data ? data->mLayerBuilder : nullptr; + return reinterpret_cast(GetUserData(&gLayerManagerLayerBuilder)); } /** diff --git a/layout/base/FrameLayerBuilder.cpp b/layout/base/FrameLayerBuilder.cpp index a45ffe3e0254..26cf2b95c0fb 100644 --- a/layout/base/FrameLayerBuilder.cpp +++ b/layout/base/FrameLayerBuilder.cpp @@ -644,7 +644,7 @@ FrameLayerBuilder::Init(nsDisplayListBuilder* aBuilder, LayerManager* aManager) if (mRootPresContext) { mInitialDOMGeneration = mRootPresContext->GetDOMGeneration(); } - aManager->SetUserData(&gLayerManagerLayerBuilder, new LayerManagerLayerBuilder(this)); + aManager->SetUserData(&gLayerManagerLayerBuilder, this); } bool @@ -930,14 +930,6 @@ FrameLayerBuilder::RemoveDisplayItemDataForFrame(DisplayItemDataEntry* aEntry, return PL_DHASH_REMOVE; } -LayerManagerLayerBuilder::~LayerManagerLayerBuilder() -{ - MOZ_COUNT_DTOR(LayerManagerLayerBuilder); - if (mDelete) { - delete mLayerBuilder; - } -} - /* static */ PLDHashOperator FrameLayerBuilder::StoreNewDisplayItemData(DisplayItemDataEntry* aEntry, void* aUserArg) diff --git a/layout/base/FrameLayerBuilder.h b/layout/base/FrameLayerBuilder.h index 25657c841fda..75c7013526d7 100644 --- a/layout/base/FrameLayerBuilder.h +++ b/layout/base/FrameLayerBuilder.h @@ -90,7 +90,7 @@ public: * integer types (nsIntPoint/nsIntSize/nsIntRect/nsIntRegion) are all in layer * coordinates, post-scaling, whereas appunit types are all pre-scaling. */ -class FrameLayerBuilder { +class FrameLayerBuilder : public layers::LayerUserData { public: typedef layers::ContainerLayer ContainerLayer; typedef layers::Layer Layer;