Remove some other virtual dtors. Mark corresponding classes final just to be sure this is safe. Change-Id: I7f32ed6b2aad44a25aae4918fc24435337d5a793 Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/58234 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/core/fxcrt/xml/cfx_xmlparser.h b/core/fxcrt/xml/cfx_xmlparser.h index 38866c8..87ad9d6 100644 --- a/core/fxcrt/xml/cfx_xmlparser.h +++ b/core/fxcrt/xml/cfx_xmlparser.h
@@ -19,12 +19,12 @@ class CFX_XMLNode; class IFX_SeekableReadStream; -class CFX_XMLParser { +class CFX_XMLParser final { public: static bool IsXMLNameChar(wchar_t ch, bool bFirstChar); explicit CFX_XMLParser(const RetainPtr<IFX_SeekableReadStream>& pStream); - virtual ~CFX_XMLParser(); + ~CFX_XMLParser(); std::unique_ptr<CFX_XMLDocument> Parse();
diff --git a/fpdfsdk/pwl/cpwl_list_impl.h b/fpdfsdk/pwl/cpwl_list_impl.h index baf5c6f..dee6b61 100644 --- a/fpdfsdk/pwl/cpwl_list_impl.h +++ b/fpdfsdk/pwl/cpwl_list_impl.h
@@ -20,13 +20,13 @@ class CPWL_List_Notify; class IPVT_FontMap; -class CPLST_Select { +class CPLST_Select final { public: enum State { DESELECTING = -1, NORMAL = 0, SELECTING = 1 }; using const_iterator = std::map<int32_t, State>::const_iterator; CPLST_Select(); - virtual ~CPLST_Select(); + ~CPLST_Select(); void Add(int32_t nItemIndex); void Add(int32_t nBeginIndex, int32_t nEndIndex);
diff --git a/fxbarcode/datamatrix/BC_DefaultPlacement.h b/fxbarcode/datamatrix/BC_DefaultPlacement.h index 12ea852..823d587 100644 --- a/fxbarcode/datamatrix/BC_DefaultPlacement.h +++ b/fxbarcode/datamatrix/BC_DefaultPlacement.h
@@ -11,10 +11,10 @@ #include "core/fxcrt/fx_string.h" -class CBC_DefaultPlacement { +class CBC_DefaultPlacement final { public: CBC_DefaultPlacement(WideString codewords, int32_t numcols, int32_t numrows); - virtual ~CBC_DefaultPlacement(); + ~CBC_DefaultPlacement(); int32_t getNumrows(); int32_t getNumcols();
diff --git a/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.h b/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.h index 6097839..d059cee 100644 --- a/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.h +++ b/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.h
@@ -12,10 +12,10 @@ class CBC_BarcodeRow; -class CBC_BarcodeMatrix { +class CBC_BarcodeMatrix final { public: CBC_BarcodeMatrix(size_t width, size_t height); - virtual ~CBC_BarcodeMatrix(); + ~CBC_BarcodeMatrix(); CBC_BarcodeRow* getRow(size_t row) const { return m_matrix[row].get(); } size_t getWidth() const { return m_width; }
diff --git a/fxbarcode/pdf417/BC_PDF417BarcodeRow.h b/fxbarcode/pdf417/BC_PDF417BarcodeRow.h index 4709420..07ebbd7 100644 --- a/fxbarcode/pdf417/BC_PDF417BarcodeRow.h +++ b/fxbarcode/pdf417/BC_PDF417BarcodeRow.h
@@ -11,10 +11,10 @@ #include <vector> -class CBC_BarcodeRow { +class CBC_BarcodeRow final { public: explicit CBC_BarcodeRow(size_t width); - virtual ~CBC_BarcodeRow(); + ~CBC_BarcodeRow(); void addBar(bool black, int32_t width); std::vector<uint8_t>& getRow();
diff --git a/fxbarcode/qrcode/BC_QRCoder.h b/fxbarcode/qrcode/BC_QRCoder.h index 882822f..5793858 100644 --- a/fxbarcode/qrcode/BC_QRCoder.h +++ b/fxbarcode/qrcode/BC_QRCoder.h
@@ -15,12 +15,12 @@ class CBC_QRCoderMode; class CBC_CommonByteMatrix; -class CBC_QRCoder { +class CBC_QRCoder final { public: static constexpr int32_t kNumMaskPatterns = 8; CBC_QRCoder(); - virtual ~CBC_QRCoder(); + ~CBC_QRCoder(); static bool IsValidMaskPattern(int32_t maskPattern);
diff --git a/fxbarcode/qrcode/BC_QRCoderMode.h b/fxbarcode/qrcode/BC_QRCoderMode.h index ba762f0..b61d751 100644 --- a/fxbarcode/qrcode/BC_QRCoderMode.h +++ b/fxbarcode/qrcode/BC_QRCoderMode.h
@@ -11,9 +11,9 @@ #include <vector> -class CBC_QRCoderMode { +class CBC_QRCoderMode final { public: - virtual ~CBC_QRCoderMode(); + ~CBC_QRCoderMode(); static void Initialize(); static void Finalize();
diff --git a/xfa/fxgraphics/cxfa_gepattern.h b/xfa/fxgraphics/cxfa_gepattern.h index d811ec9..f5a3413 100644 --- a/xfa/fxgraphics/cxfa_gepattern.h +++ b/xfa/fxgraphics/cxfa_gepattern.h
@@ -14,13 +14,13 @@ class CFX_DIBitmap; class CFX_Matrix; -class CXFA_GEPattern { +class CXFA_GEPattern final { public: CXFA_GEPattern(FX_HatchStyle hatchStyle, const FX_ARGB foreArgb, const FX_ARGB backArgb); - virtual ~CXFA_GEPattern(); + ~CXFA_GEPattern(); private: friend class CXFA_Graphics;
diff --git a/xfa/fxgraphics/cxfa_geshading.h b/xfa/fxgraphics/cxfa_geshading.h index fc7a13e..8905a12 100644 --- a/xfa/fxgraphics/cxfa_geshading.h +++ b/xfa/fxgraphics/cxfa_geshading.h
@@ -15,7 +15,7 @@ enum CXFA_GEShading_Type { FX_SHADING_Axial = 1, FX_SHADING_Radial }; -class CXFA_GEShading { +class CXFA_GEShading final { public: // Axial shading. CXFA_GEShading(const CFX_PointF& beginPoint, @@ -34,7 +34,8 @@ bool isExtendedEnd, const FX_ARGB beginArgb, const FX_ARGB endArgb); - virtual ~CXFA_GEShading(); + + ~CXFA_GEShading(); private: friend class CXFA_Graphics;