Backed out changeset c80e36def0ad (bug 1128356) for bustage on a CLOSED TREE

This commit is contained in:
Carsten "Tomcat" Book 2015-02-03 09:58:14 +01:00
parent 004d7ca961
commit 27820101e9
19 changed files with 184 additions and 70 deletions

View File

@ -107,8 +107,13 @@ LayerActivity::~LayerActivity()
}
}
static void DestroyLayerActivity(void* aPropertyValue)
{
delete static_cast<LayerActivity*>(aPropertyValue);
}
// Frames with this property have NS_FRAME_HAS_LAYER_ACTIVITY_PROPERTY set
NS_DECLARE_FRAME_PROPERTY(LayerActivityProperty, DeleteValue<LayerActivity>)
NS_DECLARE_FRAME_PROPERTY(LayerActivityProperty, DestroyLayerActivity)
void
LayerActivityTracker::NotifyExpired(LayerActivity* aObject)

View File

@ -707,10 +707,13 @@ public:
DisplayItemClip mContainingBlockClip;
nsRect mDirtyRect;
};
static void DestroyOutOfFlowDisplayData(void* aPropertyValue)
{
delete static_cast<OutOfFlowDisplayData*>(aPropertyValue);
}
NS_DECLARE_FRAME_PROPERTY(OutOfFlowDisplayDataProperty,
DeleteValue<OutOfFlowDisplayData>)
NS_DECLARE_FRAME_PROPERTY(Preserve3DDirtyRectProperty, DeleteValue<nsRect>)
NS_DECLARE_FRAME_PROPERTY(OutOfFlowDisplayDataProperty, DestroyOutOfFlowDisplayData)
NS_DECLARE_FRAME_PROPERTY(Preserve3DDirtyRectProperty, nsIFrame::DestroyRect)
nsPresContext* CurrentPresContext() {
return CurrentPresShellState()->mPresShell->GetPresContext();

View File

@ -32,7 +32,7 @@ class nsTextControlFrame MOZ_FINAL : public nsContainerFrame,
public:
NS_DECL_FRAMEARENA_HELPERS
NS_DECLARE_FRAME_PROPERTY(ContentScrollPos, DeleteValue<nsPoint>)
NS_DECLARE_FRAME_PROPERTY(ContentScrollPos, DestroyPoint)
explicit nsTextControlFrame(nsStyleContext* aContext);
virtual ~nsTextControlFrame();

View File

@ -17,8 +17,13 @@
namespace mozilla {
void DestroyStickyScrollContainer(void* aPropertyValue)
{
delete static_cast<StickyScrollContainer*>(aPropertyValue);
}
NS_DECLARE_FRAME_PROPERTY(StickyScrollContainerProperty,
DeleteValue<StickyScrollContainer>)
DestroyStickyScrollContainer)
StickyScrollContainer::StickyScrollContainer(nsIScrollableFrame* aScrollFrame)
: mScrollFrame(aScrollFrame)

View File

@ -99,7 +99,7 @@ private:
void ComputeStickyLimits(nsIFrame* aFrame, nsRect* aStick,
nsRect* aContain) const;
friend void DeleteValue<StickyScrollContainer>(void* aPropertyValue);
friend void DestroyStickyScrollContainer(void* aPropertyValue);
nsIScrollableFrame* const mScrollFrame;
nsTArray<nsIFrame*> mFrames;

View File

@ -307,7 +307,7 @@ nsFloatManager::CalculateRegionFor(WritingMode aWM,
return region;
}
NS_DECLARE_FRAME_PROPERTY(FloatRegionProperty, DeleteValue<nsMargin>)
NS_DECLARE_FRAME_PROPERTY(FloatRegionProperty, nsIFrame::DestroyMargin)
LogicalRect
nsFloatManager::GetRegionFor(WritingMode aWM, nsIFrame* aFloat,

View File

@ -16,8 +16,13 @@
using namespace mozilla;
using namespace mozilla::layout;
NS_DECLARE_FRAME_PROPERTY(FontInflationDataProperty,
DeleteValue<nsFontInflationData>)
static void
DestroyFontInflationData(void *aPropertyValue)
{
delete static_cast<nsFontInflationData*>(aPropertyValue);
}
NS_DECLARE_FRAME_PROPERTY(FontInflationDataProperty, DestroyFontInflationData)
/* static */ nsFontInflationData*
nsFontInflationData::FindFontInflationDataFor(const nsIFrame *aFrame)

View File

@ -152,7 +152,13 @@ static void RefreshContentFrames(nsPresContext* aPresContext, nsIContent * aStar
#include "prenv.h"
NS_DECLARE_FRAME_PROPERTY(BoxMetricsProperty, DeleteValue<nsBoxLayoutMetrics>)
static void
DestroyBoxMetrics(void* aPropertyValue)
{
delete static_cast<nsBoxLayoutMetrics*>(aPropertyValue);
}
NS_DECLARE_FRAME_PROPERTY(BoxMetricsProperty, DestroyBoxMetrics)
static void
InitBoxMetrics(nsIFrame* aFrame, bool aClear)
@ -244,8 +250,13 @@ nsFrame::GetLogModuleInfo()
#endif
NS_DECLARE_FRAME_PROPERTY(AbsoluteContainingBlockProperty,
DeleteValue<nsAbsoluteContainingBlock>)
static void
DestroyAbsoluteContainingBlock(void* aPropertyValue)
{
delete static_cast<nsAbsoluteContainingBlock*>(aPropertyValue);
}
NS_DECLARE_FRAME_PROPERTY(AbsoluteContainingBlockProperty, DestroyAbsoluteContainingBlock)
bool
nsIFrame::HasAbsolutelyPositionedChildren() const {
@ -7111,7 +7122,8 @@ nsFrame::AccessibleType()
}
#endif
NS_DECLARE_FRAME_PROPERTY(OverflowAreasProperty, DeleteValue<nsOverflowAreas>)
NS_DECLARE_FRAME_PROPERTY(OverflowAreasProperty,
nsIFrame::DestroyOverflowAreas)
bool
nsIFrame::ClearOverflowRects()
@ -8760,6 +8772,24 @@ nsIFrame::IsSelected() const
IsFrameSelected() : false;
}
void
nsIFrame::DestroySurface(void* aPropertyValue)
{
static_cast<gfxASurface*>(aPropertyValue)->Release();
}
void
nsIFrame::DestroyDT(void* aPropertyValue)
{
static_cast<mozilla::gfx::DrawTarget*>(aPropertyValue)->Release();
}
void
nsIFrame::DestroyRegion(void* aPropertyValue)
{
delete static_cast<nsRegion*>(aPropertyValue);
}
/*static*/ void
nsIFrame::DestroyContentArray(void* aPropertyValue)
{

View File

@ -64,6 +64,12 @@ NS_NewGridContainerFrame(nsIPresShell* aPresShell,
// nsGridContainerFrame Method Implementations
// ===========================================
/* static */ void
nsGridContainerFrame::DestroyImplicitNamedAreas(void* aPropertyValue)
{
delete static_cast<ImplicitNamedAreas*>(aPropertyValue);
}
void
nsGridContainerFrame::AddImplicitNamedAreas(
const nsTArray<nsTArray<nsString>>& aLineNameLists)

View File

@ -49,14 +49,14 @@ protected:
* grid-template-columns / grid-template-rows are stored in this frame
* property when needed, as a ImplicitNamedAreas* value.
*/
NS_DECLARE_FRAME_PROPERTY(ImplicitNamedAreasProperty,
DeleteValue<ImplicitNamedAreas>)
NS_DECLARE_FRAME_PROPERTY(ImplicitNamedAreasProperty, DestroyImplicitNamedAreas)
void InitImplicitNamedAreas(const nsStylePosition* aStyle);
void AddImplicitNamedAreas(const nsTArray<nsTArray<nsString>>& aLineNameLists);
typedef nsTHashtable<nsStringHashKey> ImplicitNamedAreas;
ImplicitNamedAreas* GetImplicitNamedAreas() const {
return static_cast<ImplicitNamedAreas*>(Properties().Get(ImplicitNamedAreasProperty()));
}
static void DestroyImplicitNamedAreas(void* aPropertyValue);
#ifdef DEBUG
void SanityCheckAnonymousGridItems() const;

View File

@ -367,20 +367,6 @@ struct IntrinsicSize {
};
}
/// Generic destructor for frame properties. Calls delete.
template<typename T>
static void DeleteValue(void* aPropertyValue)
{
delete static_cast<T*>(aPropertyValue);
}
/// Generic destructor for frame properties. Calls Release().
template<typename T>
static void ReleaseValue(void* aPropertyValue)
{
static_cast<T*>(aPropertyValue)->Release();
}
//----------------------------------------------------------------------
/**
@ -797,6 +783,30 @@ public:
nsPoint GetPositionIgnoringScrolling();
static void DestroyRegion(void* aPropertyValue);
static void DestroyMargin(void* aPropertyValue)
{
delete static_cast<nsMargin*>(aPropertyValue);
}
static void DestroyRect(void* aPropertyValue)
{
delete static_cast<nsRect*>(aPropertyValue);
}
static void DestroyPoint(void* aPropertyValue)
{
delete static_cast<nsPoint*>(aPropertyValue);
}
static void DestroyOverflowAreas(void* aPropertyValue)
{
delete static_cast<nsOverflowAreas*>(aPropertyValue);
}
static void DestroySurface(void* aPropertyValue);
static void DestroyDT(void* aPropertyValue);
static void DestroyContentArray(void* aPropertyValue);
#ifdef _MSC_VER
@ -822,19 +832,18 @@ public:
NS_DECLARE_FRAME_PROPERTY(IBSplitSibling, nullptr)
NS_DECLARE_FRAME_PROPERTY(IBSplitPrevSibling, nullptr)
NS_DECLARE_FRAME_PROPERTY(NormalPositionProperty, DeleteValue<nsPoint>)
NS_DECLARE_FRAME_PROPERTY(ComputedOffsetProperty, DeleteValue<nsMargin>)
NS_DECLARE_FRAME_PROPERTY(NormalPositionProperty, DestroyPoint)
NS_DECLARE_FRAME_PROPERTY(ComputedOffsetProperty, DestroyMargin)
NS_DECLARE_FRAME_PROPERTY(OutlineInnerRectProperty, DeleteValue<nsRect>)
NS_DECLARE_FRAME_PROPERTY(PreEffectsBBoxProperty, DeleteValue<nsRect>)
NS_DECLARE_FRAME_PROPERTY(OutlineInnerRectProperty, DestroyRect)
NS_DECLARE_FRAME_PROPERTY(PreEffectsBBoxProperty, DestroyRect)
NS_DECLARE_FRAME_PROPERTY(PreTransformOverflowAreasProperty,
DeleteValue<nsOverflowAreas>)
DestroyOverflowAreas)
// The initial overflow area passed to FinishAndStoreOverflow. This is only set
// on frames that Preserve3D() or HasPerspective() or IsTransformed(), and
// when at least one of the overflow areas differs from the frame bound rect.
NS_DECLARE_FRAME_PROPERTY(InitialOverflowProperty,
DeleteValue<nsOverflowAreas>)
NS_DECLARE_FRAME_PROPERTY(InitialOverflowProperty, DestroyOverflowAreas)
#ifdef DEBUG
// InitialOverflowPropertyDebug is added to the frame to indicate that either
@ -843,19 +852,18 @@ public:
NS_DECLARE_FRAME_PROPERTY(DebugInitialOverflowPropertyApplied, nullptr)
#endif
NS_DECLARE_FRAME_PROPERTY(UsedMarginProperty, DeleteValue<nsMargin>)
NS_DECLARE_FRAME_PROPERTY(UsedPaddingProperty, DeleteValue<nsMargin>)
NS_DECLARE_FRAME_PROPERTY(UsedBorderProperty, DeleteValue<nsMargin>)
NS_DECLARE_FRAME_PROPERTY(UsedMarginProperty, DestroyMargin)
NS_DECLARE_FRAME_PROPERTY(UsedPaddingProperty, DestroyMargin)
NS_DECLARE_FRAME_PROPERTY(UsedBorderProperty, DestroyMargin)
NS_DECLARE_FRAME_PROPERTY(ScrollLayerCount, nullptr)
NS_DECLARE_FRAME_PROPERTY(LineBaselineOffset, nullptr)
NS_DECLARE_FRAME_PROPERTY(CachedBackgroundImage, ReleaseValue<gfxASurface>)
NS_DECLARE_FRAME_PROPERTY(CachedBackgroundImageDT,
ReleaseValue<mozilla::gfx::DrawTarget>)
NS_DECLARE_FRAME_PROPERTY(CachedBackgroundImage, DestroySurface)
NS_DECLARE_FRAME_PROPERTY(CachedBackgroundImageDT, DestroyDT)
NS_DECLARE_FRAME_PROPERTY(InvalidationRect, DeleteValue<nsRect>)
NS_DECLARE_FRAME_PROPERTY(InvalidationRect, DestroyRect)
NS_DECLARE_FRAME_PROPERTY(RefusedAsyncAnimation, nullptr)

View File

@ -181,7 +181,12 @@ TabWidthStore::ApplySpacing(gfxTextRun::PropertyProvider::Spacing *aSpacing,
}
}
NS_DECLARE_FRAME_PROPERTY(TabWidthProperty, DeleteValue<TabWidthStore>)
static void DestroyTabWidth(void* aPropertyValue)
{
delete static_cast<TabWidthStore*>(aPropertyValue);
}
NS_DECLARE_FRAME_PROPERTY(TabWidthProperty, DestroyTabWidth)
NS_DECLARE_FRAME_PROPERTY(OffsetToFrameProperty, nullptr)
@ -199,14 +204,18 @@ private:
nsTextFrame* mFrame;
};
static void DestroyGlyphObserverList(void* aPropertyValue)
{
delete static_cast<nsTArray<nsAutoPtr<GlyphObserver> >*>(aPropertyValue);
}
/**
* This property is set on text frames with TEXT_IN_TEXTRUN_USER_DATA set that
* have potentially-animated glyphs.
* The only reason this list is in a property is to automatically destroy the
* list when the frame is deleted, unregistering the observers.
*/
NS_DECLARE_FRAME_PROPERTY(TextFrameGlyphObservers,
DeleteValue<nsTArray<nsAutoPtr<GlyphObserver>>>);
NS_DECLARE_FRAME_PROPERTY(TextFrameGlyphObservers, DestroyGlyphObserverList);
static const nsFrameState TEXT_REFLOW_FLAGS =
TEXT_FIRST_LETTER |

View File

@ -129,8 +129,13 @@ IsForeignChild(const nsIFrame* aFrame)
aFrame->GetType() == nsGkAtoms::blockFrame;
}
NS_DECLARE_FRAME_PROPERTY(HTMLReflowMetricsProperty,
DeleteValue<nsHTMLReflowMetrics>)
static void
DestroyHTMLReflowMetrics(void *aPropertyValue)
{
delete static_cast<nsHTMLReflowMetrics*>(aPropertyValue);
}
NS_DECLARE_FRAME_PROPERTY(HTMLReflowMetricsProperty, DestroyHTMLReflowMetrics)
/* static */ void
nsMathMLContainerFrame::SaveReflowAndBoundingMetricsFor(nsIFrame* aFrame,

View File

@ -130,10 +130,16 @@ static nsresult ReportParseError(nsIFrame* aFrame, const char16_t* aAttribute,
// stored in the property table. Row/Cell frames query the property table
// to see what values apply to them.
NS_DECLARE_FRAME_PROPERTY(RowAlignProperty, DeleteValue<nsTArray<int8_t>>)
NS_DECLARE_FRAME_PROPERTY(RowLinesProperty, DeleteValue<nsTArray<int8_t>>)
NS_DECLARE_FRAME_PROPERTY(ColumnAlignProperty, DeleteValue<nsTArray<int8_t>>)
NS_DECLARE_FRAME_PROPERTY(ColumnLinesProperty, DeleteValue<nsTArray<int8_t>>)
static void
DestroyStylePropertyList(void* aPropertyValue)
{
delete static_cast<nsTArray<int8_t>*>(aPropertyValue);
}
NS_DECLARE_FRAME_PROPERTY(RowAlignProperty, DestroyStylePropertyList)
NS_DECLARE_FRAME_PROPERTY(RowLinesProperty, DestroyStylePropertyList)
NS_DECLARE_FRAME_PROPERTY(ColumnAlignProperty, DestroyStylePropertyList)
NS_DECLARE_FRAME_PROPERTY(ColumnLinesProperty, DestroyStylePropertyList)
static const FramePropertyDescriptor*
AttributeToProperty(nsIAtom* aAttribute)

View File

@ -1286,8 +1286,12 @@ struct TextNodeCorrespondence
uint32_t mUndisplayedCharacters;
};
NS_DECLARE_FRAME_PROPERTY(TextNodeCorrespondenceProperty,
DeleteValue<TextNodeCorrespondence>)
static void DestroyTextNodeCorrespondence(void* aPropertyValue)
{
delete static_cast<TextNodeCorrespondence*>(aPropertyValue);
}
NS_DECLARE_FRAME_PROPERTY(TextNodeCorrespondenceProperty, DestroyTextNodeCorrespondence)
/**
* Returns the number of undisplayed characters before the specified

View File

@ -390,6 +390,11 @@ public:
typedef nsInterfaceHashtable<nsURIHashKey, nsIMutationObserver>
URIObserverHashtable;
static void DestroySupports(void* aPropertyValue)
{
(static_cast<nsISupports*>(aPropertyValue))->Release();
}
static void DestroyFilterProperty(void* aPropertyValue)
{
auto* prop = static_cast<nsSVGFilterProperty*>(aPropertyValue);
@ -402,17 +407,21 @@ public:
prop->Release();
}
static void DestroyHashtable(void* aPropertyValue)
{
delete static_cast<URIObserverHashtable*> (aPropertyValue);
}
NS_DECLARE_FRAME_PROPERTY(FilterProperty, DestroyFilterProperty)
NS_DECLARE_FRAME_PROPERTY(MaskProperty, ReleaseValue<nsISupports>)
NS_DECLARE_FRAME_PROPERTY(ClipPathProperty, ReleaseValue<nsISupports>)
NS_DECLARE_FRAME_PROPERTY(MarkerBeginProperty, ReleaseValue<nsISupports>)
NS_DECLARE_FRAME_PROPERTY(MarkerMiddleProperty, ReleaseValue<nsISupports>)
NS_DECLARE_FRAME_PROPERTY(MarkerEndProperty, ReleaseValue<nsISupports>)
NS_DECLARE_FRAME_PROPERTY(FillProperty, ReleaseValue<nsISupports>)
NS_DECLARE_FRAME_PROPERTY(StrokeProperty, ReleaseValue<nsISupports>)
NS_DECLARE_FRAME_PROPERTY(HrefProperty, ReleaseValue<nsISupports>)
NS_DECLARE_FRAME_PROPERTY(BackgroundImageProperty,
DeleteValue<URIObserverHashtable>)
NS_DECLARE_FRAME_PROPERTY(MaskProperty, DestroySupports)
NS_DECLARE_FRAME_PROPERTY(ClipPathProperty, DestroySupports)
NS_DECLARE_FRAME_PROPERTY(MarkerBeginProperty, DestroySupports)
NS_DECLARE_FRAME_PROPERTY(MarkerMiddleProperty, DestroySupports)
NS_DECLARE_FRAME_PROPERTY(MarkerEndProperty, DestroySupports)
NS_DECLARE_FRAME_PROPERTY(FillProperty, DestroySupports)
NS_DECLARE_FRAME_PROPERTY(StrokeProperty, DestroySupports)
NS_DECLARE_FRAME_PROPERTY(HrefProperty, DestroySupports)
NS_DECLARE_FRAME_PROPERTY(BackgroundImageProperty, DestroyHashtable)
/**
* Get the paint server for a aTargetFrame.

View File

@ -260,6 +260,13 @@ nsTableFrame::PageBreakAfter(nsIFrame* aSourceFrame,
typedef nsTArray<nsIFrame*> FrameTArray;
/* static */ void
nsTableFrame::DestroyPositionedTablePartArray(void* aPropertyValue)
{
auto positionedObjs = static_cast<FrameTArray*>(aPropertyValue);
delete positionedObjs;
}
/* static */ void
nsTableFrame::RegisterPositionedTablePart(nsIFrame* aFrame)
{
@ -2542,7 +2549,14 @@ nsTableFrame::GetUsedMargin() const
return nsMargin(0, 0, 0, 0);
}
NS_DECLARE_FRAME_PROPERTY(TableBCProperty, DeleteValue<BCPropertyData>)
// Destructor function for BCPropertyData properties
static void
DestroyBCProperty(void* aPropertyValue)
{
delete static_cast<BCPropertyData*>(aPropertyValue);
}
NS_DECLARE_FRAME_PROPERTY(TableBCProperty, DestroyBCProperty)
BCPropertyData*
nsTableFrame::GetBCProperty(bool aCreateIfNecessary) const

View File

@ -109,8 +109,8 @@ class nsTableFrame : public nsContainerFrame
public:
NS_DECL_FRAMEARENA_HELPERS
NS_DECLARE_FRAME_PROPERTY(PositionedTablePartArray,
DeleteValue<nsTArray<nsIFrame*>>)
static void DestroyPositionedTablePartArray(void* aPropertyValue);
NS_DECLARE_FRAME_PROPERTY(PositionedTablePartArray, DestroyPositionedTablePartArray)
/** nsTableOuterFrame has intimate knowledge of the inner table frame */
friend class nsTableOuterFrame;

View File

@ -1832,8 +1832,13 @@ nsTableRowGroupFrame::GetNextSiblingOnLine(nsIFrame*& aFrame,
//end nsLineIterator methods
NS_DECLARE_FRAME_PROPERTY(RowCursorProperty,
DeleteValue<nsTableRowGroupFrame::FrameCursorData>)
static void
DestroyFrameCursorData(void* aPropertyValue)
{
delete static_cast<nsTableRowGroupFrame::FrameCursorData*>(aPropertyValue);
}
NS_DECLARE_FRAME_PROPERTY(RowCursorProperty, DestroyFrameCursorData)
void
nsTableRowGroupFrame::ClearRowCursor()