Bug 758992 - Make the classes which use the XPCOM nsISupports implementation macros final, to avoid the warning about deleting using a pointer to a base class with virtual functions and no virtual dtor (layout parts); r=roc

--HG--
extra : rebase_source : 9f3da1b47dcb9d7cc950488b9b70aa682b6984de
This commit is contained in:
Ehsan Akhgari 2012-06-18 23:26:34 -04:00
parent aef7f91aa1
commit 217735f725
24 changed files with 64 additions and 37 deletions

View File

@ -15,6 +15,7 @@
#include "gfxPlatform.h"
#include "gfxFontTest.h"
#include "mozilla/Attributes.h"
#if defined(XP_MACOSX)
#include "gfxTestCocoaHelper.h"
@ -31,7 +32,7 @@ static FrameTextRunCache *gTextRuns = nsnull;
/*
* Cache textruns and expire them after 3*10 seconds of no use.
*/
class FrameTextRunCache : public nsExpirationTracker<gfxTextRun,3> {
class FrameTextRunCache MOZ_FINAL : public nsExpirationTracker<gfxTextRun,3> {
public:
enum { TIMEOUT_SECONDS = 10 };
FrameTextRunCache()

View File

@ -17,6 +17,8 @@ public:
NS_DECL_ISUPPORTS
virtual ~nsFrameIterator() {}
virtual void First();
virtual void Next();
virtual nsIFrame* CurrentItem();

View File

@ -12,9 +12,10 @@
#include "nsWeakReference.h"
#include "nsClassHashtable.h"
#include "nsPresState.h"
#include "mozilla/Attributes.h"
class nsLayoutHistoryState : public nsILayoutHistoryState,
public nsSupportsWeakReference
class nsLayoutHistoryState MOZ_FINAL : public nsILayoutHistoryState,
public nsSupportsWeakReference
{
public:
NS_HIDDEN_(nsresult) Init();

View File

@ -35,6 +35,7 @@
#include "nsGUIEvent.h"
#include "nsContentUtils.h"
#include "nsRefreshDriver.h"
#include "mozilla/Attributes.h"
class nsRange;
class nsIDragService;
@ -596,7 +597,7 @@ protected:
// Check if aEvent is a mouse event and record the mouse location for later
// synth mouse moves.
void RecordMouseLocation(nsGUIEvent* aEvent);
class nsSynthMouseMoveEvent : public nsARefreshObserver {
class nsSynthMouseMoveEvent MOZ_FINAL : public nsARefreshObserver {
public:
nsSynthMouseMoveEvent(PresShell* aPresShell, bool aFromScroll)
: mPresShell(aPresShell), mFromScroll(aFromScroll) {

View File

@ -20,6 +20,7 @@
#include "nsAutoPtr.h"
#include "nsTHashtable.h"
#include "nsHashKeys.h"
#include "mozilla/Attributes.h"
class nsPresContext;
class nsIPresShell;
@ -45,7 +46,7 @@ public:
virtual void WillRefresh(mozilla::TimeStamp aTime) = 0;
};
class nsRefreshDriver : public nsITimerCallback {
class nsRefreshDriver MOZ_FINAL : public nsITimerCallback {
public:
nsRefreshDriver(nsPresContext *aPresContext);
~nsRefreshDriver();

View File

@ -11,6 +11,7 @@
#include "nsIStyleSheetService.h"
#include "nsCOMArray.h"
#include "nsIStyleSheet.h"
#include "mozilla/Attributes.h"
class nsISimpleEnumerator;
class nsICategoryManager;
@ -21,7 +22,7 @@ class nsICategoryManager;
#define NS_STYLESHEETSERVICE_CONTRACTID \
"@mozilla.org/content/style-sheet-service;1"
class nsStyleSheetService : public nsIStyleSheetService
class nsStyleSheetService MOZ_FINAL : public nsIStyleSheetService
{
public:
nsStyleSheetService() NS_HIDDEN;

View File

@ -52,6 +52,7 @@
#include "ThirdPartyUtil.h"
#include "mozilla/Services.h"
#include "nsStructuredCloneContainer.h"
#include "mozilla/Attributes.h"
#include "nsIEventListenerService.h"
#include "nsIFrameMessageManager.h"
@ -281,7 +282,7 @@ NS_GENERIC_FACTORY_CONSTRUCTOR(SmsRequestManager)
// references to objects in other component libraries that have already been
// shutdown (and possibly unloaded if 60709 is ever fixed).
class LayoutShutdownObserver : public nsIObserver
class LayoutShutdownObserver MOZ_FINAL : public nsIObserver
{
public:
NS_DECL_ISUPPORTS

View File

@ -12,7 +12,6 @@
#include "nsIAnonymousContentCreator.h"
#include "nsICapturePicker.h"
#include "nsCOMPtr.h"
#include "mozilla/Attributes.h"
class nsTextControlFrame;
class nsIDOMDragEvent;
@ -78,13 +77,14 @@ protected:
class MouseListener;
friend class MouseListener;
class MouseListener MOZ_FINAL : public nsIDOMEventListener {
class MouseListener : public nsIDOMEventListener {
public:
NS_DECL_ISUPPORTS
MouseListener(nsFileControlFrame* aFrame)
: mFrame(aFrame)
{}
virtual ~MouseListener() {}
void ForgetFrame() {
mFrame = nsnull;

View File

@ -48,6 +48,7 @@
#include "nsDisplayList.h"
#include "nsContentUtils.h"
#include "mozilla/LookAndFeel.h"
#include "mozilla/Attributes.h"
using namespace mozilla;
@ -74,7 +75,7 @@ DOMTimeStamp nsListControlFrame::gLastKeyTime = 0;
* Frames are not refcounted so they can't be used as event listeners.
*****************************************************************************/
class nsListEventListener : public nsIDOMEventListener
class nsListEventListener MOZ_FINAL : public nsIDOMEventListener
{
public:
nsListEventListener(nsListControlFrame *aFrame)

View File

@ -8,8 +8,9 @@
#include "nsISelectionListener.h"
#include "nsISelectionPrivate.h"
#include "mozilla/Attributes.h"
class nsAutoCopyListener : public nsISelectionListener
class nsAutoCopyListener MOZ_FINAL : public nsISelectionListener
{
public:
NS_DECL_ISUPPORTS

View File

@ -51,6 +51,7 @@
#include "nsSMILKeySpline.h"
#include "nsSubDocumentFrame.h"
#include "nsSVGOuterSVGFrame.h"
#include "mozilla/Attributes.h"
using namespace mozilla;
using namespace mozilla::dom;
@ -1281,7 +1282,7 @@ const double kCurrentVelocityWeighting = 0.25;
const double kStopDecelerationWeighting = 0.4;
// AsyncScroll has ref counting.
class nsGfxScrollFrameInner::AsyncScroll : public nsARefreshObserver {
class nsGfxScrollFrameInner::AsyncScroll MOZ_FINAL : public nsARefreshObserver {
public:
typedef mozilla::TimeStamp TimeStamp;
typedef mozilla::TimeDuration TimeDuration;
@ -1553,7 +1554,7 @@ IsSmoothScrollingEnabled()
return Preferences::GetBool(SMOOTH_SCROLL_PREF_NAME, false);
}
class ScrollFrameActivityTracker : public nsExpirationTracker<nsGfxScrollFrameInner,4> {
class ScrollFrameActivityTracker MOZ_FINAL : public nsExpirationTracker<nsGfxScrollFrameInner,4> {
public:
// Wait for 3-4s between scrolls before we remove our layers.
// That's 4 generations of 1s each.

View File

@ -17,6 +17,7 @@
#include "nsDisplayList.h"
#include "imgIContainer.h"
#include "mozilla/Attributes.h"
class nsIFrame;
class nsImageMap;
@ -309,8 +310,8 @@ private:
nsresult LoadIcon(const nsAString& aSpec, nsPresContext *aPresContext,
imgIRequest **aRequest);
class IconLoad : public nsIObserver,
public imgIDecoderObserver {
class IconLoad MOZ_FINAL : public nsIObserver,
public imgIDecoderObserver {
// private class that wraps the data and logic needed for
// broken image and loading image icons
public:

View File

@ -71,6 +71,7 @@
#include "mozilla/dom/Element.h"
#include "mozilla/Util.h" // for DebugOnly
#include "mozilla/LookAndFeel.h"
#include "mozilla/Attributes.h"
#include "sampler.h"
@ -841,7 +842,7 @@ public:
}
};
class BreakSink : public nsILineBreakSink {
class BreakSink MOZ_FINAL : public nsILineBreakSink {
public:
BreakSink(gfxTextRun* aTextRun, gfxContext* aContext, PRUint32 aOffsetIntoTextRun,
bool aExistingTextRun) :

View File

@ -9,6 +9,7 @@
#include "nsCOMPtr.h"
#include "nsMathMLContainerFrame.h"
#include "nsIDOMEventListener.h"
#include "mozilla/Attributes.h"
//
// <maction> -- bind actions to a subexpression
@ -60,7 +61,7 @@ private:
void MouseOver();
void MouseOut();
class MouseListener : public nsIDOMEventListener
class MouseListener MOZ_FINAL : public nsIDOMEventListener
{
NS_DECL_ISUPPORTS
NS_DECL_NSIDOMEVENTLISTENER

View File

@ -14,12 +14,13 @@
#include "nsCOMPtr.h"
#include "nsTArray.h"
#include "prclist.h"
#include "mozilla/Attributes.h"
class nsPresContext;
class nsMediaList;
class nsDOMMediaQueryList : public nsIDOMMediaQueryList,
public PRCList
class nsDOMMediaQueryList MOZ_FINAL : public nsIDOMMediaQueryList,
public PRCList
{
public:
// The caller who constructs is responsible for calling Evaluate

View File

@ -15,8 +15,8 @@
#include "nsIStyleSheet.h"
#include "nsIStyleRuleProcessor.h"
class nsHTMLCSSStyleSheet : public nsIStyleSheet,
public nsIStyleRuleProcessor {
class nsHTMLCSSStyleSheet MOZ_FINAL : public nsIStyleSheet,
public nsIStyleRuleProcessor {
public:
nsHTMLCSSStyleSheet();

View File

@ -20,9 +20,13 @@
#include "pldhash.h"
#include "nsCOMPtr.h"
#include "nsColor.h"
#include "mozilla/Attributes.h"
class nsMappedAttributes;
class nsHTMLStyleSheet : public nsIStyleSheet, public nsIStyleRuleProcessor {
class nsHTMLStyleSheet MOZ_FINAL : public nsIStyleSheet,
public nsIStyleRuleProcessor
{
public:
nsHTMLStyleSheet(void);
nsresult Init();
@ -83,7 +87,7 @@ private:
class HTMLColorRule;
friend class HTMLColorRule;
class HTMLColorRule : public nsIStyleRule {
class HTMLColorRule MOZ_FINAL : public nsIStyleRule {
public:
HTMLColorRule() {}
@ -103,9 +107,10 @@ private:
class GenericTableRule;
friend class GenericTableRule;
class GenericTableRule: public nsIStyleRule {
class GenericTableRule : public nsIStyleRule {
public:
GenericTableRule() {}
virtual ~GenericTableRule() {}
NS_DECL_ISUPPORTS
@ -119,7 +124,7 @@ private:
// this rule handles <th> inheritance
class TableTHRule;
friend class TableTHRule;
class TableTHRule: public GenericTableRule {
class TableTHRule MOZ_FINAL : public GenericTableRule {
public:
TableTHRule() {}
@ -127,7 +132,7 @@ private:
};
// Rule to handle quirk table colors
class TableQuirkColorRule : public GenericTableRule {
class TableQuirkColorRule MOZ_FINAL : public GenericTableRule {
public:
TableQuirkColorRule() {}

View File

@ -16,6 +16,7 @@
#include "nsTArray.h"
#include "nsIAtom.h"
#include "nsCSSValue.h"
#include "mozilla/Attributes.h"
class nsPresContext;
class nsCSSStyleSheet;
@ -142,7 +143,7 @@ private:
nsTArray<nsMediaExpression> mExpressions;
};
class nsMediaList : public nsIDOMMediaList {
class nsMediaList MOZ_FINAL : public nsIDOMMediaList {
public:
nsMediaList();

View File

@ -9,6 +9,7 @@
#include "nsCOMPtr.h"
#include "nsIObserver.h"
#include "nsAutoPtr.h"
#include "mozilla/Attributes.h"
class nsIFile;
class nsCSSStyleSheet;
@ -22,7 +23,7 @@ class Loader;
class nsIMemoryReporter;
class nsLayoutStylesheetCache
class nsLayoutStylesheetCache MOZ_FINAL
: public nsIObserver
{
NS_DECL_ISUPPORTS

View File

@ -24,6 +24,7 @@
#include "nsIStyleRule.h"
#include "nsCSSPseudoElements.h"
#include "nsCSSAnonBoxes.h"
#include "mozilla/Attributes.h"
class nsIURI;
class nsCSSFontFaceRule;
@ -32,7 +33,7 @@ class nsRuleWalker;
struct RuleProcessorData;
struct TreeMatchContext;
class nsEmptyStyleRule : public nsIStyleRule
class nsEmptyStyleRule MOZ_FINAL : public nsIStyleRule
{
NS_DECL_ISUPPORTS
virtual void MapRuleInfoInto(nsRuleData* aRuleData);
@ -41,7 +42,7 @@ class nsEmptyStyleRule : public nsIStyleRule
#endif
};
class nsInitialStyleRule : public nsIStyleRule
class nsInitialStyleRule MOZ_FINAL : public nsIStyleRule
{
NS_DECL_ISUPPORTS
virtual void MapRuleInfoInto(nsRuleData* aRuleData);

View File

@ -22,6 +22,7 @@
#include "nsIReflowCallback.h"
#include "nsThreadUtils.h"
#include "nsStyleConsts.h"
#include "mozilla/Attributes.h"
// X.h defines KeyPress
#ifdef KeyPress
@ -268,10 +269,10 @@ private:
CloseMenuMode mCloseMenuMode;
};
class nsXULPopupManager : public nsIDOMEventListener,
public nsIRollupListener,
public nsITimerCallback,
public nsIObserver
class nsXULPopupManager MOZ_FINAL : public nsIDOMEventListener,
public nsIRollupListener,
public nsITimerCallback,
public nsIObserver
{
public:

View File

@ -21,6 +21,7 @@
#include "nsXULPopupManager.h"
#include "nsITimer.h"
#include "nsIContent.h"
#include "mozilla/Attributes.h"
nsIFrame* NS_NewMenuFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
nsIFrame* NS_NewMenuItemFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
@ -55,7 +56,7 @@ class nsMenuFrame;
* to it. The callback is delegated to the contained nsMenuFrame as long as
* the contained nsMenuFrame has not been destroyed.
*/
class nsMenuTimerMediator : public nsITimerCallback
class nsMenuTimerMediator MOZ_FINAL : public nsITimerCallback
{
public:
nsMenuTimerMediator(nsMenuFrame* aFrame);

View File

@ -18,8 +18,9 @@
#include "nsITreeColumns.h"
#endif
#include "nsWeakPtr.h"
#include "mozilla/Attributes.h"
class nsXULTooltipListener : public nsIDOMEventListener
class nsXULTooltipListener MOZ_FINAL : public nsIDOMEventListener
{
public:
NS_DECL_ISUPPORTS

View File

@ -11,11 +11,12 @@
#include "nsITreeColumns.h"
#include "nsITimer.h"
#include "nsCycleCollectionParticipant.h"
#include "mozilla/Attributes.h"
class nsITreeBoxObject;
struct nsTreeRange;
class nsTreeSelection : public nsINativeTreeSelection
class nsTreeSelection MOZ_FINAL : public nsINativeTreeSelection
{
public:
nsTreeSelection(nsITreeBoxObject* aTree);