From b9e0190938f62bf21df078e47190a62ba33ddab2 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Fri, 9 Jan 2015 10:46:50 -0800 Subject: Fix -Wnon-virtual-dtor compiler warnings. This is done by explicitly adding a virtual dtor to interface classes, since the cost is small given that there are already virtual functions. The exceptions are for classes that have a Release() or Delete() method, in which case it is non-virtual and protected to indicate that the virtual class is never the deletion point. BUG= R=brucedawson@chromium.org, thestig@chromium.org Review URL: https://codereview.chromium.org/810883005 --- core/include/fxge/fpf.h | 5 +++++ core/include/fxge/fx_dib.h | 3 +-- core/include/fxge/fx_font.h | 8 ++++++++ core/include/fxge/fx_ge.h | 6 ++++-- 4 files changed, 18 insertions(+), 4 deletions(-) (limited to 'core/include/fxge') diff --git a/core/include/fxge/fpf.h b/core/include/fxge/fpf.h index 99d9b7c999..28d028cfbb 100644 --- a/core/include/fxge/fpf.h +++ b/core/include/fxge/fpf.h @@ -12,6 +12,7 @@ class IFPF_Font; class IFPF_DeviceModule { public: + virtual ~IFPF_DeviceModule() { } virtual void Destroy() = 0; virtual IFPF_FontMgr* GetFontMgr() = 0; }; @@ -41,10 +42,14 @@ public: virtual FX_INT32 GetHeight() const = 0; virtual FX_INT32 GetItalicAngle() const = 0; virtual FX_DWORD GetFontData(FX_DWORD dwTable, FX_LPBYTE pBuffer, FX_DWORD dwSize) = 0; + +protected: + ~IFPF_Font() { } }; class IFPF_FontMgr { public: + virtual ~IFPF_FontMgr() { } virtual void LoadSystemFonts() = 0; virtual void LoadPrivateFont(IFX_FileRead* pFontFile) = 0; virtual void LoadPrivateFont(FX_BSTR bsFileName) = 0; diff --git a/core/include/fxge/fx_dib.h b/core/include/fxge/fx_dib.h index d8a2003548..f7e435d966 100644 --- a/core/include/fxge/fx_dib.h +++ b/core/include/fxge/fx_dib.h @@ -402,16 +402,15 @@ protected: class IFX_ScanlineComposer { public: + virtual ~IFX_ScanlineComposer() { } virtual void ComposeScanline(int line, FX_LPCBYTE scanline, FX_LPCBYTE scan_extra_alpha = NULL) = 0; - virtual FX_BOOL SetInfo(int width, int height, FXDIB_Format src_format, FX_DWORD* pSrcPalette) = 0; }; class CFX_ScanlineCompositor : public CFX_Object { public: - CFX_ScanlineCompositor(); ~CFX_ScanlineCompositor(); diff --git a/core/include/fxge/fx_font.h b/core/include/fxge/fx_font.h index 52f8f30d8d..bf9bb40500 100644 --- a/core/include/fxge/fx_font.h +++ b/core/include/fxge/fx_font.h @@ -243,6 +243,7 @@ public: class IFX_FontEnumerator { public: + virtual ~IFX_FontEnumerator() { } virtual void HitFont() = 0; @@ -251,6 +252,7 @@ public: class IFX_AdditionalFontEnum { public: + virtual ~IFX_AdditionalFontEnum() { } virtual int CountFiles() = 0; virtual IFX_FileStream* GetFontFile(int index) = 0; }; @@ -296,6 +298,7 @@ class IFX_SystemFontInfo : public CFX_Object public: static IFX_SystemFontInfo* CreateDefault(); virtual void Release() = 0; + virtual FX_BOOL EnumFontList(CFX_FontMapper* pMapper) = 0; virtual void* MapFont(int weight, FX_BOOL bItalic, int charset, int pitch_family, FX_LPCSTR face, FX_BOOL& bExact) = 0; virtual void* GetFont(FX_LPCSTR face) = 0; @@ -311,6 +314,8 @@ public: { return NULL; } +protected: + ~IFX_SystemFontInfo() { } }; class CFX_FolderFontInfo : public IFX_SystemFontInfo { @@ -423,6 +428,9 @@ class IFX_GSUBTable public: virtual void Release() = 0; virtual FX_BOOL GetVerticalGlyph(FX_DWORD glyphnum, FX_DWORD* vglyphnum) = 0; + +protected: + ~IFX_GSUBTable() { } }; IFX_GSUBTable* FXGE_CreateGSUBTable(CFX_Font* pFont); #endif diff --git a/core/include/fxge/fx_ge.h b/core/include/fxge/fx_ge.h index 82719ffda6..0c4bce8003 100644 --- a/core/include/fxge/fx_ge.h +++ b/core/include/fxge/fx_ge.h @@ -637,9 +637,11 @@ public: class IFX_PSOutput { public: - - virtual void OutputPS(FX_LPCSTR string, int len) = 0; virtual void Release() = 0; + virtual void OutputPS(FX_LPCSTR string, int len) = 0; + +protected: + ~IFX_PSOutput() { } }; class CPSFont; class CFX_PSRenderer : public CFX_Object -- cgit v1.2.3