The final game: mark everything final.
Then revert the ones that break compilation.
Fix one IWYU noticed during presubmit.
Change-Id: I881a8a72818e55dbc4816247e35ff5e3015194e7
Reviewed-on: https://pdfium-review.googlesource.com/41470
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfapi/edit/cpdf_creator.cpp b/core/fpdfapi/edit/cpdf_creator.cpp
index 11b0628..7af6280 100644
--- a/core/fpdfapi/edit/cpdf_creator.cpp
+++ b/core/fpdfapi/edit/cpdf_creator.cpp
@@ -28,7 +28,7 @@
const size_t kArchiveBufferSize = 32768;
-class CFX_FileBufferArchive : public IFX_ArchiveStream {
+class CFX_FileBufferArchive final : public IFX_ArchiveStream {
public:
explicit CFX_FileBufferArchive(const RetainPtr<IFX_WriteStream>& archive);
~CFX_FileBufferArchive() override;
diff --git a/core/fpdfapi/edit/cpdf_creator_embeddertest.cpp b/core/fpdfapi/edit/cpdf_creator_embeddertest.cpp
index 2d431b8..1f8f788 100644
--- a/core/fpdfapi/edit/cpdf_creator_embeddertest.cpp
+++ b/core/fpdfapi/edit/cpdf_creator_embeddertest.cpp
@@ -20,7 +20,7 @@
namespace {
-class FileAccess : public FPDF_FILEACCESS {
+class FileAccess final : public FPDF_FILEACCESS {
public:
explicit FileAccess(const std::string& file_name) {
std::string file_path;
diff --git a/core/fpdfapi/edit/cpdf_stringarchivestream.h b/core/fpdfapi/edit/cpdf_stringarchivestream.h
index bb5481e..aa744a9 100644
--- a/core/fpdfapi/edit/cpdf_stringarchivestream.h
+++ b/core/fpdfapi/edit/cpdf_stringarchivestream.h
@@ -7,7 +7,7 @@
#include "core/fxcrt/fx_stream.h"
-class CPDF_StringArchiveStream : public IFX_ArchiveStream {
+class CPDF_StringArchiveStream final : public IFX_ArchiveStream {
public:
explicit CPDF_StringArchiveStream(std::ostringstream* stream);
~CPDF_StringArchiveStream() override;
diff --git a/core/fpdfapi/font/cfx_cttgsubtable.h b/core/fpdfapi/font/cfx_cttgsubtable.h
index ff488a5..6b23a8d 100644
--- a/core/fpdfapi/font/cfx_cttgsubtable.h
+++ b/core/fpdfapi/font/cfx_cttgsubtable.h
@@ -64,14 +64,14 @@
uint16_t CoverageFormat;
};
- struct TCoverageFormat1 : public TCoverageFormatBase {
+ struct TCoverageFormat1 final : public TCoverageFormatBase {
TCoverageFormat1();
~TCoverageFormat1() override;
std::vector<uint16_t> GlyphArray;
};
- struct TCoverageFormat2 : public TCoverageFormatBase {
+ struct TCoverageFormat2 final : public TCoverageFormatBase {
TCoverageFormat2();
~TCoverageFormat2() override;
@@ -94,14 +94,14 @@
uint16_t SubstFormat;
};
- struct TSubTable1 : public TSubTableBase {
+ struct TSubTable1 final : public TSubTableBase {
TSubTable1();
~TSubTable1() override;
int16_t DeltaGlyphID;
};
- struct TSubTable2 : public TSubTableBase {
+ struct TSubTable2 final : public TSubTableBase {
TSubTable2();
~TSubTable2() override;
diff --git a/core/fpdfapi/font/cpdf_cidfont.h b/core/fpdfapi/font/cpdf_cidfont.h
index 9dde95d..7aeb54b 100644
--- a/core/fpdfapi/font/cpdf_cidfont.h
+++ b/core/fpdfapi/font/cpdf_cidfont.h
@@ -32,7 +32,7 @@
class CPDF_CMap;
class CPDF_StreamAcc;
-class CPDF_CIDFont : public CPDF_Font {
+class CPDF_CIDFont final : public CPDF_Font {
public:
CPDF_CIDFont(CPDF_Document* pDocument, CPDF_Dictionary* pFontDict);
~CPDF_CIDFont() override;
diff --git a/core/fpdfapi/font/cpdf_cmap.h b/core/fpdfapi/font/cpdf_cmap.h
index 45053bd..228c207 100644
--- a/core/fpdfapi/font/cpdf_cmap.h
+++ b/core/fpdfapi/font/cpdf_cmap.h
@@ -27,7 +27,7 @@
CIDCODING_UTF16,
};
-class CPDF_CMap : public Retainable {
+class CPDF_CMap final : public Retainable {
public:
enum CodingScheme : uint8_t {
OneByte,
diff --git a/core/fpdfapi/font/cpdf_truetypefont.h b/core/fpdfapi/font/cpdf_truetypefont.h
index d63e8f1..a3066d7 100644
--- a/core/fpdfapi/font/cpdf_truetypefont.h
+++ b/core/fpdfapi/font/cpdf_truetypefont.h
@@ -10,7 +10,7 @@
#include "core/fpdfapi/font/cpdf_simplefont.h"
#include "core/fxcrt/fx_system.h"
-class CPDF_TrueTypeFont : public CPDF_SimpleFont {
+class CPDF_TrueTypeFont final : public CPDF_SimpleFont {
public:
CPDF_TrueTypeFont(CPDF_Document* pDocument, CPDF_Dictionary* pFontDict);
~CPDF_TrueTypeFont() override;
diff --git a/core/fpdfapi/font/cpdf_type1font.h b/core/fpdfapi/font/cpdf_type1font.h
index cbcb9af..0fdfa80 100644
--- a/core/fpdfapi/font/cpdf_type1font.h
+++ b/core/fpdfapi/font/cpdf_type1font.h
@@ -10,7 +10,7 @@
#include "core/fpdfapi/font/cpdf_simplefont.h"
#include "core/fxcrt/fx_system.h"
-class CPDF_Type1Font : public CPDF_SimpleFont {
+class CPDF_Type1Font final : public CPDF_SimpleFont {
public:
CPDF_Type1Font(CPDF_Document* pDocument, CPDF_Dictionary* pFontDict);
~CPDF_Type1Font() override;
diff --git a/core/fpdfapi/font/cpdf_type3font.h b/core/fpdfapi/font/cpdf_type3font.h
index 0be1fa3..d85bf70 100644
--- a/core/fpdfapi/font/cpdf_type3font.h
+++ b/core/fpdfapi/font/cpdf_type3font.h
@@ -17,7 +17,7 @@
class CPDF_Dictionary;
class CPDF_Type3Char;
-class CPDF_Type3Font : public CPDF_SimpleFont {
+class CPDF_Type3Font final : public CPDF_SimpleFont {
public:
CPDF_Type3Font(CPDF_Document* pDocument, CPDF_Dictionary* pFontDict);
~CPDF_Type3Font() override;
diff --git a/core/fpdfapi/page/cpdf_allstates.h b/core/fpdfapi/page/cpdf_allstates.h
index 730003a..e388b94 100644
--- a/core/fpdfapi/page/cpdf_allstates.h
+++ b/core/fpdfapi/page/cpdf_allstates.h
@@ -15,7 +15,7 @@
class CPDF_Dictionary;
class CPDF_StreamContentParser;
-class CPDF_AllStates : public CPDF_GraphicStates {
+class CPDF_AllStates final : public CPDF_GraphicStates {
public:
CPDF_AllStates();
~CPDF_AllStates() override;
diff --git a/core/fpdfapi/page/cpdf_clippath.h b/core/fpdfapi/page/cpdf_clippath.h
index 91a25cd..c0b5ce5 100644
--- a/core/fpdfapi/page/cpdf_clippath.h
+++ b/core/fpdfapi/page/cpdf_clippath.h
@@ -44,7 +44,7 @@
void Transform(const CFX_Matrix& matrix);
private:
- class PathData : public Retainable {
+ class PathData final : public Retainable {
public:
using PathAndTypeData = std::pair<CPDF_Path, uint8_t>;
diff --git a/core/fpdfapi/page/cpdf_colorspace.cpp b/core/fpdfapi/page/cpdf_colorspace.cpp
index a3b88b0..882b565 100644
--- a/core/fpdfapi/page/cpdf_colorspace.cpp
+++ b/core/fpdfapi/page/cpdf_colorspace.cpp
@@ -105,7 +105,7 @@
return pPoints[0] > 0.0f && pPoints[1] == 1.0f && pPoints[2] > 0.0f;
}
-class CPDF_CalGray : public CPDF_ColorSpace {
+class CPDF_CalGray final : public CPDF_ColorSpace {
public:
explicit CPDF_CalGray(CPDF_Document* pDoc);
~CPDF_CalGray() override {}
@@ -130,7 +130,7 @@
float m_BlackPoint[kBlackWhitePointCount];
};
-class CPDF_CalRGB : public CPDF_ColorSpace {
+class CPDF_CalRGB final : public CPDF_ColorSpace {
public:
explicit CPDF_CalRGB(CPDF_Document* pDoc);
~CPDF_CalRGB() override {}
@@ -160,7 +160,7 @@
bool m_bMatrix = false;
};
-class CPDF_LabCS : public CPDF_ColorSpace {
+class CPDF_LabCS final : public CPDF_ColorSpace {
public:
explicit CPDF_LabCS(CPDF_Document* pDoc);
~CPDF_LabCS() override {}
@@ -190,7 +190,7 @@
float m_Ranges[kRangesCount];
};
-class CPDF_ICCBasedCS : public CPDF_ColorSpace {
+class CPDF_ICCBasedCS final : public CPDF_ColorSpace {
public:
explicit CPDF_ICCBasedCS(CPDF_Document* pDoc);
~CPDF_ICCBasedCS() override;
@@ -226,7 +226,7 @@
std::vector<float> m_pRanges;
};
-class CPDF_IndexedCS : public CPDF_ColorSpace {
+class CPDF_IndexedCS final : public CPDF_ColorSpace {
public:
explicit CPDF_IndexedCS(CPDF_Document* pDoc);
~CPDF_IndexedCS() override;
@@ -248,7 +248,7 @@
std::vector<float> m_pCompMinMax;
};
-class CPDF_SeparationCS : public CPDF_ColorSpace {
+class CPDF_SeparationCS final : public CPDF_ColorSpace {
public:
explicit CPDF_SeparationCS(CPDF_Document* pDoc);
~CPDF_SeparationCS() override;
@@ -270,7 +270,7 @@
enum { None, All, Colorant } m_Type;
};
-class CPDF_DeviceNCS : public CPDF_ColorSpace {
+class CPDF_DeviceNCS final : public CPDF_ColorSpace {
public:
explicit CPDF_DeviceNCS(CPDF_Document* pDoc);
~CPDF_DeviceNCS() override;
diff --git a/core/fpdfapi/page/cpdf_colorstate.h b/core/fpdfapi/page/cpdf_colorstate.h
index 49416db..7b72a2a 100644
--- a/core/fpdfapi/page/cpdf_colorstate.h
+++ b/core/fpdfapi/page/cpdf_colorstate.h
@@ -50,7 +50,7 @@
bool HasRef() const { return !!m_Ref; }
private:
- class ColorData : public Retainable {
+ class ColorData final : public Retainable {
public:
ColorData();
ColorData(const ColorData& src);
diff --git a/core/fpdfapi/page/cpdf_contentmark.h b/core/fpdfapi/page/cpdf_contentmark.h
index dc4cc08..1395db1 100644
--- a/core/fpdfapi/page/cpdf_contentmark.h
+++ b/core/fpdfapi/page/cpdf_contentmark.h
@@ -40,7 +40,7 @@
size_t FindFirstDifference(const CPDF_ContentMark* other) const;
private:
- class MarkData : public Retainable {
+ class MarkData final : public Retainable {
public:
MarkData();
MarkData(const MarkData& src);
diff --git a/core/fpdfapi/page/cpdf_contentmarkitem.h b/core/fpdfapi/page/cpdf_contentmarkitem.h
index 435aef4..a0a92db 100644
--- a/core/fpdfapi/page/cpdf_contentmarkitem.h
+++ b/core/fpdfapi/page/cpdf_contentmarkitem.h
@@ -17,7 +17,7 @@
class CPDF_Dictionary;
-class CPDF_ContentMarkItem : public Retainable {
+class CPDF_ContentMarkItem final : public Retainable {
public:
enum ParamType { None, PropertiesDict, DirectDict };
diff --git a/core/fpdfapi/page/cpdf_devicecs.h b/core/fpdfapi/page/cpdf_devicecs.h
index bf668c3..ab88d74 100644
--- a/core/fpdfapi/page/cpdf_devicecs.h
+++ b/core/fpdfapi/page/cpdf_devicecs.h
@@ -11,7 +11,7 @@
#include "core/fpdfapi/page/cpdf_colorspace.h"
-class CPDF_DeviceCS : public CPDF_ColorSpace {
+class CPDF_DeviceCS final : public CPDF_ColorSpace {
public:
explicit CPDF_DeviceCS(int family);
~CPDF_DeviceCS() override;
diff --git a/core/fpdfapi/page/cpdf_expintfunc.h b/core/fpdfapi/page/cpdf_expintfunc.h
index c93cc86..95bdab6 100644
--- a/core/fpdfapi/page/cpdf_expintfunc.h
+++ b/core/fpdfapi/page/cpdf_expintfunc.h
@@ -12,7 +12,7 @@
#include "core/fpdfapi/page/cpdf_function.h"
-class CPDF_ExpIntFunc : public CPDF_Function {
+class CPDF_ExpIntFunc final : public CPDF_Function {
public:
CPDF_ExpIntFunc();
~CPDF_ExpIntFunc() override;
diff --git a/core/fpdfapi/page/cpdf_form.h b/core/fpdfapi/page/cpdf_form.h
index 63cc4a9..abb5c40 100644
--- a/core/fpdfapi/page/cpdf_form.h
+++ b/core/fpdfapi/page/cpdf_form.h
@@ -19,7 +19,7 @@
class CFX_Matrix;
class CPDF_Type3Char;
-class CPDF_Form : public CPDF_PageObjectHolder {
+class CPDF_Form final : public CPDF_PageObjectHolder {
public:
CPDF_Form(CPDF_Document* pDocument,
CPDF_Dictionary* pPageResources,
diff --git a/core/fpdfapi/page/cpdf_formobject.h b/core/fpdfapi/page/cpdf_formobject.h
index b229dce..dc53c45 100644
--- a/core/fpdfapi/page/cpdf_formobject.h
+++ b/core/fpdfapi/page/cpdf_formobject.h
@@ -14,7 +14,7 @@
class CPDF_Form;
-class CPDF_FormObject : public CPDF_PageObject {
+class CPDF_FormObject final : public CPDF_PageObject {
public:
CPDF_FormObject(int32_t content_stream,
std::unique_ptr<CPDF_Form> pForm,
diff --git a/core/fpdfapi/page/cpdf_generalstate.h b/core/fpdfapi/page/cpdf_generalstate.h
index 4a101b9..9ee20db 100644
--- a/core/fpdfapi/page/cpdf_generalstate.h
+++ b/core/fpdfapi/page/cpdf_generalstate.h
@@ -77,7 +77,7 @@
CFX_Matrix* GetMutableMatrix();
private:
- class StateData : public Retainable {
+ class StateData final : public Retainable {
public:
StateData();
StateData(const StateData& that);
diff --git a/core/fpdfapi/page/cpdf_iccprofile.h b/core/fpdfapi/page/cpdf_iccprofile.h
index a9e1170..0f13b0b 100644
--- a/core/fpdfapi/page/cpdf_iccprofile.h
+++ b/core/fpdfapi/page/cpdf_iccprofile.h
@@ -16,7 +16,7 @@
class CLcmsCmm;
class CPDF_Stream;
-class CPDF_IccProfile : public Retainable {
+class CPDF_IccProfile final : public Retainable {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
diff --git a/core/fpdfapi/page/cpdf_image.h b/core/fpdfapi/page/cpdf_image.h
index 4306109..1be9b4d 100644
--- a/core/fpdfapi/page/cpdf_image.h
+++ b/core/fpdfapi/page/cpdf_image.h
@@ -22,7 +22,7 @@
class PauseIndicatorIface;
class IFX_SeekableReadStream;
-class CPDF_Image : public Retainable {
+class CPDF_Image final : public Retainable {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
diff --git a/core/fpdfapi/page/cpdf_imageobject.h b/core/fpdfapi/page/cpdf_imageobject.h
index d54ef8d..2e01598 100644
--- a/core/fpdfapi/page/cpdf_imageobject.h
+++ b/core/fpdfapi/page/cpdf_imageobject.h
@@ -14,7 +14,7 @@
class CPDF_Image;
-class CPDF_ImageObject : public CPDF_PageObject {
+class CPDF_ImageObject final : public CPDF_PageObject {
public:
explicit CPDF_ImageObject(int32_t content_stream);
CPDF_ImageObject();
diff --git a/core/fpdfapi/page/cpdf_page.h b/core/fpdfapi/page/cpdf_page.h
index 44bb6d8..b641253 100644
--- a/core/fpdfapi/page/cpdf_page.h
+++ b/core/fpdfapi/page/cpdf_page.h
@@ -23,7 +23,7 @@
class CPDF_PageRenderCache;
class CPDF_PageRenderContext;
-class CPDF_Page : public IPDF_Page, public CPDF_PageObjectHolder {
+class CPDF_Page final : public IPDF_Page, public CPDF_PageObjectHolder {
public:
class View {}; // Caller implements as desired, empty here due to layering.
diff --git a/core/fpdfapi/page/cpdf_pageobjectlist.h b/core/fpdfapi/page/cpdf_pageobjectlist.h
index 77c7d81..1b4bf8f 100644
--- a/core/fpdfapi/page/cpdf_pageobjectlist.h
+++ b/core/fpdfapi/page/cpdf_pageobjectlist.h
@@ -12,7 +12,7 @@
class CPDF_PageObject;
-class CPDF_PageObjectList
+class CPDF_PageObjectList final
: public std::deque<std::unique_ptr<CPDF_PageObject>> {
public:
CPDF_PageObject* GetPageObjectByIndex(int index) const;
diff --git a/core/fpdfapi/page/cpdf_pathobject.h b/core/fpdfapi/page/cpdf_pathobject.h
index 5155c40..0a1e4d0 100644
--- a/core/fpdfapi/page/cpdf_pathobject.h
+++ b/core/fpdfapi/page/cpdf_pathobject.h
@@ -12,7 +12,7 @@
#include "core/fxcrt/fx_coordinates.h"
#include "core/fxcrt/fx_system.h"
-class CPDF_PathObject : public CPDF_PageObject {
+class CPDF_PathObject final : public CPDF_PageObject {
public:
explicit CPDF_PathObject(int32_t content_stream);
CPDF_PathObject();
diff --git a/core/fpdfapi/page/cpdf_patterncs.h b/core/fpdfapi/page/cpdf_patterncs.h
index 23735fd..5de9875 100644
--- a/core/fpdfapi/page/cpdf_patterncs.h
+++ b/core/fpdfapi/page/cpdf_patterncs.h
@@ -13,7 +13,7 @@
class CPDF_Document;
-class CPDF_PatternCS : public CPDF_ColorSpace {
+class CPDF_PatternCS final : public CPDF_ColorSpace {
public:
explicit CPDF_PatternCS(CPDF_Document* pDoc);
~CPDF_PatternCS() override;
diff --git a/core/fpdfapi/page/cpdf_psfunc.h b/core/fpdfapi/page/cpdf_psfunc.h
index 1274c21..b81c2e7 100644
--- a/core/fpdfapi/page/cpdf_psfunc.h
+++ b/core/fpdfapi/page/cpdf_psfunc.h
@@ -14,7 +14,7 @@
class CPDF_Object;
-class CPDF_PSFunc : public CPDF_Function {
+class CPDF_PSFunc final : public CPDF_Function {
public:
CPDF_PSFunc();
~CPDF_PSFunc() override;
diff --git a/core/fpdfapi/page/cpdf_sampledfunc.h b/core/fpdfapi/page/cpdf_sampledfunc.h
index bd12966..579fdce 100644
--- a/core/fpdfapi/page/cpdf_sampledfunc.h
+++ b/core/fpdfapi/page/cpdf_sampledfunc.h
@@ -14,7 +14,7 @@
#include "core/fpdfapi/parser/cpdf_stream_acc.h"
#include "core/fxcrt/retain_ptr.h"
-class CPDF_SampledFunc : public CPDF_Function {
+class CPDF_SampledFunc final : public CPDF_Function {
public:
struct SampleEncodeInfo {
float encode_max;
diff --git a/core/fpdfapi/page/cpdf_shadingobject.h b/core/fpdfapi/page/cpdf_shadingobject.h
index af88128..c246870 100644
--- a/core/fpdfapi/page/cpdf_shadingobject.h
+++ b/core/fpdfapi/page/cpdf_shadingobject.h
@@ -13,7 +13,7 @@
class CPDF_ShadingPattern;
-class CPDF_ShadingObject : public CPDF_PageObject {
+class CPDF_ShadingObject final : public CPDF_PageObject {
public:
CPDF_ShadingObject(int32_t content_stream,
CPDF_ShadingPattern* pattern,
diff --git a/core/fpdfapi/page/cpdf_shadingpattern.h b/core/fpdfapi/page/cpdf_shadingpattern.h
index d7aa1cb..dbf8087 100644
--- a/core/fpdfapi/page/cpdf_shadingpattern.h
+++ b/core/fpdfapi/page/cpdf_shadingpattern.h
@@ -33,7 +33,7 @@
class CPDF_Function;
class CPDF_Object;
-class CPDF_ShadingPattern : public CPDF_Pattern {
+class CPDF_ShadingPattern final : public CPDF_Pattern {
public:
CPDF_ShadingPattern(CPDF_Document* pDoc,
CPDF_Object* pPatternObj,
diff --git a/core/fpdfapi/page/cpdf_stitchfunc.h b/core/fpdfapi/page/cpdf_stitchfunc.h
index 20dac6c..022bd4e 100644
--- a/core/fpdfapi/page/cpdf_stitchfunc.h
+++ b/core/fpdfapi/page/cpdf_stitchfunc.h
@@ -13,7 +13,7 @@
#include "core/fpdfapi/page/cpdf_function.h"
-class CPDF_StitchFunc : public CPDF_Function {
+class CPDF_StitchFunc final : public CPDF_Function {
public:
CPDF_StitchFunc();
~CPDF_StitchFunc() override;
diff --git a/core/fpdfapi/page/cpdf_textobject.h b/core/fpdfapi/page/cpdf_textobject.h
index ac17c6d..9ed5ff7 100644
--- a/core/fpdfapi/page/cpdf_textobject.h
+++ b/core/fpdfapi/page/cpdf_textobject.h
@@ -23,7 +23,7 @@
CFX_PointF m_Origin;
};
-class CPDF_TextObject : public CPDF_PageObject {
+class CPDF_TextObject final : public CPDF_PageObject {
public:
explicit CPDF_TextObject(int32_t content_stream);
CPDF_TextObject();
diff --git a/core/fpdfapi/page/cpdf_textstate.h b/core/fpdfapi/page/cpdf_textstate.h
index aa12807..c1c3ba8 100644
--- a/core/fpdfapi/page/cpdf_textstate.h
+++ b/core/fpdfapi/page/cpdf_textstate.h
@@ -59,7 +59,7 @@
float* GetMutableCTM();
private:
- class TextData : public Retainable {
+ class TextData final : public Retainable {
public:
TextData();
TextData(const TextData& src);
diff --git a/core/fpdfapi/page/cpdf_tilingpattern.h b/core/fpdfapi/page/cpdf_tilingpattern.h
index d9450d7..c79708d 100644
--- a/core/fpdfapi/page/cpdf_tilingpattern.h
+++ b/core/fpdfapi/page/cpdf_tilingpattern.h
@@ -17,7 +17,7 @@
class CPDF_Form;
class CPDF_Object;
-class CPDF_TilingPattern : public CPDF_Pattern {
+class CPDF_TilingPattern final : public CPDF_Pattern {
public:
CPDF_TilingPattern(CPDF_Document* pDoc,
CPDF_Object* pPatternObj,
diff --git a/core/fpdfapi/parser/cfdf_document.h b/core/fpdfapi/parser/cfdf_document.h
index 6efaa4c..6ab751e 100644
--- a/core/fpdfapi/parser/cfdf_document.h
+++ b/core/fpdfapi/parser/cfdf_document.h
@@ -17,7 +17,7 @@
class CPDF_Dictionary;
class IFX_SeekableReadStream;
-class CFDF_Document : public CPDF_IndirectObjectHolder {
+class CFDF_Document final : public CPDF_IndirectObjectHolder {
public:
static std::unique_ptr<CFDF_Document> CreateNewDoc();
static std::unique_ptr<CFDF_Document> ParseMemory(
diff --git a/core/fpdfapi/parser/cpdf_array.h b/core/fpdfapi/parser/cpdf_array.h
index 1e63983..0c9251c 100644
--- a/core/fpdfapi/parser/cpdf_array.h
+++ b/core/fpdfapi/parser/cpdf_array.h
@@ -18,7 +18,7 @@
#include "core/fxcrt/fx_coordinates.h"
#include "third_party/base/ptr_util.h"
-class CPDF_Array : public CPDF_Object {
+class CPDF_Array final : public CPDF_Object {
public:
using const_iterator =
std::vector<std::unique_ptr<CPDF_Object>>::const_iterator;
diff --git a/core/fpdfapi/parser/cpdf_boolean.h b/core/fpdfapi/parser/cpdf_boolean.h
index 61c213b..406381b 100644
--- a/core/fpdfapi/parser/cpdf_boolean.h
+++ b/core/fpdfapi/parser/cpdf_boolean.h
@@ -13,7 +13,7 @@
#include "core/fxcrt/fx_string.h"
#include "core/fxcrt/fx_system.h"
-class CPDF_Boolean : public CPDF_Object {
+class CPDF_Boolean final : public CPDF_Object {
public:
CPDF_Boolean();
explicit CPDF_Boolean(bool value);
diff --git a/core/fpdfapi/parser/cpdf_dictionary.h b/core/fpdfapi/parser/cpdf_dictionary.h
index 5cd0e8b..4930e5e 100644
--- a/core/fpdfapi/parser/cpdf_dictionary.h
+++ b/core/fpdfapi/parser/cpdf_dictionary.h
@@ -21,7 +21,7 @@
class CPDF_IndirectObjectHolder;
-class CPDF_Dictionary : public CPDF_Object {
+class CPDF_Dictionary final : public CPDF_Object {
public:
using const_iterator =
std::map<ByteString, std::unique_ptr<CPDF_Object>>::const_iterator;
diff --git a/core/fpdfapi/parser/cpdf_document_unittest.cpp b/core/fpdfapi/parser/cpdf_document_unittest.cpp
index c64da63..daaab5d 100644
--- a/core/fpdfapi/parser/cpdf_document_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_document_unittest.cpp
@@ -47,7 +47,7 @@
return page;
}
-class CPDF_TestDocumentForPages : public CPDF_Document {
+class CPDF_TestDocumentForPages final : public CPDF_Document {
public:
CPDF_TestDocumentForPages() : CPDF_Document() {
// Set up test
@@ -99,7 +99,7 @@
}
};
-class CPDF_TestDocumentWithPageWithoutPageNum : public CPDF_Document {
+class CPDF_TestDocumentWithPageWithoutPageNum final : public CPDF_Document {
public:
CPDF_TestDocumentWithPageWithoutPageNum() : CPDF_Document() {
// Set up test
@@ -124,13 +124,13 @@
const CPDF_Object* inlined_page_;
};
-class TestLinearized : public CPDF_LinearizedHeader {
+class TestLinearized final : public CPDF_LinearizedHeader {
public:
explicit TestLinearized(CPDF_Dictionary* dict)
: CPDF_LinearizedHeader(dict, 0) {}
};
-class CPDF_TestDocPagesWithoutKids : public CPDF_Document {
+class CPDF_TestDocPagesWithoutKids final : public CPDF_Document {
public:
CPDF_TestDocPagesWithoutKids() : CPDF_Document() {
CPDF_Dictionary* pagesDict = NewIndirect<CPDF_Dictionary>();
@@ -143,7 +143,7 @@
}
};
-class CPDF_TestDocumentAllowSetParser : public CPDF_Document {
+class CPDF_TestDocumentAllowSetParser final : public CPDF_Document {
public:
using CPDF_Document::SetParser;
};
diff --git a/core/fpdfapi/parser/cpdf_hint_tables_unittest.cpp b/core/fpdfapi/parser/cpdf_hint_tables_unittest.cpp
index c372d74..c3b05ac 100644
--- a/core/fpdfapi/parser/cpdf_hint_tables_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_hint_tables_unittest.cpp
@@ -40,7 +40,7 @@
nullptr, MakeValidatorFromFile(file_name), true);
}
-class TestLinearizedHeader : public CPDF_LinearizedHeader {
+class TestLinearizedHeader final : public CPDF_LinearizedHeader {
public:
TestLinearizedHeader(const CPDF_Dictionary* pDict,
FX_FILESIZE szLastXRefOffset)
diff --git a/core/fpdfapi/parser/cpdf_indirect_object_holder_unittest.cpp b/core/fpdfapi/parser/cpdf_indirect_object_holder_unittest.cpp
index 666264f..6f913ca 100644
--- a/core/fpdfapi/parser/cpdf_indirect_object_holder_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_indirect_object_holder_unittest.cpp
@@ -14,7 +14,7 @@
namespace {
-class MockIndirectObjectHolder : public CPDF_IndirectObjectHolder {
+class MockIndirectObjectHolder final : public CPDF_IndirectObjectHolder {
public:
MockIndirectObjectHolder() {}
~MockIndirectObjectHolder() override {}
diff --git a/core/fpdfapi/parser/cpdf_name.h b/core/fpdfapi/parser/cpdf_name.h
index eef6bca..1ef6c64 100644
--- a/core/fpdfapi/parser/cpdf_name.h
+++ b/core/fpdfapi/parser/cpdf_name.h
@@ -13,7 +13,7 @@
#include "core/fxcrt/string_pool_template.h"
#include "core/fxcrt/weak_ptr.h"
-class CPDF_Name : public CPDF_Object {
+class CPDF_Name final : public CPDF_Object {
public:
CPDF_Name(WeakPtr<ByteStringPool> pPool, const ByteString& str);
~CPDF_Name() override;
diff --git a/core/fpdfapi/parser/cpdf_null.h b/core/fpdfapi/parser/cpdf_null.h
index 003ad2f..c72d3b0 100644
--- a/core/fpdfapi/parser/cpdf_null.h
+++ b/core/fpdfapi/parser/cpdf_null.h
@@ -11,7 +11,7 @@
#include "core/fpdfapi/parser/cpdf_object.h"
-class CPDF_Null : public CPDF_Object {
+class CPDF_Null final : public CPDF_Object {
public:
CPDF_Null();
diff --git a/core/fpdfapi/parser/cpdf_number.h b/core/fpdfapi/parser/cpdf_number.h
index 4681bb2..b5faf82 100644
--- a/core/fpdfapi/parser/cpdf_number.h
+++ b/core/fpdfapi/parser/cpdf_number.h
@@ -13,7 +13,7 @@
#include "core/fxcrt/fx_string.h"
#include "core/fxcrt/fx_system.h"
-class CPDF_Number : public CPDF_Object {
+class CPDF_Number final : public CPDF_Object {
public:
CPDF_Number();
explicit CPDF_Number(int value);
diff --git a/core/fpdfapi/parser/cpdf_object_avail_unittest.cpp b/core/fpdfapi/parser/cpdf_object_avail_unittest.cpp
index 5c3da70..e2b23d4 100644
--- a/core/fpdfapi/parser/cpdf_object_avail_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_object_avail_unittest.cpp
@@ -20,7 +20,7 @@
namespace {
-class TestReadValidator : public CPDF_ReadValidator {
+class TestReadValidator final : public CPDF_ReadValidator {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
@@ -35,7 +35,7 @@
~TestReadValidator() override {}
};
-class TestHolder : public CPDF_IndirectObjectHolder {
+class TestHolder final : public CPDF_IndirectObjectHolder {
public:
enum class ObjectState {
Unavailable,
@@ -93,7 +93,7 @@
RetainPtr<TestReadValidator> validator_;
};
-class CPDF_ObjectAvailFailOnExclude : public CPDF_ObjectAvail {
+class CPDF_ObjectAvailFailOnExclude final : public CPDF_ObjectAvail {
public:
using CPDF_ObjectAvail::CPDF_ObjectAvail;
~CPDF_ObjectAvailFailOnExclude() override {}
@@ -103,7 +103,7 @@
}
};
-class CPDF_ObjectAvailExcludeArray : public CPDF_ObjectAvail {
+class CPDF_ObjectAvailExcludeArray final : public CPDF_ObjectAvail {
public:
using CPDF_ObjectAvail::CPDF_ObjectAvail;
~CPDF_ObjectAvailExcludeArray() override {}
@@ -112,7 +112,7 @@
}
};
-class CPDF_ObjectAvailExcludeTypeKey : public CPDF_ObjectAvail {
+class CPDF_ObjectAvailExcludeTypeKey final : public CPDF_ObjectAvail {
public:
using CPDF_ObjectAvail::CPDF_ObjectAvail;
~CPDF_ObjectAvailExcludeTypeKey() override {}
diff --git a/core/fpdfapi/parser/cpdf_object_walker.cpp b/core/fpdfapi/parser/cpdf_object_walker.cpp
index 8424c0f..9163866 100644
--- a/core/fpdfapi/parser/cpdf_object_walker.cpp
+++ b/core/fpdfapi/parser/cpdf_object_walker.cpp
@@ -12,7 +12,7 @@
namespace {
-class StreamIterator : public CPDF_ObjectWalker::SubobjectIterator {
+class StreamIterator final : public CPDF_ObjectWalker::SubobjectIterator {
public:
explicit StreamIterator(const CPDF_Stream* stream)
: SubobjectIterator(stream) {}
@@ -33,7 +33,7 @@
bool is_finished_ = false;
};
-class DictionaryIterator : public CPDF_ObjectWalker::SubobjectIterator {
+class DictionaryIterator final : public CPDF_ObjectWalker::SubobjectIterator {
public:
explicit DictionaryIterator(const CPDF_Dictionary* dictionary)
: SubobjectIterator(dictionary) {}
@@ -64,7 +64,7 @@
ByteString dict_key_;
};
-class ArrayIterator : public CPDF_ObjectWalker::SubobjectIterator {
+class ArrayIterator final : public CPDF_ObjectWalker::SubobjectIterator {
public:
explicit ArrayIterator(const CPDF_Array* array) : SubobjectIterator(array) {}
diff --git a/core/fpdfapi/parser/cpdf_object_walker.h b/core/fpdfapi/parser/cpdf_object_walker.h
index 57506b9..e0fd35d 100644
--- a/core/fpdfapi/parser/cpdf_object_walker.h
+++ b/core/fpdfapi/parser/cpdf_object_walker.h
@@ -55,7 +55,7 @@
std::stack<std::unique_ptr<SubobjectIterator>> stack_;
};
-class CPDF_NonConstObjectWalker : public CPDF_ObjectWalker {
+class CPDF_NonConstObjectWalker final : public CPDF_ObjectWalker {
public:
explicit CPDF_NonConstObjectWalker(CPDF_Object* root)
: CPDF_ObjectWalker(root) {}
diff --git a/core/fpdfapi/parser/cpdf_page_object_avail.h b/core/fpdfapi/parser/cpdf_page_object_avail.h
index 8c740ed..b62ca4c 100644
--- a/core/fpdfapi/parser/cpdf_page_object_avail.h
+++ b/core/fpdfapi/parser/cpdf_page_object_avail.h
@@ -9,7 +9,7 @@
// Helper for check availability of page's object tree.
// Exclude references to pages.
-class CPDF_PageObjectAvail : public CPDF_ObjectAvail {
+class CPDF_PageObjectAvail final : public CPDF_ObjectAvail {
public:
using CPDF_ObjectAvail::CPDF_ObjectAvail;
~CPDF_PageObjectAvail() override;
diff --git a/core/fpdfapi/parser/cpdf_page_object_avail_unittest.cpp b/core/fpdfapi/parser/cpdf_page_object_avail_unittest.cpp
index 14ba0e3..f278b6e 100644
--- a/core/fpdfapi/parser/cpdf_page_object_avail_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_page_object_avail_unittest.cpp
@@ -21,8 +21,7 @@
namespace {
-
-class TestReadValidator : public CPDF_ReadValidator {
+class TestReadValidator final : public CPDF_ReadValidator {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
@@ -37,7 +36,7 @@
~TestReadValidator() override {}
};
-class TestHolder : public CPDF_IndirectObjectHolder {
+class TestHolder final : public CPDF_IndirectObjectHolder {
public:
enum class ObjectState {
Unavailable,
diff --git a/core/fpdfapi/parser/cpdf_parser.cpp b/core/fpdfapi/parser/cpdf_parser.cpp
index 0298515..32629bc 100644
--- a/core/fpdfapi/parser/cpdf_parser.cpp
+++ b/core/fpdfapi/parser/cpdf_parser.cpp
@@ -47,7 +47,7 @@
return result;
}
-class ObjectsHolderStub : public CPDF_Parser::ParsedObjectsHolder {
+class ObjectsHolderStub final : public CPDF_Parser::ParsedObjectsHolder {
public:
ObjectsHolderStub() = default;
~ObjectsHolderStub() override = default;
diff --git a/core/fpdfapi/parser/cpdf_parser_unittest.cpp b/core/fpdfapi/parser/cpdf_parser_unittest.cpp
index 00f3770..28c907a 100644
--- a/core/fpdfapi/parser/cpdf_parser_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_parser_unittest.cpp
@@ -29,7 +29,7 @@
} // namespace
// A wrapper class to help test member functions of CPDF_Parser.
-class CPDF_TestParser : public CPDF_Parser {
+class CPDF_TestParser final : public CPDF_Parser {
public:
CPDF_TestParser() {}
~CPDF_TestParser() {}
diff --git a/core/fpdfapi/parser/cpdf_read_validator_unittest.cpp b/core/fpdfapi/parser/cpdf_read_validator_unittest.cpp
index 6402698..cf8b9b6 100644
--- a/core/fpdfapi/parser/cpdf_read_validator_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_read_validator_unittest.cpp
@@ -20,7 +20,7 @@
return std::pair<FX_FILESIZE, FX_FILESIZE>(start, end);
}
-class MockFileAvail : public CPDF_DataAvail::FileAvail {
+class MockFileAvail final : public CPDF_DataAvail::FileAvail {
public:
MockFileAvail() : available_range_(0, 0) {}
~MockFileAvail() override {}
@@ -42,7 +42,7 @@
std::pair<FX_FILESIZE, FX_FILESIZE> available_range_;
};
-class MockDownloadHints : public CPDF_DataAvail::DownloadHints {
+class MockDownloadHints final : public CPDF_DataAvail::DownloadHints {
public:
MockDownloadHints() : last_requested_range_(0, 0) {}
~MockDownloadHints() override {}
diff --git a/core/fpdfapi/parser/cpdf_reference.h b/core/fpdfapi/parser/cpdf_reference.h
index cdb5d5e..cb9c6ed 100644
--- a/core/fpdfapi/parser/cpdf_reference.h
+++ b/core/fpdfapi/parser/cpdf_reference.h
@@ -15,7 +15,7 @@
class CPDF_IndirectObjectHolder;
-class CPDF_Reference : public CPDF_Object {
+class CPDF_Reference final : public CPDF_Object {
public:
CPDF_Reference(CPDF_IndirectObjectHolder* pDoc, uint32_t objnum);
~CPDF_Reference() override;
diff --git a/core/fpdfapi/parser/cpdf_stream.h b/core/fpdfapi/parser/cpdf_stream.h
index 3deb9cd..9d8cf6d 100644
--- a/core/fpdfapi/parser/cpdf_stream.h
+++ b/core/fpdfapi/parser/cpdf_stream.h
@@ -15,7 +15,7 @@
#include "core/fpdfapi/parser/cpdf_object.h"
#include "core/fxcrt/fx_stream.h"
-class CPDF_Stream : public CPDF_Object {
+class CPDF_Stream final : public CPDF_Object {
public:
CPDF_Stream();
CPDF_Stream(std::unique_ptr<uint8_t, FxFreeDeleter> pData,
diff --git a/core/fpdfapi/parser/cpdf_stream_acc.h b/core/fpdfapi/parser/cpdf_stream_acc.h
index 5d18723..fae8ba0 100644
--- a/core/fpdfapi/parser/cpdf_stream_acc.h
+++ b/core/fpdfapi/parser/cpdf_stream_acc.h
@@ -16,7 +16,7 @@
#include "core/fxcrt/retain_ptr.h"
#include "third_party/base/span.h"
-class CPDF_StreamAcc : public Retainable {
+class CPDF_StreamAcc final : public Retainable {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
diff --git a/core/fpdfapi/parser/cpdf_stream_acc_unittest.cpp b/core/fpdfapi/parser/cpdf_stream_acc_unittest.cpp
index dcebf0b..1fbb342 100644
--- a/core/fpdfapi/parser/cpdf_stream_acc_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_stream_acc_unittest.cpp
@@ -12,7 +12,7 @@
namespace {
-class InvalidStream : public IFX_SeekableReadStream {
+class InvalidStream final : public IFX_SeekableReadStream {
public:
InvalidStream() = default;
~InvalidStream() override = default;
diff --git a/core/fpdfapi/parser/cpdf_string.h b/core/fpdfapi/parser/cpdf_string.h
index 144fe64..75cc3c4 100644
--- a/core/fpdfapi/parser/cpdf_string.h
+++ b/core/fpdfapi/parser/cpdf_string.h
@@ -15,7 +15,7 @@
#include "core/fxcrt/string_pool_template.h"
#include "core/fxcrt/weak_ptr.h"
-class CPDF_String : public CPDF_Object {
+class CPDF_String final : public CPDF_Object {
public:
CPDF_String();
CPDF_String(WeakPtr<ByteStringPool> pPool, const ByteString& str, bool bHex);
diff --git a/core/fpdfapi/parser/cpdf_syntax_parser.cpp b/core/fpdfapi/parser/cpdf_syntax_parser.cpp
index 65a8d78..bba96d9 100644
--- a/core/fpdfapi/parser/cpdf_syntax_parser.cpp
+++ b/core/fpdfapi/parser/cpdf_syntax_parser.cpp
@@ -34,7 +34,7 @@
enum class ReadStatus { Normal, Backslash, Octal, FinishOctal, CarriageReturn };
-class ReadableSubStream : public IFX_SeekableReadStream {
+class ReadableSubStream final : public IFX_SeekableReadStream {
public:
ReadableSubStream(const RetainPtr<IFX_SeekableReadStream>& pFileRead,
FX_FILESIZE part_offset,
diff --git a/core/fpdfapi/render/cpdf_dibbase.h b/core/fpdfapi/render/cpdf_dibbase.h
index a100847..423069d 100644
--- a/core/fpdfapi/render/cpdf_dibbase.h
+++ b/core/fpdfapi/render/cpdf_dibbase.h
@@ -39,7 +39,7 @@
#define FPDF_HUGE_IMAGE_SIZE 60000000
-class CPDF_DIBBase : public CFX_DIBBase {
+class CPDF_DIBBase final : public CFX_DIBBase {
public:
enum class LoadState : uint8_t { kFail, kSuccess, kContinue };
diff --git a/core/fpdfapi/render/cpdf_dibtransferfunc.h b/core/fpdfapi/render/cpdf_dibtransferfunc.h
index 61abd2e..62e0157 100644
--- a/core/fpdfapi/render/cpdf_dibtransferfunc.h
+++ b/core/fpdfapi/render/cpdf_dibtransferfunc.h
@@ -15,7 +15,7 @@
class CPDF_TransferFunc;
-class CPDF_DIBTransferFunc : public CFX_FilteredDIB {
+class CPDF_DIBTransferFunc final : public CFX_FilteredDIB {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
diff --git a/core/fpdfapi/render/cpdf_transferfunc.h b/core/fpdfapi/render/cpdf_transferfunc.h
index e896472..d45184e 100644
--- a/core/fpdfapi/render/cpdf_transferfunc.h
+++ b/core/fpdfapi/render/cpdf_transferfunc.h
@@ -14,7 +14,7 @@
class CPDF_Document;
class CFX_DIBBase;
-class CPDF_TransferFunc : public Retainable {
+class CPDF_TransferFunc final : public Retainable {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
diff --git a/core/fpdfapi/render/cpdf_type3cache.h b/core/fpdfapi/render/cpdf_type3cache.h
index f0bfbd6..de802c5 100644
--- a/core/fpdfapi/render/cpdf_type3cache.h
+++ b/core/fpdfapi/render/cpdf_type3cache.h
@@ -18,7 +18,7 @@
class CPDF_Type3Glyphs;
-class CPDF_Type3Cache : public Retainable {
+class CPDF_Type3Cache final : public Retainable {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
diff --git a/core/fpdfdoc/cpdf_occontext.h b/core/fpdfdoc/cpdf_occontext.h
index 6776361..16b28ba 100644
--- a/core/fpdfdoc/cpdf_occontext.h
+++ b/core/fpdfdoc/cpdf_occontext.h
@@ -17,7 +17,7 @@
class CPDF_Document;
class CPDF_PageObject;
-class CPDF_OCContext : public Retainable {
+class CPDF_OCContext final : public Retainable {
public:
enum UsageType { View = 0, Design, Print, Export };
diff --git a/core/fpdfdoc/cpdf_structelement.h b/core/fpdfdoc/cpdf_structelement.h
index 79e8dd9..355599f 100644
--- a/core/fpdfdoc/cpdf_structelement.h
+++ b/core/fpdfdoc/cpdf_structelement.h
@@ -34,7 +34,7 @@
uint32_t m_ContentId; // For PageContent, StreamContent.
};
-class CPDF_StructElement : public Retainable {
+class CPDF_StructElement final : public Retainable {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
diff --git a/core/fpdfdoc/cpvt_floatrect.h b/core/fpdfdoc/cpvt_floatrect.h
index c5eb220..4dca3aa 100644
--- a/core/fpdfdoc/cpvt_floatrect.h
+++ b/core/fpdfdoc/cpvt_floatrect.h
@@ -9,7 +9,7 @@
#include "core/fxcrt/fx_coordinates.h"
-class CPVT_FloatRect : public CFX_FloatRect {
+class CPVT_FloatRect final : public CFX_FloatRect {
public:
CPVT_FloatRect() { left = top = right = bottom = 0.0f; }
diff --git a/core/fpdfdoc/cpvt_fontmap.h b/core/fpdfdoc/cpvt_fontmap.h
index f1a2775..6d8ca06 100644
--- a/core/fpdfdoc/cpvt_fontmap.h
+++ b/core/fpdfdoc/cpvt_fontmap.h
@@ -17,7 +17,7 @@
class CPDF_Dictionary;
class CPDF_Font;
-class CPVT_FontMap : public IPVT_FontMap {
+class CPVT_FontMap final : public IPVT_FontMap {
public:
CPVT_FontMap(CPDF_Document* pDoc,
CPDF_Dictionary* pResDict,
diff --git a/core/fpdftext/cpdf_linkextract_unittest.cpp b/core/fpdftext/cpdf_linkextract_unittest.cpp
index 30438e6..f4bd197 100644
--- a/core/fpdftext/cpdf_linkextract_unittest.cpp
+++ b/core/fpdftext/cpdf_linkextract_unittest.cpp
@@ -7,7 +7,7 @@
#include "testing/gtest/include/gtest/gtest.h"
// Class to help test functions in CPDF_LinkExtract class.
-class CPDF_TestLinkExtract : public CPDF_LinkExtract {
+class CPDF_TestLinkExtract final : public CPDF_LinkExtract {
public:
CPDF_TestLinkExtract() : CPDF_LinkExtract(nullptr) {}
diff --git a/core/fxcodec/bmp/cfx_bmpcontext.h b/core/fxcodec/bmp/cfx_bmpcontext.h
index 198d080..89e6463 100644
--- a/core/fxcodec/bmp/cfx_bmpcontext.h
+++ b/core/fxcodec/bmp/cfx_bmpcontext.h
@@ -10,7 +10,7 @@
#include "core/fxcodec/bmp/cfx_bmpdecompressor.h"
#include "core/fxcodec/bmp/fx_bmp.h"
-class CFX_BmpContext : public CCodec_BmpModule::Context {
+class CFX_BmpContext final : public CCodec_BmpModule::Context {
public:
CFX_BmpContext(CCodec_BmpModule* pModule,
CCodec_BmpModule::Delegate* pDelegate);
diff --git a/core/fxcodec/codec/ccodec_pngmodule.cpp b/core/fxcodec/codec/ccodec_pngmodule.cpp
index 98db4e2..2c22f6b 100644
--- a/core/fxcodec/codec/ccodec_pngmodule.cpp
+++ b/core/fxcodec/codec/ccodec_pngmodule.cpp
@@ -23,7 +23,7 @@
#define PNG_ERROR_SIZE 256
-class CPngContext : public CCodec_PngModule::Context {
+class CPngContext final : public CCodec_PngModule::Context {
public:
CPngContext(CCodec_PngModule* pModule, CCodec_PngModule::Delegate* pDelegate);
~CPngContext() override;
diff --git a/core/fxcodec/codec/ccodec_tiffmodule.cpp b/core/fxcodec/codec/ccodec_tiffmodule.cpp
index 5f74b28..78f631c 100644
--- a/core/fxcodec/codec/ccodec_tiffmodule.cpp
+++ b/core/fxcodec/codec/ccodec_tiffmodule.cpp
@@ -32,7 +32,7 @@
} // namespace
-class CTiffContext : public CCodec_TiffModule::Context {
+class CTiffContext final : public CCodec_TiffModule::Context {
public:
CTiffContext() = default;
~CTiffContext() override = default;
diff --git a/core/fxcodec/codec/cfx_codec_memory.h b/core/fxcodec/codec/cfx_codec_memory.h
index e726dc5..2907e89 100644
--- a/core/fxcodec/codec/cfx_codec_memory.h
+++ b/core/fxcodec/codec/cfx_codec_memory.h
@@ -8,7 +8,7 @@
#include "core/fxcrt/retain_ptr.h"
#include "third_party/base/span.h"
-class CFX_CodecMemory : public Retainable {
+class CFX_CodecMemory final : public Retainable {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
diff --git a/core/fxcodec/codec/fx_codec.cpp b/core/fxcodec/codec/fx_codec.cpp
index 54245a5..053aa71 100644
--- a/core/fxcodec/codec/fx_codec.cpp
+++ b/core/fxcodec/codec/fx_codec.cpp
@@ -1517,7 +1517,7 @@
}
#endif // PDF_ENABLE_XFA
-class CCodec_RLScanlineDecoder : public CCodec_ScanlineDecoder {
+class CCodec_RLScanlineDecoder final : public CCodec_ScanlineDecoder {
public:
CCodec_RLScanlineDecoder();
~CCodec_RLScanlineDecoder() override;
diff --git a/core/fxcodec/codec/fx_codec_fax.cpp b/core/fxcodec/codec/fx_codec_fax.cpp
index aabc110..c6e71b6 100644
--- a/core/fxcodec/codec/fx_codec_fax.cpp
+++ b/core/fxcodec/codec/fx_codec_fax.cpp
@@ -447,7 +447,7 @@
} // namespace
-class CCodec_FaxDecoder : public CCodec_ScanlineDecoder {
+class CCodec_FaxDecoder final : public CCodec_ScanlineDecoder {
public:
CCodec_FaxDecoder(const uint8_t* src_buf,
uint32_t src_size,
diff --git a/core/fxcodec/codec/fx_codec_flate.cpp b/core/fxcodec/codec/fx_codec_flate.cpp
index 39d27a4..11bdf67 100644
--- a/core/fxcodec/codec/fx_codec_flate.cpp
+++ b/core/fxcodec/codec/fx_codec_flate.cpp
@@ -623,7 +623,7 @@
return FlateGetPossiblyTruncatedTotalIn(m_pFlate.get());
}
-class CCodec_FlatePredictorScanlineDecoder
+class CCodec_FlatePredictorScanlineDecoder final
: public CCodec_FlateScanlineDecoder {
public:
CCodec_FlatePredictorScanlineDecoder(const uint8_t* src_buf,
diff --git a/core/fxcodec/codec/fx_codec_jpeg.cpp b/core/fxcodec/codec/fx_codec_jpeg.cpp
index 4c37465..d8e94b0 100644
--- a/core/fxcodec/codec/fx_codec_jpeg.cpp
+++ b/core/fxcodec/codec/fx_codec_jpeg.cpp
@@ -29,7 +29,7 @@
#endif
} // extern "C"
-class CJpegContext : public CCodec_JpegModule::Context {
+class CJpegContext final : public CCodec_JpegModule::Context {
public:
CJpegContext();
~CJpegContext() override;
@@ -162,7 +162,7 @@
return true;
}
-class CCodec_JpegDecoder : public CCodec_ScanlineDecoder {
+class CCodec_JpegDecoder final : public CCodec_ScanlineDecoder {
public:
CCodec_JpegDecoder();
~CCodec_JpegDecoder() override;
diff --git a/core/fxcodec/gif/cfx_gifcontext_unittest.cpp b/core/fxcodec/gif/cfx_gifcontext_unittest.cpp
index 0d8941f..25f12b2 100644
--- a/core/fxcodec/gif/cfx_gifcontext_unittest.cpp
+++ b/core/fxcodec/gif/cfx_gifcontext_unittest.cpp
@@ -7,7 +7,7 @@
#include "core/fxcrt/unowned_ptr.h"
#include "testing/gtest/include/gtest/gtest.h"
-class CFX_GifContextForTest : public CFX_GifContext {
+class CFX_GifContextForTest final : public CFX_GifContext {
public:
CFX_GifContextForTest(CCodec_GifModule* gif_module,
CCodec_GifModule::Delegate* delegate)
diff --git a/core/fxcrt/cfx_fileaccess_posix.h b/core/fxcrt/cfx_fileaccess_posix.h
index 381f115..7b8230d 100644
--- a/core/fxcrt/cfx_fileaccess_posix.h
+++ b/core/fxcrt/cfx_fileaccess_posix.h
@@ -16,7 +16,7 @@
#error "Included on the wrong platform"
#endif
-class CFX_FileAccess_Posix : public FileAccessIface {
+class CFX_FileAccess_Posix final : public FileAccessIface {
public:
CFX_FileAccess_Posix();
~CFX_FileAccess_Posix() override;
diff --git a/core/fxcrt/cfx_fileaccess_windows.h b/core/fxcrt/cfx_fileaccess_windows.h
index 4352a2b..fad2ed6 100644
--- a/core/fxcrt/cfx_fileaccess_windows.h
+++ b/core/fxcrt/cfx_fileaccess_windows.h
@@ -14,7 +14,7 @@
#error "Included on the wrong platform"
#endif
-class CFX_FileAccess_Windows : public FileAccessIface {
+class CFX_FileAccess_Windows final : public FileAccessIface {
public:
CFX_FileAccess_Windows();
~CFX_FileAccess_Windows() override;
diff --git a/core/fxcrt/cfx_memorystream.h b/core/fxcrt/cfx_memorystream.h
index 99e39a8..c09c390 100644
--- a/core/fxcrt/cfx_memorystream.h
+++ b/core/fxcrt/cfx_memorystream.h
@@ -13,7 +13,7 @@
#include "core/fxcrt/fx_stream.h"
#include "core/fxcrt/retain_ptr.h"
-class CFX_MemoryStream : public IFX_SeekableStream {
+class CFX_MemoryStream final : public IFX_SeekableStream {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
diff --git a/core/fxcrt/cfx_seekablemultistream.h b/core/fxcrt/cfx_seekablemultistream.h
index 4bd26b9..ac15386 100644
--- a/core/fxcrt/cfx_seekablemultistream.h
+++ b/core/fxcrt/cfx_seekablemultistream.h
@@ -15,7 +15,7 @@
class CPDF_Stream;
class CPDF_StreamAcc;
-class CFX_SeekableMultiStream : public IFX_SeekableStream {
+class CFX_SeekableMultiStream final : public IFX_SeekableStream {
public:
explicit CFX_SeekableMultiStream(
const std::vector<const CPDF_Stream*>& streams);
diff --git a/core/fxcrt/cfx_seekablestreamproxy.h b/core/fxcrt/cfx_seekablestreamproxy.h
index 9b6b3a1..b193b18 100644
--- a/core/fxcrt/cfx_seekablestreamproxy.h
+++ b/core/fxcrt/cfx_seekablestreamproxy.h
@@ -13,7 +13,7 @@
#include "core/fxcrt/fx_system.h"
#include "core/fxcrt/retain_ptr.h"
-class CFX_SeekableStreamProxy : public IFX_SeekableReadStream {
+class CFX_SeekableStreamProxy final : public IFX_SeekableReadStream {
public:
enum class From {
Begin = 0,
diff --git a/core/fxcrt/cfx_widetextbuf.h b/core/fxcrt/cfx_widetextbuf.h
index 84553a3..483f75d 100644
--- a/core/fxcrt/cfx_widetextbuf.h
+++ b/core/fxcrt/cfx_widetextbuf.h
@@ -11,7 +11,7 @@
#include "core/fxcrt/fx_string.h"
#include "core/fxcrt/fx_system.h"
-class CFX_WideTextBuf : public CFX_BinaryBuf {
+class CFX_WideTextBuf final : public CFX_BinaryBuf {
public:
void AppendChar(wchar_t wch);
size_t GetLength() const override;
diff --git a/core/fxcrt/css/cfx_csscolorvalue.h b/core/fxcrt/css/cfx_csscolorvalue.h
index f59c0c5..0156caa 100644
--- a/core/fxcrt/css/cfx_csscolorvalue.h
+++ b/core/fxcrt/css/cfx_csscolorvalue.h
@@ -9,7 +9,7 @@
#include "core/fxcrt/css/cfx_cssvalue.h"
-class CFX_CSSColorValue : public CFX_CSSValue {
+class CFX_CSSColorValue final : public CFX_CSSValue {
public:
explicit CFX_CSSColorValue(FX_ARGB color);
~CFX_CSSColorValue() override;
diff --git a/core/fxcrt/css/cfx_csscomputedstyle.h b/core/fxcrt/css/cfx_csscomputedstyle.h
index 5080a7a..f97f3f1 100644
--- a/core/fxcrt/css/cfx_csscomputedstyle.h
+++ b/core/fxcrt/css/cfx_csscomputedstyle.h
@@ -15,7 +15,7 @@
class CFX_CSSValueList;
-class CFX_CSSComputedStyle : public Retainable {
+class CFX_CSSComputedStyle final : public Retainable {
public:
class InheritedData {
public:
diff --git a/core/fxcrt/css/cfx_cssenumvalue.h b/core/fxcrt/css/cfx_cssenumvalue.h
index 0d6b87e..c397761 100644
--- a/core/fxcrt/css/cfx_cssenumvalue.h
+++ b/core/fxcrt/css/cfx_cssenumvalue.h
@@ -9,7 +9,7 @@
#include "core/fxcrt/css/cfx_cssvalue.h"
-class CFX_CSSEnumValue : public CFX_CSSValue {
+class CFX_CSSEnumValue final : public CFX_CSSValue {
public:
explicit CFX_CSSEnumValue(CFX_CSSPropertyValue value);
~CFX_CSSEnumValue() override;
diff --git a/core/fxcrt/css/cfx_cssnumbervalue.h b/core/fxcrt/css/cfx_cssnumbervalue.h
index a49328d..a977750 100644
--- a/core/fxcrt/css/cfx_cssnumbervalue.h
+++ b/core/fxcrt/css/cfx_cssnumbervalue.h
@@ -23,7 +23,7 @@
Picas,
};
-class CFX_CSSNumberValue : public CFX_CSSValue {
+class CFX_CSSNumberValue final : public CFX_CSSValue {
public:
CFX_CSSNumberValue(CFX_CSSNumberType type, float value);
~CFX_CSSNumberValue() override;
diff --git a/core/fxcrt/css/cfx_cssstringvalue.h b/core/fxcrt/css/cfx_cssstringvalue.h
index d72078a..d49393c 100644
--- a/core/fxcrt/css/cfx_cssstringvalue.h
+++ b/core/fxcrt/css/cfx_cssstringvalue.h
@@ -9,7 +9,7 @@
#include "core/fxcrt/css/cfx_cssvalue.h"
-class CFX_CSSStringValue : public CFX_CSSValue {
+class CFX_CSSStringValue final : public CFX_CSSValue {
public:
explicit CFX_CSSStringValue(const WideString& value);
~CFX_CSSStringValue() override;
diff --git a/core/fxcrt/css/cfx_cssvaluelist.h b/core/fxcrt/css/cfx_cssvaluelist.h
index d2b0c6e..5e04c64 100644
--- a/core/fxcrt/css/cfx_cssvaluelist.h
+++ b/core/fxcrt/css/cfx_cssvaluelist.h
@@ -11,7 +11,7 @@
#include "core/fxcrt/css/cfx_cssvalue.h"
-class CFX_CSSValueList : public CFX_CSSValue {
+class CFX_CSSValueList final : public CFX_CSSValue {
public:
explicit CFX_CSSValueList(std::vector<RetainPtr<CFX_CSSValue>>& list);
~CFX_CSSValueList() override;
diff --git a/core/fxcrt/fx_coordinates.h b/core/fxcrt/fx_coordinates.h
index f84c5ee..05e60c4 100644
--- a/core/fxcrt/fx_coordinates.h
+++ b/core/fxcrt/fx_coordinates.h
@@ -132,7 +132,7 @@
using CFX_SizeF = CFX_STemplate<float>;
template <class BaseType>
-class CFX_VTemplate : public CFX_PTemplate<BaseType> {
+class CFX_VTemplate final : public CFX_PTemplate<BaseType> {
public:
using CFX_PTemplate<BaseType>::x;
using CFX_PTemplate<BaseType>::y;
diff --git a/core/fxcrt/observable_unittest.cpp b/core/fxcrt/observable_unittest.cpp
index 63e61b8..5c55805 100644
--- a/core/fxcrt/observable_unittest.cpp
+++ b/core/fxcrt/observable_unittest.cpp
@@ -12,7 +12,7 @@
namespace fxcrt {
namespace {
-class PseudoObservable : public Observable<PseudoObservable> {
+class PseudoObservable final : public Observable<PseudoObservable> {
public:
PseudoObservable() {}
int SomeMethod() { return 42; }
diff --git a/core/fxcrt/shared_copy_on_write_unittest.cpp b/core/fxcrt/shared_copy_on_write_unittest.cpp
index 57e33d1..6764c69 100644
--- a/core/fxcrt/shared_copy_on_write_unittest.cpp
+++ b/core/fxcrt/shared_copy_on_write_unittest.cpp
@@ -29,7 +29,7 @@
std::map<std::string, int> destruction_counts_;
};
-class Object : public Retainable {
+class Object final : public Retainable {
public:
Object(Observer* observer, const std::string& name)
: name_(name), observer_(observer) {
diff --git a/core/fxcrt/xml/cfx_xmlchardata.h b/core/fxcrt/xml/cfx_xmlchardata.h
index 9e5669a..71e9407 100644
--- a/core/fxcrt/xml/cfx_xmlchardata.h
+++ b/core/fxcrt/xml/cfx_xmlchardata.h
@@ -14,7 +14,7 @@
class CFX_XMLDocument;
-class CFX_XMLCharData : public CFX_XMLText {
+class CFX_XMLCharData final : public CFX_XMLText {
public:
explicit CFX_XMLCharData(const WideString& wsCData);
~CFX_XMLCharData() override;
diff --git a/core/fxcrt/xml/cfx_xmlelement.h b/core/fxcrt/xml/cfx_xmlelement.h
index 3948660..f54587c 100644
--- a/core/fxcrt/xml/cfx_xmlelement.h
+++ b/core/fxcrt/xml/cfx_xmlelement.h
@@ -16,7 +16,7 @@
class CFX_XMLDocument;
-class CFX_XMLElement : public CFX_XMLNode {
+class CFX_XMLElement final : public CFX_XMLNode {
public:
explicit CFX_XMLElement(const WideString& wsTag);
~CFX_XMLElement() override;
diff --git a/core/fxcrt/xml/cfx_xmlinstruction.h b/core/fxcrt/xml/cfx_xmlinstruction.h
index 8962d73..18f84c3 100644
--- a/core/fxcrt/xml/cfx_xmlinstruction.h
+++ b/core/fxcrt/xml/cfx_xmlinstruction.h
@@ -15,7 +15,7 @@
class CFX_XMLDocument;
-class CFX_XMLInstruction : public CFX_XMLNode {
+class CFX_XMLInstruction final : public CFX_XMLNode {
public:
explicit CFX_XMLInstruction(const WideString& wsTarget);
~CFX_XMLInstruction() override;
diff --git a/core/fxge/agg/fx_agg_driver.h b/core/fxge/agg/fx_agg_driver.h
index 167b211..6d6b988 100644
--- a/core/fxge/agg/fx_agg_driver.h
+++ b/core/fxge/agg/fx_agg_driver.h
@@ -30,7 +30,7 @@
agg::path_storage m_PathData;
};
-class CFX_AggDeviceDriver : public RenderDeviceDriverIface {
+class CFX_AggDeviceDriver final : public RenderDeviceDriverIface {
public:
CFX_AggDeviceDriver(const RetainPtr<CFX_DIBitmap>& pBitmap,
bool bRgbByteOrder,
diff --git a/core/fxge/android/cfx_androidfontinfo.h b/core/fxge/android/cfx_androidfontinfo.h
index 62ad718..f671bfb 100644
--- a/core/fxge/android/cfx_androidfontinfo.h
+++ b/core/fxge/android/cfx_androidfontinfo.h
@@ -14,7 +14,7 @@
class CFPF_SkiaFontMgr;
-class CFX_AndroidFontInfo : public SystemFontInfoIface {
+class CFX_AndroidFontInfo final : public SystemFontInfoIface {
public:
CFX_AndroidFontInfo();
~CFX_AndroidFontInfo() override;
diff --git a/core/fxge/apple/fx_mac_imp.cpp b/core/fxge/apple/fx_mac_imp.cpp
index f4a62a6..62ac33c 100644
--- a/core/fxge/apple/fx_mac_imp.cpp
+++ b/core/fxge/apple/fx_mac_imp.cpp
@@ -35,7 +35,7 @@
{"Times-Italic", "Times New Roman Italic"},
};
-class CFX_MacFontInfo : public CFX_FolderFontInfo {
+class CFX_MacFontInfo final : public CFX_FolderFontInfo {
public:
CFX_MacFontInfo() {}
~CFX_MacFontInfo() override {}
diff --git a/core/fxge/cfx_defaultrenderdevice.h b/core/fxge/cfx_defaultrenderdevice.h
index 07e3cc5..937088f 100644
--- a/core/fxge/cfx_defaultrenderdevice.h
+++ b/core/fxge/cfx_defaultrenderdevice.h
@@ -12,7 +12,7 @@
class SkPictureRecorder;
-class CFX_DefaultRenderDevice : public CFX_RenderDevice {
+class CFX_DefaultRenderDevice final : public CFX_RenderDevice {
public:
CFX_DefaultRenderDevice();
~CFX_DefaultRenderDevice() override;
diff --git a/core/fxge/cfx_graphstatedata.h b/core/fxge/cfx_graphstatedata.h
index 1afff83..a907f2a 100644
--- a/core/fxge/cfx_graphstatedata.h
+++ b/core/fxge/cfx_graphstatedata.h
@@ -10,7 +10,7 @@
#include "core/fxcrt/fx_system.h"
#include "core/fxcrt/retain_ptr.h"
-class CFX_GraphStateData : public Retainable {
+class CFX_GraphStateData final : public Retainable {
public:
enum LineCap { LineCapButt = 0, LineCapRound = 1, LineCapSquare = 2 };
diff --git a/core/fxge/cfx_pathdata.h b/core/fxge/cfx_pathdata.h
index 5c2be62..9d96407 100644
--- a/core/fxge/cfx_pathdata.h
+++ b/core/fxge/cfx_pathdata.h
@@ -29,7 +29,7 @@
bool m_CloseFigure;
};
-class CFX_PathData : public Retainable {
+class CFX_PathData final : public Retainable {
public:
CFX_PathData();
CFX_PathData(const CFX_PathData& src);
diff --git a/core/fxge/cfx_unicodeencodingex.h b/core/fxge/cfx_unicodeencodingex.h
index 5632d96..d9d349a 100644
--- a/core/fxge/cfx_unicodeencodingex.h
+++ b/core/fxge/cfx_unicodeencodingex.h
@@ -15,7 +15,7 @@
#include "core/fxge/cfx_unicodeencoding.h"
#include "core/fxge/fx_dib.h"
-class CFX_UnicodeEncodingEx : public CFX_UnicodeEncoding {
+class CFX_UnicodeEncodingEx final : public CFX_UnicodeEncoding {
public:
CFX_UnicodeEncodingEx(CFX_Font* pFont, uint32_t EncodingID);
~CFX_UnicodeEncodingEx() override;
diff --git a/core/fxge/cfx_windowsrenderdevice.h b/core/fxge/cfx_windowsrenderdevice.h
index 9701ca5..4470a74 100644
--- a/core/fxge/cfx_windowsrenderdevice.h
+++ b/core/fxge/cfx_windowsrenderdevice.h
@@ -36,7 +36,7 @@
#endif
extern WindowsPrintMode g_pdfium_print_mode;
-class CFX_WindowsRenderDevice : public CFX_RenderDevice {
+class CFX_WindowsRenderDevice final : public CFX_RenderDevice {
public:
static RenderDeviceDriverIface* CreateDriver(HDC hDC);
diff --git a/core/fxge/dib/cfx_bitmapcomposer.h b/core/fxge/dib/cfx_bitmapcomposer.h
index f1bf0e9..50a53db 100644
--- a/core/fxge/dib/cfx_bitmapcomposer.h
+++ b/core/fxge/dib/cfx_bitmapcomposer.h
@@ -18,7 +18,7 @@
class CFX_ClipRgn;
class CFX_DIBitmap;
-class CFX_BitmapComposer : public ScanlineComposerIface {
+class CFX_BitmapComposer final : public ScanlineComposerIface {
public:
CFX_BitmapComposer();
~CFX_BitmapComposer() override;
diff --git a/core/fxge/dib/cfx_bitmapstorer.h b/core/fxge/dib/cfx_bitmapstorer.h
index 7d3482f..3da1f70 100644
--- a/core/fxge/dib/cfx_bitmapstorer.h
+++ b/core/fxge/dib/cfx_bitmapstorer.h
@@ -16,7 +16,7 @@
#include "core/fxge/dib/scanlinecomposer_iface.h"
#include "third_party/base/stl_util.h"
-class CFX_BitmapStorer : public ScanlineComposerIface {
+class CFX_BitmapStorer final : public ScanlineComposerIface {
public:
CFX_BitmapStorer();
~CFX_BitmapStorer() override;
diff --git a/core/fxge/dib/cfx_imagetransformer.cpp b/core/fxge/dib/cfx_imagetransformer.cpp
index 0042462..66446ce 100644
--- a/core/fxge/dib/cfx_imagetransformer.cpp
+++ b/core/fxge/dib/cfx_imagetransformer.cpp
@@ -180,7 +180,7 @@
const int f;
};
-class CFX_BilinearMatrix : public CPDF_FixedMatrix {
+class CFX_BilinearMatrix final : public CPDF_FixedMatrix {
public:
explicit CFX_BilinearMatrix(const CFX_Matrix& src) : CPDF_FixedMatrix(src) {}
diff --git a/core/fxge/fx_ge_linux.cpp b/core/fxge/fx_ge_linux.cpp
index d2da781..4d4f4e6 100644
--- a/core/fxge/fx_ge_linux.cpp
+++ b/core/fxge/fx_ge_linux.cpp
@@ -66,7 +66,7 @@
return 2;
}
-class CFX_LinuxFontInfo : public CFX_FolderFontInfo {
+class CFX_LinuxFontInfo final : public CFX_FolderFontInfo {
public:
CFX_LinuxFontInfo() {}
~CFX_LinuxFontInfo() override {}
diff --git a/core/fxge/skia/fx_skia_device.h b/core/fxge/skia/fx_skia_device.h
index ce6ca6b..4baeacb 100644
--- a/core/fxge/skia/fx_skia_device.h
+++ b/core/fxge/skia/fx_skia_device.h
@@ -22,7 +22,7 @@
class SkiaState;
struct SkIRect;
-class CFX_SkiaDeviceDriver : public RenderDeviceDriverIface {
+class CFX_SkiaDeviceDriver final : public RenderDeviceDriverIface {
public:
CFX_SkiaDeviceDriver(const RetainPtr<CFX_DIBitmap>& pBitmap,
bool bRgbByteOrder,
diff --git a/core/fxge/win32/cfx_windowsdib.h b/core/fxge/win32/cfx_windowsdib.h
index c64fc7d..4b7de7d 100644
--- a/core/fxge/win32/cfx_windowsdib.h
+++ b/core/fxge/win32/cfx_windowsdib.h
@@ -24,7 +24,7 @@
const wchar_t* path_name;
};
-class CFX_WindowsDIB : public CFX_DIBitmap {
+class CFX_WindowsDIB final : public CFX_DIBitmap {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
diff --git a/core/fxge/win32/cpsoutput.h b/core/fxge/win32/cpsoutput.h
index 49317a6..04e5ac1 100644
--- a/core/fxge/win32/cpsoutput.h
+++ b/core/fxge/win32/cpsoutput.h
@@ -12,7 +12,7 @@
#include "core/fxcrt/fx_stream.h"
#include "core/fxcrt/fx_system.h"
-class CPSOutput : public IFX_WriteStream {
+class CPSOutput final : public IFX_WriteStream {
public:
enum class OutputMode { kExtEscape, kGdiComment };
diff --git a/core/fxge/win32/win32_int.h b/core/fxge/win32/win32_int.h
index 76a1d88..0bc68c4 100644
--- a/core/fxge/win32/win32_int.h
+++ b/core/fxge/win32/win32_int.h
@@ -188,7 +188,7 @@
int m_RenderCaps;
};
-class CGdiDisplayDriver : public CGdiDeviceDriver {
+class CGdiDisplayDriver final : public CGdiDeviceDriver {
public:
explicit CGdiDisplayDriver(HDC hDC);
~CGdiDisplayDriver() override;
@@ -229,7 +229,7 @@
int render_flags);
};
-class CGdiPrinterDriver : public CGdiDeviceDriver {
+class CGdiPrinterDriver final : public CGdiDeviceDriver {
public:
explicit CGdiPrinterDriver(HDC hDC);
~CGdiPrinterDriver() override;
@@ -269,7 +269,7 @@
const int m_VertSize;
};
-class CPSPrinterDriver : public RenderDeviceDriverIface {
+class CPSPrinterDriver final : public RenderDeviceDriverIface {
public:
CPSPrinterDriver(HDC hDC, WindowsPrintMode mode, bool bCmykOutput);
~CPSPrinterDriver() override;
@@ -334,7 +334,7 @@
CFX_PSRenderer m_PSRenderer;
};
-class CTextOnlyPrinterDriver : public RenderDeviceDriverIface {
+class CTextOnlyPrinterDriver final : public RenderDeviceDriverIface {
public:
explicit CTextOnlyPrinterDriver(HDC hDC);
~CTextOnlyPrinterDriver() override;
diff --git a/fpdfsdk/cpdfsdk_baannothandler.h b/fpdfsdk/cpdfsdk_baannothandler.h
index 3369839..53c06f1 100644
--- a/fpdfsdk/cpdfsdk_baannothandler.h
+++ b/fpdfsdk/cpdfsdk_baannothandler.h
@@ -22,7 +22,7 @@
class CXFA_FFWidget;
#endif // PDF_ENABLE_XFA
-class CPDFSDK_BAAnnotHandler : public IPDFSDK_AnnotHandler {
+class CPDFSDK_BAAnnotHandler final : public IPDFSDK_AnnotHandler {
public:
CPDFSDK_BAAnnotHandler();
~CPDFSDK_BAAnnotHandler() override;
diff --git a/fpdfsdk/cpdfsdk_filewriteadapter.h b/fpdfsdk/cpdfsdk_filewriteadapter.h
index 3d5dbfd..beae403 100644
--- a/fpdfsdk/cpdfsdk_filewriteadapter.h
+++ b/fpdfsdk/cpdfsdk_filewriteadapter.h
@@ -12,7 +12,7 @@
#include "core/fxcrt/unowned_ptr.h"
#include "public/fpdf_save.h"
-class CPDFSDK_FileWriteAdapter : public IFX_WriteStream {
+class CPDFSDK_FileWriteAdapter final : public IFX_WriteStream {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
diff --git a/fpdfsdk/cpdfsdk_formfillenvironment.h b/fpdfsdk/cpdfsdk_formfillenvironment.h
index 8590b34..7cdf32e 100644
--- a/fpdfsdk/cpdfsdk_formfillenvironment.h
+++ b/fpdfsdk/cpdfsdk_formfillenvironment.h
@@ -44,7 +44,7 @@
// hierarcy back to the form fill environment itself, so as to flag any
// lingering lifetime issues via the memory tools.
-class CPDFSDK_FormFillEnvironment
+class CPDFSDK_FormFillEnvironment final
: public Observable<CPDFSDK_FormFillEnvironment> {
public:
CPDFSDK_FormFillEnvironment(CPDF_Document* pDoc, FPDF_FORMFILLINFO* pFFinfo);
diff --git a/fpdfsdk/cpdfsdk_helpers.cpp b/fpdfsdk/cpdfsdk_helpers.cpp
index 943e3a3..a0edb58 100644
--- a/fpdfsdk/cpdfsdk_helpers.cpp
+++ b/fpdfsdk/cpdfsdk_helpers.cpp
@@ -39,7 +39,7 @@
}
#ifdef PDF_ENABLE_XFA
-class FPDF_FileHandlerContext : public IFX_SeekableStream {
+class FPDF_FileHandlerContext final : public IFX_SeekableStream {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
diff --git a/fpdfsdk/cpdfsdk_interform.h b/fpdfsdk/cpdfsdk_interform.h
index c44688f..bd1a760 100644
--- a/fpdfsdk/cpdfsdk_interform.h
+++ b/fpdfsdk/cpdfsdk_interform.h
@@ -29,7 +29,7 @@
class CXFA_FFWidget;
#endif // PDF_ENABLE_XFA
-class CPDFSDK_InterForm : public IPDF_FormNotify {
+class CPDFSDK_InterForm final : public IPDF_FormNotify {
public:
explicit CPDFSDK_InterForm(CPDFSDK_FormFillEnvironment* pFormFillEnv);
~CPDFSDK_InterForm() override;
diff --git a/fpdfsdk/cpdfsdk_widget.h b/fpdfsdk/cpdfsdk_widget.h
index f3bdc54..a1ff923 100644
--- a/fpdfsdk/cpdfsdk_widget.h
+++ b/fpdfsdk/cpdfsdk_widget.h
@@ -35,7 +35,7 @@
class CXFA_FFWidgetHandler;
#endif // PDF_ENABLE_XFA
-class CPDFSDK_Widget : public CPDFSDK_BAAnnot {
+class CPDFSDK_Widget final : public CPDFSDK_BAAnnot {
public:
#ifdef PDF_ENABLE_XFA
CXFA_FFWidget* GetMixXFAWidget() const;
diff --git a/fpdfsdk/cpdfsdk_widgethandler.h b/fpdfsdk/cpdfsdk_widgethandler.h
index 80323de..82ea549 100644
--- a/fpdfsdk/cpdfsdk_widgethandler.h
+++ b/fpdfsdk/cpdfsdk_widgethandler.h
@@ -23,7 +23,7 @@
class CXFA_FFWidget;
#endif // PDF_ENABLE_XFA
-class CPDFSDK_WidgetHandler : public IPDFSDK_AnnotHandler {
+class CPDFSDK_WidgetHandler final : public IPDFSDK_AnnotHandler {
public:
explicit CPDFSDK_WidgetHandler(CPDFSDK_FormFillEnvironment* pApp);
~CPDFSDK_WidgetHandler() override;
diff --git a/fpdfsdk/cpdfsdk_xfawidget.h b/fpdfsdk/cpdfsdk_xfawidget.h
index 5db9f8d..5878051 100644
--- a/fpdfsdk/cpdfsdk_xfawidget.h
+++ b/fpdfsdk/cpdfsdk_xfawidget.h
@@ -16,7 +16,7 @@
class CPDFSDK_PageView;
class CXFA_FFWidget;
-class CPDFSDK_XFAWidget : public CPDFSDK_Annot {
+class CPDFSDK_XFAWidget final : public CPDFSDK_Annot {
public:
CPDFSDK_XFAWidget(CXFA_FFWidget* pAnnot,
CPDFSDK_PageView* pPageView,
diff --git a/fpdfsdk/cpdfsdk_xfawidgethandler.h b/fpdfsdk/cpdfsdk_xfawidgethandler.h
index b49c905..442d10b 100644
--- a/fpdfsdk/cpdfsdk_xfawidgethandler.h
+++ b/fpdfsdk/cpdfsdk_xfawidgethandler.h
@@ -20,7 +20,7 @@
class CXFA_FFWidget;
class CXFA_FFWidgetHandler;
-class CPDFSDK_XFAWidgetHandler : public IPDFSDK_AnnotHandler {
+class CPDFSDK_XFAWidgetHandler final : public IPDFSDK_AnnotHandler {
public:
explicit CPDFSDK_XFAWidgetHandler(CPDFSDK_FormFillEnvironment* pApp);
~CPDFSDK_XFAWidgetHandler() override;
diff --git a/fpdfsdk/formfiller/cba_fontmap.h b/fpdfsdk/formfiller/cba_fontmap.h
index 0ca07eb..aa41254 100644
--- a/fpdfsdk/formfiller/cba_fontmap.h
+++ b/fpdfsdk/formfiller/cba_fontmap.h
@@ -13,7 +13,7 @@
class CPDF_Dictionary;
class CPDFSDK_Annot;
-class CBA_FontMap : public CPWL_FontMap {
+class CBA_FontMap final : public CPWL_FontMap {
public:
CBA_FontMap(CPDFSDK_Annot* pAnnot, CFX_SystemHandler* pSystemHandler);
~CBA_FontMap() override;
diff --git a/fpdfsdk/formfiller/cffl_checkbox.h b/fpdfsdk/formfiller/cffl_checkbox.h
index 8ef3de6..b477fe7 100644
--- a/fpdfsdk/formfiller/cffl_checkbox.h
+++ b/fpdfsdk/formfiller/cffl_checkbox.h
@@ -11,7 +11,7 @@
class CPWL_CheckBox;
-class CFFL_CheckBox : public CFFL_Button {
+class CFFL_CheckBox final : public CFFL_Button {
public:
CFFL_CheckBox(CPDFSDK_FormFillEnvironment* pApp, CPDFSDK_Widget* pWidget);
~CFFL_CheckBox() override;
diff --git a/fpdfsdk/formfiller/cffl_combobox.h b/fpdfsdk/formfiller/cffl_combobox.h
index 7a6390e..2769b53 100644
--- a/fpdfsdk/formfiller/cffl_combobox.h
+++ b/fpdfsdk/formfiller/cffl_combobox.h
@@ -19,8 +19,8 @@
WideString sValue;
};
-class CFFL_ComboBox : public CFFL_TextObject,
- public CPWL_Wnd::FocusHandlerIface {
+class CFFL_ComboBox final : public CFFL_TextObject,
+ public CPWL_Wnd::FocusHandlerIface {
public:
CFFL_ComboBox(CPDFSDK_FormFillEnvironment* pApp, CPDFSDK_Widget* pWidget);
~CFFL_ComboBox() override;
diff --git a/fpdfsdk/formfiller/cffl_interactiveformfiller.h b/fpdfsdk/formfiller/cffl_interactiveformfiller.h
index 1f049d0..46248d6 100644
--- a/fpdfsdk/formfiller/cffl_interactiveformfiller.h
+++ b/fpdfsdk/formfiller/cffl_interactiveformfiller.h
@@ -21,7 +21,7 @@
class CPDFSDK_PageView;
class CPDFSDK_Widget;
-class CFFL_InteractiveFormFiller : public IPWL_Filler_Notify {
+class CFFL_InteractiveFormFiller final : public IPWL_Filler_Notify {
public:
explicit CFFL_InteractiveFormFiller(
CPDFSDK_FormFillEnvironment* pFormFillEnv);
@@ -158,7 +158,7 @@
bool m_bNotifying;
};
-class CFFL_PrivateData : public CPWL_Wnd::PrivateData {
+class CFFL_PrivateData final : public CPWL_Wnd::PrivateData {
public:
CPDFSDK_Widget* pWidget;
CPDFSDK_PageView* pPageView;
diff --git a/fpdfsdk/formfiller/cffl_listbox.h b/fpdfsdk/formfiller/cffl_listbox.h
index 9db3c5d..eda9561 100644
--- a/fpdfsdk/formfiller/cffl_listbox.h
+++ b/fpdfsdk/formfiller/cffl_listbox.h
@@ -14,7 +14,7 @@
class CBA_FontMap;
-class CFFL_ListBox : public CFFL_TextObject {
+class CFFL_ListBox final : public CFFL_TextObject {
public:
CFFL_ListBox(CPDFSDK_FormFillEnvironment* pApp, CPDFSDK_Widget* pWidget);
~CFFL_ListBox() override;
diff --git a/fpdfsdk/formfiller/cffl_pushbutton.h b/fpdfsdk/formfiller/cffl_pushbutton.h
index 7ee0767..e2acfdc 100644
--- a/fpdfsdk/formfiller/cffl_pushbutton.h
+++ b/fpdfsdk/formfiller/cffl_pushbutton.h
@@ -9,7 +9,7 @@
#include "fpdfsdk/formfiller/cffl_button.h"
-class CFFL_PushButton : public CFFL_Button {
+class CFFL_PushButton final : public CFFL_Button {
public:
CFFL_PushButton(CPDFSDK_FormFillEnvironment* pApp, CPDFSDK_Widget* pWidget);
~CFFL_PushButton() override;
diff --git a/fpdfsdk/formfiller/cffl_radiobutton.h b/fpdfsdk/formfiller/cffl_radiobutton.h
index 2838254..3c20be6 100644
--- a/fpdfsdk/formfiller/cffl_radiobutton.h
+++ b/fpdfsdk/formfiller/cffl_radiobutton.h
@@ -11,7 +11,7 @@
class CPWL_RadioButton;
-class CFFL_RadioButton : public CFFL_Button {
+class CFFL_RadioButton final : public CFFL_Button {
public:
CFFL_RadioButton(CPDFSDK_FormFillEnvironment* pApp, CPDFSDK_Widget* pWidget);
~CFFL_RadioButton() override;
diff --git a/fpdfsdk/formfiller/cffl_textfield.h b/fpdfsdk/formfiller/cffl_textfield.h
index 4d34d05..a1e48b6 100644
--- a/fpdfsdk/formfiller/cffl_textfield.h
+++ b/fpdfsdk/formfiller/cffl_textfield.h
@@ -24,8 +24,8 @@
WideString sValue;
};
-class CFFL_TextField : public CFFL_TextObject,
- public CPWL_Wnd::FocusHandlerIface {
+class CFFL_TextField final : public CFFL_TextObject,
+ public CPWL_Wnd::FocusHandlerIface {
public:
CFFL_TextField(CPDFSDK_FormFillEnvironment* pApp, CPDFSDK_Widget* pWidget);
~CFFL_TextField() override;
diff --git a/fpdfsdk/fpdf_catalog_unittest.cpp b/fpdfsdk/fpdf_catalog_unittest.cpp
index bd51257..425a1ae 100644
--- a/fpdfsdk/fpdf_catalog_unittest.cpp
+++ b/fpdfsdk/fpdf_catalog_unittest.cpp
@@ -16,7 +16,7 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "testing/test_support.h"
-class CPDF_TestDocument : public CPDF_Document {
+class CPDF_TestDocument final : public CPDF_Document {
public:
CPDF_TestDocument() : CPDF_Document() {}
diff --git a/fpdfsdk/fpdf_dataavail.cpp b/fpdfsdk/fpdf_dataavail.cpp
index 1b5fbeb..17d501f 100644
--- a/fpdfsdk/fpdf_dataavail.cpp
+++ b/fpdfsdk/fpdf_dataavail.cpp
@@ -47,7 +47,7 @@
namespace {
-class FPDF_FileAvailContext : public CPDF_DataAvail::FileAvail {
+class FPDF_FileAvailContext final : public CPDF_DataAvail::FileAvail {
public:
FPDF_FileAvailContext() : m_pfileAvail(nullptr) {}
~FPDF_FileAvailContext() override {}
@@ -63,7 +63,7 @@
FX_FILEAVAIL* m_pfileAvail;
};
-class FPDF_FileAccessContext : public IFX_SeekableReadStream {
+class FPDF_FileAccessContext final : public IFX_SeekableReadStream {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
@@ -85,7 +85,7 @@
FPDF_FILEACCESS* m_pFileAccess;
};
-class FPDF_DownloadHintsContext : public CPDF_DataAvail::DownloadHints {
+class FPDF_DownloadHintsContext final : public CPDF_DataAvail::DownloadHints {
public:
explicit FPDF_DownloadHintsContext(FX_DOWNLOADHINTS* pDownloadHints) {
m_pDownloadHints = pDownloadHints;
diff --git a/fpdfsdk/fpdf_dataavail_embeddertest.cpp b/fpdfsdk/fpdf_dataavail_embeddertest.cpp
index ba77266..08bc6c0 100644
--- a/fpdfsdk/fpdf_dataavail_embeddertest.cpp
+++ b/fpdfsdk/fpdf_dataavail_embeddertest.cpp
@@ -20,7 +20,7 @@
namespace {
-class MockDownloadHints : public FX_DOWNLOADHINTS {
+class MockDownloadHints final : public FX_DOWNLOADHINTS {
public:
static void SAddSegment(FX_DOWNLOADHINTS* pThis, size_t offset, size_t size) {
}
@@ -33,7 +33,7 @@
~MockDownloadHints() {}
};
-class TestAsyncLoader : public FX_DOWNLOADHINTS, FX_FILEAVAIL {
+class TestAsyncLoader final : public FX_DOWNLOADHINTS, FX_FILEAVAIL {
public:
explicit TestAsyncLoader(const std::string& file_name) {
std::string file_path;
diff --git a/fpdfsdk/fpdf_doc_unittest.cpp b/fpdfsdk/fpdf_doc_unittest.cpp
index 8ef16aa..db9bcdc 100644
--- a/fpdfsdk/fpdf_doc_unittest.cpp
+++ b/fpdfsdk/fpdf_doc_unittest.cpp
@@ -23,7 +23,7 @@
#include "testing/test_support.h"
#include "third_party/base/ptr_util.h"
-class CPDF_TestDocument : public CPDF_Document {
+class CPDF_TestDocument final : public CPDF_Document {
public:
CPDF_TestDocument() : CPDF_Document() {}
diff --git a/fpdfsdk/fpdf_ppo.cpp b/fpdfsdk/fpdf_ppo.cpp
index 3c99304..6313e43 100644
--- a/fpdfsdk/fpdf_ppo.cpp
+++ b/fpdfsdk/fpdf_ppo.cpp
@@ -445,7 +445,7 @@
// Copies pages from a source document into a destination document.
// This class is intended to be used once via ExportPage() and then destroyed.
-class CPDF_PageExporter : public CPDF_PageOrganizer {
+class CPDF_PageExporter final : public CPDF_PageOrganizer {
public:
CPDF_PageExporter(CPDF_Document* pDestPDFDoc, CPDF_Document* pSrcPDFDoc);
~CPDF_PageExporter();
@@ -536,7 +536,7 @@
// Copies pages from a source document into a destination document. Creates 1
// page in the destination document for every N source pages. This class is
// intended to be used once via ExportNPagesToOne() and then destroyed.
-class CPDF_NPageToOneExporter : public CPDF_PageOrganizer {
+class CPDF_NPageToOneExporter final : public CPDF_PageOrganizer {
public:
CPDF_NPageToOneExporter(CPDF_Document* pDestPDFDoc,
CPDF_Document* pSrcPDFDoc);
diff --git a/fpdfsdk/fpdf_sysfontinfo.cpp b/fpdfsdk/fpdf_sysfontinfo.cpp
index 564912b..0b91df8 100644
--- a/fpdfsdk/fpdf_sysfontinfo.cpp
+++ b/fpdfsdk/fpdf_sysfontinfo.cpp
@@ -128,7 +128,7 @@
return reinterpret_cast<const FPDF_CharsetFontMap*>(CFX_Font::defaultTTFMap);
}
-struct FPDF_SYSFONTINFO_DEFAULT : public FPDF_SYSFONTINFO {
+struct FPDF_SYSFONTINFO_DEFAULT final : public FPDF_SYSFONTINFO {
UnownedPtr<SystemFontInfoIface> m_pFontInfo;
};
diff --git a/fpdfsdk/fpdf_view_embeddertest.cpp b/fpdfsdk/fpdf_view_embeddertest.cpp
index 8cea7de..807462e 100644
--- a/fpdfsdk/fpdf_view_embeddertest.cpp
+++ b/fpdfsdk/fpdf_view_embeddertest.cpp
@@ -18,7 +18,7 @@
namespace {
-class MockDownloadHints : public FX_DOWNLOADHINTS {
+class MockDownloadHints final : public FX_DOWNLOADHINTS {
public:
static void SAddSegment(FX_DOWNLOADHINTS* pThis, size_t offset, size_t size) {
}
@@ -629,7 +629,7 @@
UnloadPage(page);
}
-class UnSupRecordDelegate : public EmbedderTest::Delegate {
+class UnSupRecordDelegate final : public EmbedderTest::Delegate {
public:
UnSupRecordDelegate() : type_(-1) {}
~UnSupRecordDelegate() override {}
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_context.h b/fpdfsdk/fpdfxfa/cpdfxfa_context.h
index 9648e8e..887f06d 100644
--- a/fpdfsdk/fpdfxfa/cpdfxfa_context.h
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_context.h
@@ -33,8 +33,8 @@
FXFA_LOADSTATUS_CLOSED
};
-class CPDFXFA_Context : public CPDF_Document::Extension,
- public IXFA_AppProvider {
+class CPDFXFA_Context final : public CPDF_Document::Extension,
+ public IXFA_AppProvider {
public:
explicit CPDFXFA_Context(CPDF_Document* pPDFDoc);
~CPDFXFA_Context() override;
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.h b/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.h
index dfc51e0..0613fc3 100644
--- a/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.h
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.h
@@ -14,7 +14,7 @@
class CPDFXFA_Context;
-class CPDFXFA_DocEnvironment : public IXFA_DocEnvironment {
+class CPDFXFA_DocEnvironment final : public IXFA_DocEnvironment {
public:
explicit CPDFXFA_DocEnvironment(CPDFXFA_Context*);
~CPDFXFA_DocEnvironment() override;
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_page.h b/fpdfsdk/fpdfxfa/cpdfxfa_page.h
index b660869..769bdaa 100644
--- a/fpdfsdk/fpdfxfa/cpdfxfa_page.h
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_page.h
@@ -22,7 +22,7 @@
class CPDFXFA_Context;
class CXFA_FFPageView;
-class CPDFXFA_Page : public IPDF_Page {
+class CPDFXFA_Page final : public IPDF_Page {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
diff --git a/fpdfsdk/fpdfxfa/cxfa_fwladaptertimermgr.cpp b/fpdfsdk/fpdfxfa/cxfa_fwladaptertimermgr.cpp
index adba260..8901394 100644
--- a/fpdfsdk/fpdfxfa/cxfa_fwladaptertimermgr.cpp
+++ b/fpdfsdk/fpdfxfa/cxfa_fwladaptertimermgr.cpp
@@ -14,7 +14,7 @@
namespace {
-class CFWL_FWLAdapterTimerInfo : public CFWL_TimerInfo {
+class CFWL_FWLAdapterTimerInfo final : public CFWL_TimerInfo {
public:
CFWL_FWLAdapterTimerInfo(IFWL_AdapterTimerMgr* mgr,
int32_t event,
diff --git a/fpdfsdk/fpdfxfa/cxfa_fwladaptertimermgr.h b/fpdfsdk/fpdfxfa/cxfa_fwladaptertimermgr.h
index 96ccc1c..8bca0bd 100644
--- a/fpdfsdk/fpdfxfa/cxfa_fwladaptertimermgr.h
+++ b/fpdfsdk/fpdfxfa/cxfa_fwladaptertimermgr.h
@@ -15,7 +15,7 @@
#include "xfa/fwl/cfwl_timerinfo.h"
#include "xfa/fwl/ifwl_adaptertimermgr.h"
-class CXFA_FWLAdapterTimerMgr : public IFWL_AdapterTimerMgr {
+class CXFA_FWLAdapterTimerMgr final : public IFWL_AdapterTimerMgr {
public:
explicit CXFA_FWLAdapterTimerMgr(CPDFSDK_FormFillEnvironment* pFormFillEnv);
~CXFA_FWLAdapterTimerMgr() override;
diff --git a/fpdfsdk/pwl/cpwl_appstream.cpp b/fpdfsdk/pwl/cpwl_appstream.cpp
index 7d7f710..4175b8e 100644
--- a/fpdfsdk/pwl/cpwl_appstream.cpp
+++ b/fpdfsdk/pwl/cpwl_appstream.cpp
@@ -92,7 +92,7 @@
ByteString close_;
};
-class AutoClosedQCommand : public AutoClosedCommand {
+class AutoClosedQCommand final : public AutoClosedCommand {
public:
explicit AutoClosedQCommand(std::ostringstream* stream)
: AutoClosedCommand(stream, kStateSaveOperator, kStateRestoreOperator) {}
diff --git a/fpdfsdk/pwl/cpwl_caret.h b/fpdfsdk/pwl/cpwl_caret.h
index d60a964..1f7c2b8 100644
--- a/fpdfsdk/pwl/cpwl_caret.h
+++ b/fpdfsdk/pwl/cpwl_caret.h
@@ -9,7 +9,7 @@
#include "fpdfsdk/pwl/cpwl_wnd.h"
-class CPWL_Caret : public CPWL_Wnd {
+class CPWL_Caret final : public CPWL_Wnd {
public:
CPWL_Caret();
~CPWL_Caret() override;
diff --git a/fpdfsdk/pwl/cpwl_combo_box.h b/fpdfsdk/pwl/cpwl_combo_box.h
index a4e823c..d3c55c2 100644
--- a/fpdfsdk/pwl/cpwl_combo_box.h
+++ b/fpdfsdk/pwl/cpwl_combo_box.h
@@ -14,7 +14,7 @@
#include "fpdfsdk/pwl/cpwl_list_box.h"
#include "fpdfsdk/pwl/cpwl_wnd.h"
-class CPWL_CBListBox : public CPWL_ListBox {
+class CPWL_CBListBox final : public CPWL_ListBox {
public:
CPWL_CBListBox() {}
~CPWL_CBListBox() override {}
@@ -28,7 +28,7 @@
bool OnCharNotify(uint16_t nChar, uint32_t nFlag);
};
-class CPWL_CBButton : public CPWL_Wnd {
+class CPWL_CBButton final : public CPWL_Wnd {
public:
CPWL_CBButton() {}
~CPWL_CBButton() override {}
@@ -40,7 +40,7 @@
bool OnLButtonUp(const CFX_PointF& point, uint32_t nFlag) override;
};
-class CPWL_ComboBox : public CPWL_Wnd {
+class CPWL_ComboBox final : public CPWL_Wnd {
public:
CPWL_ComboBox();
~CPWL_ComboBox() override;
diff --git a/fpdfsdk/pwl/cpwl_edit.h b/fpdfsdk/pwl/cpwl_edit.h
index 4a17de4..f7429c9 100644
--- a/fpdfsdk/pwl/cpwl_edit.h
+++ b/fpdfsdk/pwl/cpwl_edit.h
@@ -41,7 +41,7 @@
#endif // PDF_ENABLE_XFA
};
-class CPWL_Edit : public CPWL_EditCtrl {
+class CPWL_Edit final : public CPWL_EditCtrl {
public:
CPWL_Edit();
~CPWL_Edit() override;
diff --git a/fpdfsdk/pwl/cpwl_edit_impl.h b/fpdfsdk/pwl/cpwl_edit_impl.h
index 8680885..743afae 100644
--- a/fpdfsdk/pwl/cpwl_edit_impl.h
+++ b/fpdfsdk/pwl/cpwl_edit_impl.h
@@ -102,7 +102,7 @@
virtual void Redo() = 0;
};
-class CFXEU_InsertWord : public IFX_Edit_UndoItem {
+class CFXEU_InsertWord final : public IFX_Edit_UndoItem {
public:
CFXEU_InsertWord(CPWL_EditImpl* pEdit,
const CPVT_WordPlace& wpOldPlace,
@@ -124,7 +124,7 @@
int32_t m_nCharset;
};
-class CFXEU_InsertReturn : public IFX_Edit_UndoItem {
+class CFXEU_InsertReturn final : public IFX_Edit_UndoItem {
public:
CFXEU_InsertReturn(CPWL_EditImpl* pEdit,
const CPVT_WordPlace& wpOldPlace,
@@ -142,7 +142,7 @@
CPVT_WordPlace m_wpNew;
};
-class CFXEU_Backspace : public IFX_Edit_UndoItem {
+class CFXEU_Backspace final : public IFX_Edit_UndoItem {
public:
CFXEU_Backspace(CPWL_EditImpl* pEdit,
const CPVT_WordPlace& wpOldPlace,
@@ -164,7 +164,7 @@
int32_t m_nCharset;
};
-class CFXEU_Delete : public IFX_Edit_UndoItem {
+class CFXEU_Delete final : public IFX_Edit_UndoItem {
public:
CFXEU_Delete(CPWL_EditImpl* pEdit,
const CPVT_WordPlace& wpOldPlace,
@@ -188,7 +188,7 @@
bool m_bSecEnd;
};
-class CFXEU_Clear : public IFX_Edit_UndoItem {
+class CFXEU_Clear final : public IFX_Edit_UndoItem {
public:
CFXEU_Clear(CPWL_EditImpl* pEdit,
const CPVT_WordRange& wrSel,
@@ -206,7 +206,7 @@
WideString m_swText;
};
-class CFXEU_InsertText : public IFX_Edit_UndoItem {
+class CFXEU_InsertText final : public IFX_Edit_UndoItem {
public:
CFXEU_InsertText(CPWL_EditImpl* pEdit,
const CPVT_WordPlace& wpOldPlace,
@@ -415,7 +415,7 @@
CPDF_VariableText::Iterator* m_pVTIterator;
};
-class CPWL_EditImpl_Provider : public CPDF_VariableText::Provider {
+class CPWL_EditImpl_Provider final : public CPDF_VariableText::Provider {
public:
explicit CPWL_EditImpl_Provider(IPVT_FontMap* pFontMap);
~CPWL_EditImpl_Provider() override;
diff --git a/fpdfsdk/pwl/cpwl_icon.h b/fpdfsdk/pwl/cpwl_icon.h
index df88465..2cb84eb 100644
--- a/fpdfsdk/pwl/cpwl_icon.h
+++ b/fpdfsdk/pwl/cpwl_icon.h
@@ -13,7 +13,7 @@
#include "core/fxcrt/unowned_ptr.h"
#include "fpdfsdk/pwl/cpwl_wnd.h"
-class CPWL_Icon : public CPWL_Wnd {
+class CPWL_Icon final : public CPWL_Wnd {
public:
CPWL_Icon();
~CPWL_Icon() override;
diff --git a/fpdfsdk/pwl/cpwl_scroll_bar.h b/fpdfsdk/pwl/cpwl_scroll_bar.h
index 1437597..0b63bf2 100644
--- a/fpdfsdk/pwl/cpwl_scroll_bar.h
+++ b/fpdfsdk/pwl/cpwl_scroll_bar.h
@@ -42,7 +42,7 @@
enum PWL_SBBUTTON_TYPE { PSBT_MIN, PSBT_MAX, PSBT_POS };
-class CPWL_SBButton : public CPWL_Wnd {
+class CPWL_SBButton final : public CPWL_Wnd {
public:
CPWL_SBButton(PWL_SCROLLBAR_TYPE eScrollBarType,
PWL_SBBUTTON_TYPE eButtonType);
@@ -115,7 +115,7 @@
float fSmallStep;
};
-class CPWL_ScrollBar : public CPWL_Wnd {
+class CPWL_ScrollBar final : public CPWL_Wnd {
public:
explicit CPWL_ScrollBar(PWL_SCROLLBAR_TYPE sbType);
~CPWL_ScrollBar() override;
diff --git a/fpdfsdk/pwl/cpwl_special_button.h b/fpdfsdk/pwl/cpwl_special_button.h
index 076b529..b980f84 100644
--- a/fpdfsdk/pwl/cpwl_special_button.h
+++ b/fpdfsdk/pwl/cpwl_special_button.h
@@ -9,7 +9,7 @@
#include "fpdfsdk/pwl/cpwl_button.h"
-class CPWL_PushButton : public CPWL_Button {
+class CPWL_PushButton final : public CPWL_Button {
public:
CPWL_PushButton();
~CPWL_PushButton() override;
@@ -19,7 +19,7 @@
CFX_FloatRect GetFocusRect() const override;
};
-class CPWL_CheckBox : public CPWL_Button {
+class CPWL_CheckBox final : public CPWL_Button {
public:
CPWL_CheckBox();
~CPWL_CheckBox() override;
@@ -36,7 +36,7 @@
bool m_bChecked;
};
-class CPWL_RadioButton : public CPWL_Button {
+class CPWL_RadioButton final : public CPWL_Button {
public:
CPWL_RadioButton();
~CPWL_RadioButton() override;
diff --git a/fpdfsdk/pwl/cpwl_wnd.cpp b/fpdfsdk/pwl/cpwl_wnd.cpp
index 6b840f2..1cd9461 100644
--- a/fpdfsdk/pwl/cpwl_wnd.cpp
+++ b/fpdfsdk/pwl/cpwl_wnd.cpp
@@ -39,7 +39,7 @@
CPWL_Wnd::CreateParams::~CreateParams() = default;
-class CPWL_MsgControl : public Observable<CPWL_MsgControl> {
+class CPWL_MsgControl final : public Observable<CPWL_MsgControl> {
public:
explicit CPWL_MsgControl(CPWL_Wnd* pWnd) : m_pCreatedWnd(pWnd) {}
~CPWL_MsgControl() {}
diff --git a/fxbarcode/cbc_codabar.h b/fxbarcode/cbc_codabar.h
index 827fc28..036c65f 100644
--- a/fxbarcode/cbc_codabar.h
+++ b/fxbarcode/cbc_codabar.h
@@ -14,7 +14,7 @@
class CBC_OnedCodaBarWriter;
-class CBC_Codabar : public CBC_OneCode {
+class CBC_Codabar final : public CBC_OneCode {
public:
CBC_Codabar();
~CBC_Codabar() override;
diff --git a/fxbarcode/cbc_code128.h b/fxbarcode/cbc_code128.h
index b057aff..61bed6f 100644
--- a/fxbarcode/cbc_code128.h
+++ b/fxbarcode/cbc_code128.h
@@ -14,7 +14,7 @@
class CBC_OnedCode128Writer;
-class CBC_Code128 : public CBC_OneCode {
+class CBC_Code128 final : public CBC_OneCode {
public:
explicit CBC_Code128(BC_TYPE type);
~CBC_Code128() override;
diff --git a/fxbarcode/cbc_code39.h b/fxbarcode/cbc_code39.h
index 937673c..83c8daa 100644
--- a/fxbarcode/cbc_code39.h
+++ b/fxbarcode/cbc_code39.h
@@ -15,7 +15,7 @@
class CBC_OnedCode39Writer;
-class CBC_Code39 : public CBC_OneCode {
+class CBC_Code39 final : public CBC_OneCode {
public:
CBC_Code39();
~CBC_Code39() override;
diff --git a/fxbarcode/cbc_datamatrix.h b/fxbarcode/cbc_datamatrix.h
index 3fe1c09..b02da55 100644
--- a/fxbarcode/cbc_datamatrix.h
+++ b/fxbarcode/cbc_datamatrix.h
@@ -14,7 +14,7 @@
class CBC_DataMatrixWriter;
-class CBC_DataMatrix : public CBC_CodeBase {
+class CBC_DataMatrix final : public CBC_CodeBase {
public:
CBC_DataMatrix();
~CBC_DataMatrix() override;
diff --git a/fxbarcode/cbc_ean13.h b/fxbarcode/cbc_ean13.h
index 609f8b0..da0fd85 100644
--- a/fxbarcode/cbc_ean13.h
+++ b/fxbarcode/cbc_ean13.h
@@ -15,7 +15,7 @@
class CBC_OnedEAN13Writer;
-class CBC_EAN13 : public CBC_OneCode {
+class CBC_EAN13 final : public CBC_OneCode {
public:
CBC_EAN13();
~CBC_EAN13() override;
diff --git a/fxbarcode/cbc_ean8.h b/fxbarcode/cbc_ean8.h
index 4127650..53eed47 100644
--- a/fxbarcode/cbc_ean8.h
+++ b/fxbarcode/cbc_ean8.h
@@ -14,7 +14,7 @@
class CBC_OnedEAN8Writer;
-class CBC_EAN8 : public CBC_OneCode {
+class CBC_EAN8 final : public CBC_OneCode {
public:
CBC_EAN8();
~CBC_EAN8() override;
diff --git a/fxbarcode/cbc_pdf417i.h b/fxbarcode/cbc_pdf417i.h
index 3cb73e3..ec68600 100644
--- a/fxbarcode/cbc_pdf417i.h
+++ b/fxbarcode/cbc_pdf417i.h
@@ -14,7 +14,7 @@
class CBC_PDF417Writer;
-class CBC_PDF417I : public CBC_CodeBase {
+class CBC_PDF417I final : public CBC_CodeBase {
public:
CBC_PDF417I();
~CBC_PDF417I() override;
diff --git a/fxbarcode/cbc_qrcode.h b/fxbarcode/cbc_qrcode.h
index 509de8a..59d57ac 100644
--- a/fxbarcode/cbc_qrcode.h
+++ b/fxbarcode/cbc_qrcode.h
@@ -14,7 +14,7 @@
class CBC_QRCodeWriter;
-class CBC_QRCode : public CBC_CodeBase {
+class CBC_QRCode final : public CBC_CodeBase {
public:
CBC_QRCode();
~CBC_QRCode() override;
diff --git a/fxbarcode/cbc_upca.h b/fxbarcode/cbc_upca.h
index 29c4d7d..de71581 100644
--- a/fxbarcode/cbc_upca.h
+++ b/fxbarcode/cbc_upca.h
@@ -14,7 +14,7 @@
class CBC_OnedUPCAWriter;
-class CBC_UPCA : public CBC_OneCode {
+class CBC_UPCA final : public CBC_OneCode {
public:
CBC_UPCA();
~CBC_UPCA() override;
diff --git a/fxbarcode/datamatrix/BC_ASCIIEncoder.h b/fxbarcode/datamatrix/BC_ASCIIEncoder.h
index 35d4c5f..c9d8568 100644
--- a/fxbarcode/datamatrix/BC_ASCIIEncoder.h
+++ b/fxbarcode/datamatrix/BC_ASCIIEncoder.h
@@ -11,7 +11,7 @@
class CBC_EncoderContext;
-class CBC_ASCIIEncoder : public CBC_Encoder {
+class CBC_ASCIIEncoder final : public CBC_Encoder {
public:
CBC_ASCIIEncoder();
~CBC_ASCIIEncoder() override;
diff --git a/fxbarcode/datamatrix/BC_Base256Encoder.h b/fxbarcode/datamatrix/BC_Base256Encoder.h
index 65abf59..e8756f9 100644
--- a/fxbarcode/datamatrix/BC_Base256Encoder.h
+++ b/fxbarcode/datamatrix/BC_Base256Encoder.h
@@ -9,7 +9,7 @@
#include "fxbarcode/datamatrix/BC_Encoder.h"
-class CBC_Base256Encoder : public CBC_Encoder {
+class CBC_Base256Encoder final : public CBC_Encoder {
public:
CBC_Base256Encoder();
~CBC_Base256Encoder() override;
diff --git a/fxbarcode/datamatrix/BC_DataMatrixSymbolInfo144.h b/fxbarcode/datamatrix/BC_DataMatrixSymbolInfo144.h
index 0a1c529..45c30b6 100644
--- a/fxbarcode/datamatrix/BC_DataMatrixSymbolInfo144.h
+++ b/fxbarcode/datamatrix/BC_DataMatrixSymbolInfo144.h
@@ -9,7 +9,7 @@
#include "fxbarcode/datamatrix/BC_SymbolInfo.h"
-class CBC_DataMatrixSymbolInfo144 : public CBC_SymbolInfo {
+class CBC_DataMatrixSymbolInfo144 final : public CBC_SymbolInfo {
public:
CBC_DataMatrixSymbolInfo144();
~CBC_DataMatrixSymbolInfo144() override;
diff --git a/fxbarcode/datamatrix/BC_DataMatrixWriter.h b/fxbarcode/datamatrix/BC_DataMatrixWriter.h
index ba2c547..6fa41c0 100644
--- a/fxbarcode/datamatrix/BC_DataMatrixWriter.h
+++ b/fxbarcode/datamatrix/BC_DataMatrixWriter.h
@@ -13,7 +13,7 @@
class CBC_DefaultPlacement;
class CBC_SymbolInfo;
-class CBC_DataMatrixWriter : public CBC_TwoDimWriter {
+class CBC_DataMatrixWriter final : public CBC_TwoDimWriter {
public:
CBC_DataMatrixWriter();
~CBC_DataMatrixWriter() override;
diff --git a/fxbarcode/datamatrix/BC_EdifactEncoder.h b/fxbarcode/datamatrix/BC_EdifactEncoder.h
index eb59222..8c72303 100644
--- a/fxbarcode/datamatrix/BC_EdifactEncoder.h
+++ b/fxbarcode/datamatrix/BC_EdifactEncoder.h
@@ -9,7 +9,7 @@
#include "fxbarcode/datamatrix/BC_Encoder.h"
-class CBC_EdifactEncoder : public CBC_Encoder {
+class CBC_EdifactEncoder final : public CBC_Encoder {
public:
CBC_EdifactEncoder();
~CBC_EdifactEncoder() override;
diff --git a/fxbarcode/datamatrix/BC_TextEncoder.h b/fxbarcode/datamatrix/BC_TextEncoder.h
index 9d4cdaf..351772a 100644
--- a/fxbarcode/datamatrix/BC_TextEncoder.h
+++ b/fxbarcode/datamatrix/BC_TextEncoder.h
@@ -9,7 +9,7 @@
#include "fxbarcode/datamatrix/BC_C40Encoder.h"
-class CBC_TextEncoder : public CBC_C40Encoder {
+class CBC_TextEncoder final : public CBC_C40Encoder {
public:
CBC_TextEncoder();
~CBC_TextEncoder() override;
diff --git a/fxbarcode/datamatrix/BC_X12Encoder.h b/fxbarcode/datamatrix/BC_X12Encoder.h
index 324b78b..7ef84d5 100644
--- a/fxbarcode/datamatrix/BC_X12Encoder.h
+++ b/fxbarcode/datamatrix/BC_X12Encoder.h
@@ -9,7 +9,7 @@
#include "fxbarcode/datamatrix/BC_C40Encoder.h"
-class CBC_X12Encoder : public CBC_C40Encoder {
+class CBC_X12Encoder final : public CBC_C40Encoder {
public:
CBC_X12Encoder();
~CBC_X12Encoder() override;
diff --git a/fxbarcode/oned/BC_OnedCodaBarWriter.h b/fxbarcode/oned/BC_OnedCodaBarWriter.h
index ab354ef..d3f5224 100644
--- a/fxbarcode/oned/BC_OnedCodaBarWriter.h
+++ b/fxbarcode/oned/BC_OnedCodaBarWriter.h
@@ -12,7 +12,7 @@
#include "fxbarcode/BC_Library.h"
#include "fxbarcode/oned/BC_OneDimWriter.h"
-class CBC_OnedCodaBarWriter : public CBC_OneDimWriter {
+class CBC_OnedCodaBarWriter final : public CBC_OneDimWriter {
public:
CBC_OnedCodaBarWriter();
~CBC_OnedCodaBarWriter() override;
diff --git a/fxbarcode/oned/BC_OnedCode128Writer.h b/fxbarcode/oned/BC_OnedCode128Writer.h
index 3edb65a..f91874c 100644
--- a/fxbarcode/oned/BC_OnedCode128Writer.h
+++ b/fxbarcode/oned/BC_OnedCode128Writer.h
@@ -13,7 +13,7 @@
#include "core/fxcrt/fx_system.h"
#include "fxbarcode/oned/BC_OneDimWriter.h"
-class CBC_OnedCode128Writer : public CBC_OneDimWriter {
+class CBC_OnedCode128Writer final : public CBC_OneDimWriter {
public:
explicit CBC_OnedCode128Writer(BC_TYPE type);
~CBC_OnedCode128Writer() override;
diff --git a/fxbarcode/oned/BC_OnedCode39Writer.h b/fxbarcode/oned/BC_OnedCode39Writer.h
index 90611c0..5c4a4d5 100644
--- a/fxbarcode/oned/BC_OnedCode39Writer.h
+++ b/fxbarcode/oned/BC_OnedCode39Writer.h
@@ -10,7 +10,7 @@
#include "fxbarcode/BC_Library.h"
#include "fxbarcode/oned/BC_OneDimWriter.h"
-class CBC_OnedCode39Writer : public CBC_OneDimWriter {
+class CBC_OnedCode39Writer final : public CBC_OneDimWriter {
public:
CBC_OnedCode39Writer();
~CBC_OnedCode39Writer() override;
diff --git a/fxbarcode/oned/BC_OnedEAN13Writer.h b/fxbarcode/oned/BC_OnedEAN13Writer.h
index c874610..3c7ff2e 100644
--- a/fxbarcode/oned/BC_OnedEAN13Writer.h
+++ b/fxbarcode/oned/BC_OnedEAN13Writer.h
@@ -14,7 +14,7 @@
class CFX_DIBitmap;
class CFX_RenderDevice;
-class CBC_OnedEAN13Writer : public CBC_OneDimWriter {
+class CBC_OnedEAN13Writer final : public CBC_OneDimWriter {
public:
CBC_OnedEAN13Writer();
~CBC_OnedEAN13Writer() override;
diff --git a/fxbarcode/oned/BC_OnedEAN8Writer.h b/fxbarcode/oned/BC_OnedEAN8Writer.h
index 77a3602..dfef89e 100644
--- a/fxbarcode/oned/BC_OnedEAN8Writer.h
+++ b/fxbarcode/oned/BC_OnedEAN8Writer.h
@@ -15,7 +15,7 @@
class CFX_DIBitmap;
class CFX_RenderDevice;
-class CBC_OnedEAN8Writer : public CBC_OneDimWriter {
+class CBC_OnedEAN8Writer final : public CBC_OneDimWriter {
public:
CBC_OnedEAN8Writer();
~CBC_OnedEAN8Writer() override;
diff --git a/fxbarcode/oned/BC_OnedUPCAWriter.h b/fxbarcode/oned/BC_OnedUPCAWriter.h
index a854ef4..1a9f091 100644
--- a/fxbarcode/oned/BC_OnedUPCAWriter.h
+++ b/fxbarcode/oned/BC_OnedUPCAWriter.h
@@ -18,7 +18,7 @@
class CFX_Matrix;
class CFX_RenderDevice;
-class CBC_OnedUPCAWriter : public CBC_OneDimWriter {
+class CBC_OnedUPCAWriter final : public CBC_OneDimWriter {
public:
CBC_OnedUPCAWriter();
~CBC_OnedUPCAWriter() override;
diff --git a/fxbarcode/pdf417/BC_PDF417Writer.h b/fxbarcode/pdf417/BC_PDF417Writer.h
index 05e85c7..1af9d74 100644
--- a/fxbarcode/pdf417/BC_PDF417Writer.h
+++ b/fxbarcode/pdf417/BC_PDF417Writer.h
@@ -13,7 +13,7 @@
#include "core/fxcrt/fx_system.h"
#include "fxbarcode/BC_TwoDimWriter.h"
-class CBC_PDF417Writer : public CBC_TwoDimWriter {
+class CBC_PDF417Writer final : public CBC_TwoDimWriter {
public:
CBC_PDF417Writer();
~CBC_PDF417Writer() override;
diff --git a/fxbarcode/qrcode/BC_QRCodeWriter.h b/fxbarcode/qrcode/BC_QRCodeWriter.h
index 3b3efc9..192b465 100644
--- a/fxbarcode/qrcode/BC_QRCodeWriter.h
+++ b/fxbarcode/qrcode/BC_QRCodeWriter.h
@@ -10,7 +10,7 @@
#include "fxbarcode/BC_TwoDimWriter.h"
class CBC_TwoDimWriter;
-class CBC_QRCodeWriter : public CBC_TwoDimWriter {
+class CBC_QRCodeWriter final : public CBC_TwoDimWriter {
public:
CBC_QRCodeWriter();
~CBC_QRCodeWriter() override;
diff --git a/fxjs/cfx_v8.h b/fxjs/cfx_v8.h
index 04468d5..f7bed86 100644
--- a/fxjs/cfx_v8.h
+++ b/fxjs/cfx_v8.h
@@ -66,7 +66,7 @@
UnownedPtr<v8::Isolate> m_pIsolate;
};
-class CFX_V8ArrayBufferAllocator : public v8::ArrayBuffer::Allocator {
+class CFX_V8ArrayBufferAllocator final : public v8::ArrayBuffer::Allocator {
static const size_t kMaxAllowedBytes = 0x10000000;
void* Allocate(size_t length) override;
void* AllocateUninitialized(size_t length) override;
diff --git a/fxjs/cfxjs_engine.cpp b/fxjs/cfxjs_engine.cpp
index 2a95e4c..a4a85df 100644
--- a/fxjs/cfxjs_engine.cpp
+++ b/fxjs/cfxjs_engine.cpp
@@ -24,7 +24,7 @@
static wchar_t kPerObjectDataTag[] = L"CFXJS_PerObjectData";
// Global weak map to save dynamic objects.
-class V8TemplateMapTraits
+class V8TemplateMapTraits final
: public v8::StdMapTraits<CFXJS_PerObjectData*, v8::Object> {
public:
using WeakCallbackDataType = CFXJS_PerObjectData;
diff --git a/fxjs/cfxjse_engine.h b/fxjs/cfxjse_engine.h
index 01bce53..632010d 100644
--- a/fxjs/cfxjse_engine.h
+++ b/fxjs/cfxjse_engine.h
@@ -26,7 +26,7 @@
class CJS_Runtime;
class CXFA_List;
-class CFXJSE_Engine : public CFX_V8 {
+class CFXJSE_Engine final : public CFX_V8 {
public:
static CXFA_Object* ToObject(const v8::FunctionCallbackInfo<v8::Value>& info);
static CXFA_Object* ToObject(CFXJSE_Value* pValue);
diff --git a/fxjs/cfxjse_formcalc_context.h b/fxjs/cfxjse_formcalc_context.h
index ef1cd34..a03c66f 100644
--- a/fxjs/cfxjse_formcalc_context.h
+++ b/fxjs/cfxjse_formcalc_context.h
@@ -18,7 +18,7 @@
class CFX_WideTextBuf;
class CXFA_Document;
-class CFXJSE_FormCalcContext : public CFXJSE_HostObject {
+class CFXJSE_FormCalcContext final : public CFXJSE_HostObject {
public:
CFXJSE_FormCalcContext(v8::Isolate* pScriptIsolate,
CFXJSE_Context* pScriptContext,
diff --git a/fxjs/cfxjse_isolatetracker.h b/fxjs/cfxjse_isolatetracker.h
index 103b275..4e95498 100644
--- a/fxjs/cfxjse_isolatetracker.h
+++ b/fxjs/cfxjse_isolatetracker.h
@@ -26,7 +26,7 @@
v8::HandleScope m_hscope;
};
-class CFXJSE_ScopeUtil_IsolateHandleRootContext
+class CFXJSE_ScopeUtil_IsolateHandleRootContext final
: public CFXJSE_ScopeUtil_IsolateHandle {
public:
explicit CFXJSE_ScopeUtil_IsolateHandleRootContext(v8::Isolate* pIsolate);
diff --git a/fxjs/cjs_annot.h b/fxjs/cjs_annot.h
index 79b2663..ea2168e 100644
--- a/fxjs/cjs_annot.h
+++ b/fxjs/cjs_annot.h
@@ -10,7 +10,7 @@
#include "fpdfsdk/cpdfsdk_baannot.h"
#include "fxjs/js_define.h"
-class CJS_Annot : public CJS_Object {
+class CJS_Annot final : public CJS_Object {
public:
static int GetObjDefnID();
static void DefineJSObjects(CFXJS_Engine* pEngine);
diff --git a/fxjs/cjs_app.h b/fxjs/cjs_app.h
index 5690f47..5f211d7 100644
--- a/fxjs/cjs_app.h
+++ b/fxjs/cjs_app.h
@@ -16,7 +16,7 @@
class CJS_Runtime;
class GlobalTimer;
-class CJS_App : public CJS_Object {
+class CJS_App final : public CJS_Object {
public:
static int GetObjDefnID();
static void DefineJSObjects(CFXJS_Engine* pEngine);
diff --git a/fxjs/cjs_border.h b/fxjs/cjs_border.h
index 0d10a1f..8122934 100644
--- a/fxjs/cjs_border.h
+++ b/fxjs/cjs_border.h
@@ -9,7 +9,7 @@
#include "fxjs/js_define.h"
-class CJS_Border : public CJS_Object {
+class CJS_Border final : public CJS_Object {
public:
static void DefineJSObjects(CFXJS_Engine* pEngine);
diff --git a/fxjs/cjs_color.h b/fxjs/cjs_color.h
index aff19d7..b1bd211 100644
--- a/fxjs/cjs_color.h
+++ b/fxjs/cjs_color.h
@@ -12,7 +12,7 @@
#include "fpdfsdk/pwl/cpwl_wnd.h"
#include "fxjs/js_define.h"
-class CJS_Color : public CJS_Object {
+class CJS_Color final : public CJS_Object {
public:
static int GetObjDefnID();
static void DefineJSObjects(CFXJS_Engine* pEngine);
diff --git a/fxjs/cjs_console.h b/fxjs/cjs_console.h
index 9ab2555..59276be 100644
--- a/fxjs/cjs_console.h
+++ b/fxjs/cjs_console.h
@@ -11,7 +11,7 @@
#include "fxjs/js_define.h"
-class CJS_Console : public CJS_Object {
+class CJS_Console final : public CJS_Object {
public:
static int GetObjDefnID();
static void DefineJSObjects(CFXJS_Engine* pEngine);
diff --git a/fxjs/cjs_display.h b/fxjs/cjs_display.h
index 2336952..35eebba 100644
--- a/fxjs/cjs_display.h
+++ b/fxjs/cjs_display.h
@@ -9,7 +9,7 @@
#include "fxjs/js_define.h"
-class CJS_Display : public CJS_Object {
+class CJS_Display final : public CJS_Object {
public:
static void DefineJSObjects(CFXJS_Engine* pEngine);
diff --git a/fxjs/cjs_document.h b/fxjs/cjs_document.h
index 69a0b65..0f25703 100644
--- a/fxjs/cjs_document.h
+++ b/fxjs/cjs_document.h
@@ -17,7 +17,7 @@
class CPDF_TextObject;
struct CJS_DelayData;
-class CJS_Document : public CJS_Object, public Observable<CJS_Document> {
+class CJS_Document final : public CJS_Object, public Observable<CJS_Document> {
public:
static int GetObjDefnID();
static void DefineJSObjects(CFXJS_Engine* pEngine);
diff --git a/fxjs/cjs_event.h b/fxjs/cjs_event.h
index 67bd3f5..a6308ec 100644
--- a/fxjs/cjs_event.h
+++ b/fxjs/cjs_event.h
@@ -9,7 +9,7 @@
#include "fxjs/js_define.h"
-class CJS_Event : public CJS_Object {
+class CJS_Event final : public CJS_Object {
public:
static int GetObjDefnID();
static void DefineJSObjects(CFXJS_Engine* pEngine);
diff --git a/fxjs/cjs_event_context.h b/fxjs/cjs_event_context.h
index 29bbd5a..a9933e6 100644
--- a/fxjs/cjs_event_context.h
+++ b/fxjs/cjs_event_context.h
@@ -18,7 +18,7 @@
class CJS_Runtime;
class CPDFSDK_FormFillEnvironment;
-class CJS_EventContext : public IJS_EventContext {
+class CJS_EventContext final : public IJS_EventContext {
public:
explicit CJS_EventContext(CJS_Runtime* pRuntime);
~CJS_EventContext() override;
diff --git a/fxjs/cjs_field.h b/fxjs/cjs_field.h
index 69d6c8e..4f21710 100644
--- a/fxjs/cjs_field.h
+++ b/fxjs/cjs_field.h
@@ -27,7 +27,7 @@
FP_VALUE
};
-class CJS_Field : public CJS_Object {
+class CJS_Field final : public CJS_Object {
public:
static int GetObjDefnID();
static void DefineJSObjects(CFXJS_Engine* pEngine);
diff --git a/fxjs/cjs_font.h b/fxjs/cjs_font.h
index be677d4..56b3db0 100644
--- a/fxjs/cjs_font.h
+++ b/fxjs/cjs_font.h
@@ -9,7 +9,7 @@
#include "fxjs/js_define.h"
-class CJS_Font : public CJS_Object {
+class CJS_Font final : public CJS_Object {
public:
static void DefineJSObjects(CFXJS_Engine* pEngine);
diff --git a/fxjs/cjs_global.h b/fxjs/cjs_global.h
index 491897a..6ecd6c0 100644
--- a/fxjs/cjs_global.h
+++ b/fxjs/cjs_global.h
@@ -16,7 +16,7 @@
class CJS_GlobalData;
-class CJS_Global : public CJS_Object {
+class CJS_Global final : public CJS_Object {
public:
static int GetObjDefnID();
static void DefineJSObjects(CFXJS_Engine* pEngine);
diff --git a/fxjs/cjs_globalarrays.h b/fxjs/cjs_globalarrays.h
index 8e97273..cfd90af 100644
--- a/fxjs/cjs_globalarrays.h
+++ b/fxjs/cjs_globalarrays.h
@@ -9,7 +9,7 @@
#include "fxjs/js_define.h"
-class CJS_GlobalArrays : public CJS_Object {
+class CJS_GlobalArrays final : public CJS_Object {
public:
static void DefineJSObjects(CJS_Runtime* pRuntmie);
};
diff --git a/fxjs/cjs_globalconsts.h b/fxjs/cjs_globalconsts.h
index 1bef384..1846c41 100644
--- a/fxjs/cjs_globalconsts.h
+++ b/fxjs/cjs_globalconsts.h
@@ -9,7 +9,7 @@
#include "fxjs/js_define.h"
-class CJS_GlobalConsts : public CJS_Object {
+class CJS_GlobalConsts final : public CJS_Object {
public:
static void DefineJSObjects(CJS_Runtime* pRuntime);
};
diff --git a/fxjs/cjs_highlight.h b/fxjs/cjs_highlight.h
index a5fc21d..acf03e8 100644
--- a/fxjs/cjs_highlight.h
+++ b/fxjs/cjs_highlight.h
@@ -9,7 +9,7 @@
#include "fxjs/js_define.h"
-class CJS_Highlight : public CJS_Object {
+class CJS_Highlight final : public CJS_Object {
public:
static void DefineJSObjects(CFXJS_Engine* pEngine);
diff --git a/fxjs/cjs_icon.h b/fxjs/cjs_icon.h
index 6df671b..a92509d 100644
--- a/fxjs/cjs_icon.h
+++ b/fxjs/cjs_icon.h
@@ -9,7 +9,7 @@
#include "fxjs/js_define.h"
-class CJS_Icon : public CJS_Object {
+class CJS_Icon final : public CJS_Object {
public:
static int GetObjDefnID();
static void DefineJSObjects(CFXJS_Engine* pEngine);
diff --git a/fxjs/cjs_position.h b/fxjs/cjs_position.h
index 3e62bc9..3db83ff 100644
--- a/fxjs/cjs_position.h
+++ b/fxjs/cjs_position.h
@@ -9,7 +9,7 @@
#include "fxjs/js_define.h"
-class CJS_Position : public CJS_Object {
+class CJS_Position final : public CJS_Object {
public:
static void DefineJSObjects(CFXJS_Engine* pEngine);
diff --git a/fxjs/cjs_printparamsobj.h b/fxjs/cjs_printparamsobj.h
index 572d7d8..69071e6 100644
--- a/fxjs/cjs_printparamsobj.h
+++ b/fxjs/cjs_printparamsobj.h
@@ -9,7 +9,7 @@
#include "fxjs/js_define.h"
-class CJS_PrintParamsObj : public CJS_Object {
+class CJS_PrintParamsObj final : public CJS_Object {
public:
static int GetObjDefnID();
static void DefineJSObjects(CFXJS_Engine* pEngine);
diff --git a/fxjs/cjs_publicmethods.h b/fxjs/cjs_publicmethods.h
index 8ec3562..f83375c 100644
--- a/fxjs/cjs_publicmethods.h
+++ b/fxjs/cjs_publicmethods.h
@@ -12,7 +12,7 @@
#include "fxjs/js_define.h"
-class CJS_PublicMethods : public CJS_Object {
+class CJS_PublicMethods final : public CJS_Object {
public:
CJS_PublicMethods(v8::Local<v8::Object> pObject, CJS_Runtime* pRuntime);
~CJS_PublicMethods() override;
diff --git a/fxjs/cjs_report.h b/fxjs/cjs_report.h
index a969b41..6606d14 100644
--- a/fxjs/cjs_report.h
+++ b/fxjs/cjs_report.h
@@ -11,7 +11,7 @@
#include "fxjs/js_define.h"
-class CJS_Report : public CJS_Object {
+class CJS_Report final : public CJS_Object {
public:
static int GetObjDefnID();
static void DefineJSObjects(CFXJS_Engine* pEngine, FXJSOBJTYPE eObjType);
diff --git a/fxjs/cjs_runtime.h b/fxjs/cjs_runtime.h
index 73b722d..f7b2679 100644
--- a/fxjs/cjs_runtime.h
+++ b/fxjs/cjs_runtime.h
@@ -21,9 +21,9 @@
class CJS_EventContext;
-class CJS_Runtime : public IJS_Runtime,
- public CFXJS_Engine,
- public Observable<CJS_Runtime> {
+class CJS_Runtime final : public IJS_Runtime,
+ public CFXJS_Engine,
+ public Observable<CJS_Runtime> {
public:
using FieldEvent = std::pair<WideString, JS_EVENT_T>;
diff --git a/fxjs/cjs_scalehow.h b/fxjs/cjs_scalehow.h
index a0d16b3..a5e4435 100644
--- a/fxjs/cjs_scalehow.h
+++ b/fxjs/cjs_scalehow.h
@@ -9,7 +9,7 @@
#include "fxjs/js_define.h"
-class CJS_ScaleHow : public CJS_Object {
+class CJS_ScaleHow final : public CJS_Object {
public:
static void DefineJSObjects(CFXJS_Engine* pEngine);
diff --git a/fxjs/cjs_scalewhen.h b/fxjs/cjs_scalewhen.h
index f30a3bd..c0117ee 100644
--- a/fxjs/cjs_scalewhen.h
+++ b/fxjs/cjs_scalewhen.h
@@ -9,7 +9,7 @@
#include "fxjs/js_define.h"
-class CJS_ScaleWhen : public CJS_Object {
+class CJS_ScaleWhen final : public CJS_Object {
public:
static void DefineJSObjects(CFXJS_Engine* pEngine);
diff --git a/fxjs/cjs_style.h b/fxjs/cjs_style.h
index dade59f..8ddd6a3 100644
--- a/fxjs/cjs_style.h
+++ b/fxjs/cjs_style.h
@@ -9,7 +9,7 @@
#include "fxjs/js_define.h"
-class CJS_Style : public CJS_Object {
+class CJS_Style final : public CJS_Object {
public:
static void DefineJSObjects(CFXJS_Engine* pEngine);
diff --git a/fxjs/cjs_timerobj.h b/fxjs/cjs_timerobj.h
index d9dc881..5892849 100644
--- a/fxjs/cjs_timerobj.h
+++ b/fxjs/cjs_timerobj.h
@@ -11,7 +11,7 @@
class GlobalTimer;
-class CJS_TimerObj : public CJS_Object {
+class CJS_TimerObj final : public CJS_Object {
public:
static int GetObjDefnID();
static void DefineJSObjects(CFXJS_Engine* pEngine);
diff --git a/fxjs/cjs_util.h b/fxjs/cjs_util.h
index f948afb..934a0f8 100644
--- a/fxjs/cjs_util.h
+++ b/fxjs/cjs_util.h
@@ -17,7 +17,7 @@
#define UTIL_DOUBLE 1
#define UTIL_STRING 2
-class CJS_Util : public CJS_Object {
+class CJS_Util final : public CJS_Object {
public:
static int GetObjDefnID();
static void DefineJSObjects(CFXJS_Engine* pEngine);
diff --git a/fxjs/cjs_zoomtype.h b/fxjs/cjs_zoomtype.h
index 5dda997..892f72e 100644
--- a/fxjs/cjs_zoomtype.h
+++ b/fxjs/cjs_zoomtype.h
@@ -9,7 +9,7 @@
#include "fxjs/js_define.h"
-class CJS_Zoomtype : public CJS_Object {
+class CJS_Zoomtype final : public CJS_Object {
public:
static void DefineJSObjects(CFXJS_Engine* pEngine);
diff --git a/fxjs/xfa/cjx_arc.h b/fxjs/xfa/cjx_arc.h
index 2b62884..031b620 100644
--- a/fxjs/xfa/cjx_arc.h
+++ b/fxjs/xfa/cjx_arc.h
@@ -12,7 +12,7 @@
class CXFA_Arc;
-class CJX_Arc : public CJX_Node {
+class CJX_Arc final : public CJX_Node {
public:
explicit CJX_Arc(CXFA_Arc* node);
~CJX_Arc() override;
diff --git a/fxjs/xfa/cjx_area.h b/fxjs/xfa/cjx_area.h
index 2814231..5958c8a 100644
--- a/fxjs/xfa/cjx_area.h
+++ b/fxjs/xfa/cjx_area.h
@@ -12,7 +12,7 @@
class CXFA_Area;
-class CJX_Area : public CJX_Container {
+class CJX_Area final : public CJX_Container {
public:
explicit CJX_Area(CXFA_Area* node);
~CJX_Area() override;
diff --git a/fxjs/xfa/cjx_assist.h b/fxjs/xfa/cjx_assist.h
index c150a51..46aaade 100644
--- a/fxjs/xfa/cjx_assist.h
+++ b/fxjs/xfa/cjx_assist.h
@@ -12,7 +12,7 @@
class CXFA_Assist;
-class CJX_Assist : public CJX_Node {
+class CJX_Assist final : public CJX_Node {
public:
explicit CJX_Assist(CXFA_Assist* node);
~CJX_Assist() override;
diff --git a/fxjs/xfa/cjx_barcode.h b/fxjs/xfa/cjx_barcode.h
index 3901bd6..551df42 100644
--- a/fxjs/xfa/cjx_barcode.h
+++ b/fxjs/xfa/cjx_barcode.h
@@ -12,7 +12,7 @@
class CXFA_Barcode;
-class CJX_Barcode : public CJX_Node {
+class CJX_Barcode final : public CJX_Node {
public:
explicit CJX_Barcode(CXFA_Barcode* arc);
~CJX_Barcode() override;
diff --git a/fxjs/xfa/cjx_bind.h b/fxjs/xfa/cjx_bind.h
index ab22143..3ca9da7 100644
--- a/fxjs/xfa/cjx_bind.h
+++ b/fxjs/xfa/cjx_bind.h
@@ -12,7 +12,7 @@
class CXFA_Bind;
-class CJX_Bind : public CJX_Node {
+class CJX_Bind final : public CJX_Node {
public:
explicit CJX_Bind(CXFA_Bind* node);
~CJX_Bind() override;
diff --git a/fxjs/xfa/cjx_binditems.h b/fxjs/xfa/cjx_binditems.h
index 1b27d44..1bbbb2b 100644
--- a/fxjs/xfa/cjx_binditems.h
+++ b/fxjs/xfa/cjx_binditems.h
@@ -12,7 +12,7 @@
class CXFA_BindItems;
-class CJX_BindItems : public CJX_Node {
+class CJX_BindItems final : public CJX_Node {
public:
explicit CJX_BindItems(CXFA_BindItems* node);
~CJX_BindItems() override;
diff --git a/fxjs/xfa/cjx_bookend.h b/fxjs/xfa/cjx_bookend.h
index fa3f1ca..9015205 100644
--- a/fxjs/xfa/cjx_bookend.h
+++ b/fxjs/xfa/cjx_bookend.h
@@ -12,7 +12,7 @@
class CXFA_Bookend;
-class CJX_Bookend : public CJX_Node {
+class CJX_Bookend final : public CJX_Node {
public:
explicit CJX_Bookend(CXFA_Bookend* node);
~CJX_Bookend() override;
diff --git a/fxjs/xfa/cjx_boolean.h b/fxjs/xfa/cjx_boolean.h
index 4242c55..380351d6 100644
--- a/fxjs/xfa/cjx_boolean.h
+++ b/fxjs/xfa/cjx_boolean.h
@@ -12,7 +12,7 @@
class CXFA_Boolean;
-class CJX_Boolean : public CJX_Content {
+class CJX_Boolean final : public CJX_Content {
public:
explicit CJX_Boolean(CXFA_Boolean* node);
~CJX_Boolean() override;
diff --git a/fxjs/xfa/cjx_border.h b/fxjs/xfa/cjx_border.h
index abeb577..c89b546 100644
--- a/fxjs/xfa/cjx_border.h
+++ b/fxjs/xfa/cjx_border.h
@@ -12,7 +12,7 @@
class CXFA_Border;
-class CJX_Border : public CJX_Node {
+class CJX_Border final : public CJX_Node {
public:
explicit CJX_Border(CXFA_Border* node);
~CJX_Border() override;
diff --git a/fxjs/xfa/cjx_break.h b/fxjs/xfa/cjx_break.h
index c9090d9..7391217 100644
--- a/fxjs/xfa/cjx_break.h
+++ b/fxjs/xfa/cjx_break.h
@@ -12,7 +12,7 @@
class CXFA_Break;
-class CJX_Break : public CJX_Node {
+class CJX_Break final : public CJX_Node {
public:
explicit CJX_Break(CXFA_Break* node);
~CJX_Break() override;
diff --git a/fxjs/xfa/cjx_breakafter.h b/fxjs/xfa/cjx_breakafter.h
index 7028c51..cd89f34 100644
--- a/fxjs/xfa/cjx_breakafter.h
+++ b/fxjs/xfa/cjx_breakafter.h
@@ -12,7 +12,7 @@
class CXFA_BreakAfter;
-class CJX_BreakAfter : public CJX_Node {
+class CJX_BreakAfter final : public CJX_Node {
public:
explicit CJX_BreakAfter(CXFA_BreakAfter* node);
~CJX_BreakAfter() override;
diff --git a/fxjs/xfa/cjx_breakbefore.h b/fxjs/xfa/cjx_breakbefore.h
index b4251c9..59f07c0 100644
--- a/fxjs/xfa/cjx_breakbefore.h
+++ b/fxjs/xfa/cjx_breakbefore.h
@@ -12,7 +12,7 @@
class CXFA_BreakBefore;
-class CJX_BreakBefore : public CJX_Node {
+class CJX_BreakBefore final : public CJX_Node {
public:
explicit CJX_BreakBefore(CXFA_BreakBefore* node);
~CJX_BreakBefore() override;
diff --git a/fxjs/xfa/cjx_button.h b/fxjs/xfa/cjx_button.h
index bf38aa4..9fe5061 100644
--- a/fxjs/xfa/cjx_button.h
+++ b/fxjs/xfa/cjx_button.h
@@ -12,7 +12,7 @@
class CXFA_Button;
-class CJX_Button : public CJX_Node {
+class CJX_Button final : public CJX_Node {
public:
explicit CJX_Button(CXFA_Button* node);
~CJX_Button() override;
diff --git a/fxjs/xfa/cjx_calculate.h b/fxjs/xfa/cjx_calculate.h
index 1b4c149..29dc732 100644
--- a/fxjs/xfa/cjx_calculate.h
+++ b/fxjs/xfa/cjx_calculate.h
@@ -12,7 +12,7 @@
class CXFA_Calculate;
-class CJX_Calculate : public CJX_Node {
+class CJX_Calculate final : public CJX_Node {
public:
explicit CJX_Calculate(CXFA_Calculate* node);
~CJX_Calculate() override;
diff --git a/fxjs/xfa/cjx_caption.h b/fxjs/xfa/cjx_caption.h
index d924147..ae89ed0 100644
--- a/fxjs/xfa/cjx_caption.h
+++ b/fxjs/xfa/cjx_caption.h
@@ -12,7 +12,7 @@
class CXFA_Caption;
-class CJX_Caption : public CJX_Node {
+class CJX_Caption final : public CJX_Node {
public:
explicit CJX_Caption(CXFA_Caption* node);
~CJX_Caption() override;
diff --git a/fxjs/xfa/cjx_certificate.h b/fxjs/xfa/cjx_certificate.h
index 8be791d..93a323a 100644
--- a/fxjs/xfa/cjx_certificate.h
+++ b/fxjs/xfa/cjx_certificate.h
@@ -12,7 +12,7 @@
class CXFA_Certificate;
-class CJX_Certificate : public CJX_TextNode {
+class CJX_Certificate final : public CJX_TextNode {
public:
explicit CJX_Certificate(CXFA_Certificate* node);
~CJX_Certificate() override;
diff --git a/fxjs/xfa/cjx_certificates.h b/fxjs/xfa/cjx_certificates.h
index 42ce885..b792efb 100644
--- a/fxjs/xfa/cjx_certificates.h
+++ b/fxjs/xfa/cjx_certificates.h
@@ -12,7 +12,7 @@
class CXFA_Certificates;
-class CJX_Certificates : public CJX_Node {
+class CJX_Certificates final : public CJX_Node {
public:
explicit CJX_Certificates(CXFA_Certificates* node);
~CJX_Certificates() override;
diff --git a/fxjs/xfa/cjx_checkbutton.h b/fxjs/xfa/cjx_checkbutton.h
index 3b78d71..82a96d4 100644
--- a/fxjs/xfa/cjx_checkbutton.h
+++ b/fxjs/xfa/cjx_checkbutton.h
@@ -12,7 +12,7 @@
class CXFA_CheckButton;
-class CJX_CheckButton : public CJX_Node {
+class CJX_CheckButton final : public CJX_Node {
public:
explicit CJX_CheckButton(CXFA_CheckButton* node);
~CJX_CheckButton() override;
diff --git a/fxjs/xfa/cjx_choicelist.h b/fxjs/xfa/cjx_choicelist.h
index 3bf947c..e1add2d 100644
--- a/fxjs/xfa/cjx_choicelist.h
+++ b/fxjs/xfa/cjx_choicelist.h
@@ -12,7 +12,7 @@
class CXFA_ChoiceList;
-class CJX_ChoiceList : public CJX_Node {
+class CJX_ChoiceList final : public CJX_Node {
public:
explicit CJX_ChoiceList(CXFA_ChoiceList* node);
~CJX_ChoiceList() override;
diff --git a/fxjs/xfa/cjx_color.h b/fxjs/xfa/cjx_color.h
index e048aca..d0816bb 100644
--- a/fxjs/xfa/cjx_color.h
+++ b/fxjs/xfa/cjx_color.h
@@ -12,7 +12,7 @@
class CXFA_Color;
-class CJX_Color : public CJX_Node {
+class CJX_Color final : public CJX_Node {
public:
explicit CJX_Color(CXFA_Color* node);
~CJX_Color() override;
diff --git a/fxjs/xfa/cjx_comb.h b/fxjs/xfa/cjx_comb.h
index abcf8c0..073adf5 100644
--- a/fxjs/xfa/cjx_comb.h
+++ b/fxjs/xfa/cjx_comb.h
@@ -12,7 +12,7 @@
class CXFA_Comb;
-class CJX_Comb : public CJX_Node {
+class CJX_Comb final : public CJX_Node {
public:
explicit CJX_Comb(CXFA_Comb* node);
~CJX_Comb() override;
diff --git a/fxjs/xfa/cjx_command.h b/fxjs/xfa/cjx_command.h
index e645baf..b876d69 100644
--- a/fxjs/xfa/cjx_command.h
+++ b/fxjs/xfa/cjx_command.h
@@ -12,7 +12,7 @@
class CXFA_Command;
-class CJX_Command : public CJX_Node {
+class CJX_Command final : public CJX_Node {
public:
explicit CJX_Command(CXFA_Command* node);
~CJX_Command() override;
diff --git a/fxjs/xfa/cjx_connect.h b/fxjs/xfa/cjx_connect.h
index 77cee4f..5ebb93e 100644
--- a/fxjs/xfa/cjx_connect.h
+++ b/fxjs/xfa/cjx_connect.h
@@ -12,7 +12,7 @@
class CXFA_Connect;
-class CJX_Connect : public CJX_Node {
+class CJX_Connect final : public CJX_Node {
public:
explicit CJX_Connect(CXFA_Connect* node);
~CJX_Connect() override;
diff --git a/fxjs/xfa/cjx_connectstring.h b/fxjs/xfa/cjx_connectstring.h
index f40a867..8a6beb3 100644
--- a/fxjs/xfa/cjx_connectstring.h
+++ b/fxjs/xfa/cjx_connectstring.h
@@ -12,7 +12,7 @@
class CXFA_ConnectString;
-class CJX_ConnectString : public CJX_TextNode {
+class CJX_ConnectString final : public CJX_TextNode {
public:
explicit CJX_ConnectString(CXFA_ConnectString* node);
~CJX_ConnectString() override;
diff --git a/fxjs/xfa/cjx_contentarea.h b/fxjs/xfa/cjx_contentarea.h
index aeed6b6..82cbde1 100644
--- a/fxjs/xfa/cjx_contentarea.h
+++ b/fxjs/xfa/cjx_contentarea.h
@@ -12,7 +12,7 @@
class CXFA_ContentArea;
-class CJX_ContentArea : public CJX_Container {
+class CJX_ContentArea final : public CJX_Container {
public:
explicit CJX_ContentArea(CXFA_ContentArea* node);
~CJX_ContentArea() override;
diff --git a/fxjs/xfa/cjx_corner.h b/fxjs/xfa/cjx_corner.h
index 8db2524..905c05c 100644
--- a/fxjs/xfa/cjx_corner.h
+++ b/fxjs/xfa/cjx_corner.h
@@ -12,7 +12,7 @@
class CXFA_Corner;
-class CJX_Corner : public CJX_Node {
+class CJX_Corner final : public CJX_Node {
public:
explicit CJX_Corner(CXFA_Corner* node);
~CJX_Corner() override;
diff --git a/fxjs/xfa/cjx_datavalue.h b/fxjs/xfa/cjx_datavalue.h
index 00bf5cf..6368997 100644
--- a/fxjs/xfa/cjx_datavalue.h
+++ b/fxjs/xfa/cjx_datavalue.h
@@ -12,7 +12,7 @@
class CXFA_DataValue;
-class CJX_DataValue : public CJX_Node {
+class CJX_DataValue final : public CJX_Node {
public:
explicit CJX_DataValue(CXFA_DataValue* node);
~CJX_DataValue() override;
diff --git a/fxjs/xfa/cjx_datawindow.h b/fxjs/xfa/cjx_datawindow.h
index d8e697d..c148cb9 100644
--- a/fxjs/xfa/cjx_datawindow.h
+++ b/fxjs/xfa/cjx_datawindow.h
@@ -14,7 +14,7 @@
class CFXJSE_Value;
class CScript_DataWindow;
-class CJX_DataWindow : public CJX_Object {
+class CJX_DataWindow final : public CJX_Object {
public:
explicit CJX_DataWindow(CScript_DataWindow* window);
~CJX_DataWindow() override;
diff --git a/fxjs/xfa/cjx_date.h b/fxjs/xfa/cjx_date.h
index c788937..95c188c 100644
--- a/fxjs/xfa/cjx_date.h
+++ b/fxjs/xfa/cjx_date.h
@@ -12,7 +12,7 @@
class CXFA_Date;
-class CJX_Date : public CJX_Content {
+class CJX_Date final : public CJX_Content {
public:
explicit CJX_Date(CXFA_Date* node);
~CJX_Date() override;
diff --git a/fxjs/xfa/cjx_datetime.h b/fxjs/xfa/cjx_datetime.h
index 1079660..2b62a3b 100644
--- a/fxjs/xfa/cjx_datetime.h
+++ b/fxjs/xfa/cjx_datetime.h
@@ -12,7 +12,7 @@
class CXFA_DateTime;
-class CJX_DateTime : public CJX_Node {
+class CJX_DateTime final : public CJX_Node {
public:
explicit CJX_DateTime(CXFA_DateTime* node);
~CJX_DateTime() override;
diff --git a/fxjs/xfa/cjx_datetimeedit.h b/fxjs/xfa/cjx_datetimeedit.h
index d90a4cf..449df36 100644
--- a/fxjs/xfa/cjx_datetimeedit.h
+++ b/fxjs/xfa/cjx_datetimeedit.h
@@ -12,7 +12,7 @@
class CXFA_DateTimeEdit;
-class CJX_DateTimeEdit : public CJX_Node {
+class CJX_DateTimeEdit final : public CJX_Node {
public:
explicit CJX_DateTimeEdit(CXFA_DateTimeEdit* node);
~CJX_DateTimeEdit() override;
diff --git a/fxjs/xfa/cjx_decimal.h b/fxjs/xfa/cjx_decimal.h
index b7ddec9..7511040 100644
--- a/fxjs/xfa/cjx_decimal.h
+++ b/fxjs/xfa/cjx_decimal.h
@@ -12,7 +12,7 @@
class CXFA_Decimal;
-class CJX_Decimal : public CJX_Content {
+class CJX_Decimal final : public CJX_Content {
public:
explicit CJX_Decimal(CXFA_Decimal* node);
~CJX_Decimal() override;
diff --git a/fxjs/xfa/cjx_defaultui.h b/fxjs/xfa/cjx_defaultui.h
index 29954fd..5e70109 100644
--- a/fxjs/xfa/cjx_defaultui.h
+++ b/fxjs/xfa/cjx_defaultui.h
@@ -12,7 +12,7 @@
class CXFA_DefaultUi;
-class CJX_DefaultUi : public CJX_Node {
+class CJX_DefaultUi final : public CJX_Node {
public:
explicit CJX_DefaultUi(CXFA_DefaultUi* node);
~CJX_DefaultUi() override;
diff --git a/fxjs/xfa/cjx_delete.h b/fxjs/xfa/cjx_delete.h
index e89b1e4..c35cc14 100644
--- a/fxjs/xfa/cjx_delete.h
+++ b/fxjs/xfa/cjx_delete.h
@@ -12,7 +12,7 @@
class CXFA_Delete;
-class CJX_Delete : public CJX_TextNode {
+class CJX_Delete final : public CJX_TextNode {
public:
explicit CJX_Delete(CXFA_Delete* node);
~CJX_Delete() override;
diff --git a/fxjs/xfa/cjx_delta.h b/fxjs/xfa/cjx_delta.h
index 9458599..c499681 100644
--- a/fxjs/xfa/cjx_delta.h
+++ b/fxjs/xfa/cjx_delta.h
@@ -12,7 +12,7 @@
class CXFA_Delta;
-class CJX_Delta : public CJX_Object {
+class CJX_Delta final : public CJX_Object {
public:
explicit CJX_Delta(CXFA_Delta* delta);
~CJX_Delta() override;
diff --git a/fxjs/xfa/cjx_deltas.h b/fxjs/xfa/cjx_deltas.h
index c94753f..7b07a7c 100644
--- a/fxjs/xfa/cjx_deltas.h
+++ b/fxjs/xfa/cjx_deltas.h
@@ -11,7 +11,7 @@
class CXFA_Deltas;
-class CJX_Deltas : public CJX_List {
+class CJX_Deltas final : public CJX_List {
public:
explicit CJX_Deltas(CXFA_Deltas* node);
~CJX_Deltas() override;
diff --git a/fxjs/xfa/cjx_desc.h b/fxjs/xfa/cjx_desc.h
index d30b222..99cb9ba 100644
--- a/fxjs/xfa/cjx_desc.h
+++ b/fxjs/xfa/cjx_desc.h
@@ -12,7 +12,7 @@
class CXFA_Desc;
-class CJX_Desc : public CJX_Node {
+class CJX_Desc final : public CJX_Node {
public:
explicit CJX_Desc(CXFA_Desc* desc);
~CJX_Desc() override;
diff --git a/fxjs/xfa/cjx_digestmethod.h b/fxjs/xfa/cjx_digestmethod.h
index f4050f2..beb0cd2 100644
--- a/fxjs/xfa/cjx_digestmethod.h
+++ b/fxjs/xfa/cjx_digestmethod.h
@@ -12,7 +12,7 @@
class CXFA_DigestMethod;
-class CJX_DigestMethod : public CJX_Node {
+class CJX_DigestMethod final : public CJX_Node {
public:
explicit CJX_DigestMethod(CXFA_DigestMethod* node);
~CJX_DigestMethod() override;
diff --git a/fxjs/xfa/cjx_digestmethods.h b/fxjs/xfa/cjx_digestmethods.h
index c616584..c011a3d 100644
--- a/fxjs/xfa/cjx_digestmethods.h
+++ b/fxjs/xfa/cjx_digestmethods.h
@@ -12,7 +12,7 @@
class CXFA_DigestMethods;
-class CJX_DigestMethods : public CJX_Node {
+class CJX_DigestMethods final : public CJX_Node {
public:
explicit CJX_DigestMethods(CXFA_DigestMethods* node);
~CJX_DigestMethods() override;
diff --git a/fxjs/xfa/cjx_draw.h b/fxjs/xfa/cjx_draw.h
index 508d3e1..4f53bef 100644
--- a/fxjs/xfa/cjx_draw.h
+++ b/fxjs/xfa/cjx_draw.h
@@ -12,7 +12,7 @@
class CXFA_Draw;
-class CJX_Draw : public CJX_Container {
+class CJX_Draw final : public CJX_Container {
public:
explicit CJX_Draw(CXFA_Draw* node);
~CJX_Draw() override;
diff --git a/fxjs/xfa/cjx_edge.h b/fxjs/xfa/cjx_edge.h
index c830a8d..ed3d7cc 100644
--- a/fxjs/xfa/cjx_edge.h
+++ b/fxjs/xfa/cjx_edge.h
@@ -12,7 +12,7 @@
class CXFA_Edge;
-class CJX_Edge : public CJX_Node {
+class CJX_Edge final : public CJX_Node {
public:
explicit CJX_Edge(CXFA_Edge* node);
~CJX_Edge() override;
diff --git a/fxjs/xfa/cjx_encoding.h b/fxjs/xfa/cjx_encoding.h
index ade3e38..4c02df5 100644
--- a/fxjs/xfa/cjx_encoding.h
+++ b/fxjs/xfa/cjx_encoding.h
@@ -12,7 +12,7 @@
class CXFA_Encoding;
-class CJX_Encoding : public CJX_Node {
+class CJX_Encoding final : public CJX_Node {
public:
explicit CJX_Encoding(CXFA_Encoding* node);
~CJX_Encoding() override;
diff --git a/fxjs/xfa/cjx_encodings.h b/fxjs/xfa/cjx_encodings.h
index e2f4376..b1642f7 100644
--- a/fxjs/xfa/cjx_encodings.h
+++ b/fxjs/xfa/cjx_encodings.h
@@ -12,7 +12,7 @@
class CXFA_Encodings;
-class CJX_Encodings : public CJX_Node {
+class CJX_Encodings final : public CJX_Node {
public:
explicit CJX_Encodings(CXFA_Encodings* node);
~CJX_Encodings() override;
diff --git a/fxjs/xfa/cjx_encrypt.h b/fxjs/xfa/cjx_encrypt.h
index acbccf7..7bb31f7 100644
--- a/fxjs/xfa/cjx_encrypt.h
+++ b/fxjs/xfa/cjx_encrypt.h
@@ -12,7 +12,7 @@
class CXFA_Encrypt;
-class CJX_Encrypt : public CJX_Node {
+class CJX_Encrypt final : public CJX_Node {
public:
explicit CJX_Encrypt(CXFA_Encrypt* node);
~CJX_Encrypt() override;
diff --git a/fxjs/xfa/cjx_event.h b/fxjs/xfa/cjx_event.h
index d8c8b03..64cd84b 100644
--- a/fxjs/xfa/cjx_event.h
+++ b/fxjs/xfa/cjx_event.h
@@ -12,7 +12,7 @@
class CXFA_Event;
-class CJX_Event : public CJX_Node {
+class CJX_Event final : public CJX_Node {
public:
explicit CJX_Event(CXFA_Event* node);
~CJX_Event() override;
diff --git a/fxjs/xfa/cjx_eventpseudomodel.h b/fxjs/xfa/cjx_eventpseudomodel.h
index c52871e..3a51098 100644
--- a/fxjs/xfa/cjx_eventpseudomodel.h
+++ b/fxjs/xfa/cjx_eventpseudomodel.h
@@ -33,7 +33,7 @@
CancelAction
};
-class CJX_EventPseudoModel : public CJX_Object {
+class CJX_EventPseudoModel final : public CJX_Object {
public:
explicit CJX_EventPseudoModel(CScript_EventPseudoModel* model);
~CJX_EventPseudoModel() override;
diff --git a/fxjs/xfa/cjx_exclgroup.h b/fxjs/xfa/cjx_exclgroup.h
index 492fb12..2387079 100644
--- a/fxjs/xfa/cjx_exclgroup.h
+++ b/fxjs/xfa/cjx_exclgroup.h
@@ -12,7 +12,7 @@
class CXFA_ExclGroup;
-class CJX_ExclGroup : public CJX_Node {
+class CJX_ExclGroup final : public CJX_Node {
public:
explicit CJX_ExclGroup(CXFA_ExclGroup* group);
~CJX_ExclGroup() override;
diff --git a/fxjs/xfa/cjx_exdata.h b/fxjs/xfa/cjx_exdata.h
index 06a5d21..b25ef07 100644
--- a/fxjs/xfa/cjx_exdata.h
+++ b/fxjs/xfa/cjx_exdata.h
@@ -12,7 +12,7 @@
class CXFA_ExData;
-class CJX_ExData : public CJX_Content {
+class CJX_ExData final : public CJX_Content {
public:
explicit CJX_ExData(CXFA_ExData* node);
~CJX_ExData() override;
diff --git a/fxjs/xfa/cjx_execute.h b/fxjs/xfa/cjx_execute.h
index 338f8c3..29e4480 100644
--- a/fxjs/xfa/cjx_execute.h
+++ b/fxjs/xfa/cjx_execute.h
@@ -12,7 +12,7 @@
class CXFA_Execute;
-class CJX_Execute : public CJX_Node {
+class CJX_Execute final : public CJX_Node {
public:
explicit CJX_Execute(CXFA_Execute* node);
~CJX_Execute() override;
diff --git a/fxjs/xfa/cjx_exobject.h b/fxjs/xfa/cjx_exobject.h
index 2e10362..2dc7e79 100644
--- a/fxjs/xfa/cjx_exobject.h
+++ b/fxjs/xfa/cjx_exobject.h
@@ -12,7 +12,7 @@
class CXFA_ExObject;
-class CJX_ExObject : public CJX_Node {
+class CJX_ExObject final : public CJX_Node {
public:
explicit CJX_ExObject(CXFA_ExObject* node);
~CJX_ExObject() override;
diff --git a/fxjs/xfa/cjx_extras.h b/fxjs/xfa/cjx_extras.h
index 829aa9d..b236536 100644
--- a/fxjs/xfa/cjx_extras.h
+++ b/fxjs/xfa/cjx_extras.h
@@ -12,7 +12,7 @@
class CXFA_Extras;
-class CJX_Extras : public CJX_Node {
+class CJX_Extras final : public CJX_Node {
public:
explicit CJX_Extras(CXFA_Extras* node);
~CJX_Extras() override;
diff --git a/fxjs/xfa/cjx_field.h b/fxjs/xfa/cjx_field.h
index bc8f2cf..0f9e299 100644
--- a/fxjs/xfa/cjx_field.h
+++ b/fxjs/xfa/cjx_field.h
@@ -12,7 +12,7 @@
class CXFA_Field;
-class CJX_Field : public CJX_Container {
+class CJX_Field final : public CJX_Container {
public:
explicit CJX_Field(CXFA_Field* field);
~CJX_Field() override;
diff --git a/fxjs/xfa/cjx_fill.h b/fxjs/xfa/cjx_fill.h
index 064a249..b8377d3 100644
--- a/fxjs/xfa/cjx_fill.h
+++ b/fxjs/xfa/cjx_fill.h
@@ -12,7 +12,7 @@
class CXFA_Fill;
-class CJX_Fill : public CJX_Node {
+class CJX_Fill final : public CJX_Node {
public:
explicit CJX_Fill(CXFA_Fill* node);
~CJX_Fill() override;
diff --git a/fxjs/xfa/cjx_filter.h b/fxjs/xfa/cjx_filter.h
index 6012123..c527286 100644
--- a/fxjs/xfa/cjx_filter.h
+++ b/fxjs/xfa/cjx_filter.h
@@ -12,7 +12,7 @@
class CXFA_Filter;
-class CJX_Filter : public CJX_Node {
+class CJX_Filter final : public CJX_Node {
public:
explicit CJX_Filter(CXFA_Filter* node);
~CJX_Filter() override;
diff --git a/fxjs/xfa/cjx_float.h b/fxjs/xfa/cjx_float.h
index 2f8c934..12dbe57 100644
--- a/fxjs/xfa/cjx_float.h
+++ b/fxjs/xfa/cjx_float.h
@@ -12,7 +12,7 @@
class CXFA_Float;
-class CJX_Float : public CJX_Content {
+class CJX_Float final : public CJX_Content {
public:
explicit CJX_Float(CXFA_Float* node);
~CJX_Float() override;
diff --git a/fxjs/xfa/cjx_font.h b/fxjs/xfa/cjx_font.h
index a5a1356..9cd8944 100644
--- a/fxjs/xfa/cjx_font.h
+++ b/fxjs/xfa/cjx_font.h
@@ -12,7 +12,7 @@
class CXFA_Font;
-class CJX_Font : public CJX_Node {
+class CJX_Font final : public CJX_Node {
public:
explicit CJX_Font(CXFA_Font* node);
~CJX_Font() override;
diff --git a/fxjs/xfa/cjx_form.h b/fxjs/xfa/cjx_form.h
index f2325b3..67c7b10 100644
--- a/fxjs/xfa/cjx_form.h
+++ b/fxjs/xfa/cjx_form.h
@@ -12,7 +12,7 @@
class CXFA_Form;
-class CJX_Form : public CJX_Model {
+class CJX_Form final : public CJX_Model {
public:
explicit CJX_Form(CXFA_Form* form);
~CJX_Form() override;
diff --git a/fxjs/xfa/cjx_format.h b/fxjs/xfa/cjx_format.h
index 3f4a42b..cb4a8cc 100644
--- a/fxjs/xfa/cjx_format.h
+++ b/fxjs/xfa/cjx_format.h
@@ -12,7 +12,7 @@
class CXFA_Format;
-class CJX_Format : public CJX_Node {
+class CJX_Format final : public CJX_Node {
public:
explicit CJX_Format(CXFA_Format* node);
~CJX_Format() override;
diff --git a/fxjs/xfa/cjx_handler.h b/fxjs/xfa/cjx_handler.h
index feb0e6d..79aa3a1 100644
--- a/fxjs/xfa/cjx_handler.h
+++ b/fxjs/xfa/cjx_handler.h
@@ -12,7 +12,7 @@
class CXFA_Handler;
-class CJX_Handler : public CJX_TextNode {
+class CJX_Handler final : public CJX_TextNode {
public:
explicit CJX_Handler(CXFA_Handler* node);
~CJX_Handler() override;
diff --git a/fxjs/xfa/cjx_hostpseudomodel.h b/fxjs/xfa/cjx_hostpseudomodel.h
index 7ef7d03..0991aec 100644
--- a/fxjs/xfa/cjx_hostpseudomodel.h
+++ b/fxjs/xfa/cjx_hostpseudomodel.h
@@ -14,7 +14,7 @@
class CFXJSE_Value;
class CScript_HostPseudoModel;
-class CJX_HostPseudoModel : public CJX_Object {
+class CJX_HostPseudoModel final : public CJX_Object {
public:
explicit CJX_HostPseudoModel(CScript_HostPseudoModel* model);
~CJX_HostPseudoModel() override;
diff --git a/fxjs/xfa/cjx_image.h b/fxjs/xfa/cjx_image.h
index 682ea31..71f859d 100644
--- a/fxjs/xfa/cjx_image.h
+++ b/fxjs/xfa/cjx_image.h
@@ -12,7 +12,7 @@
class CXFA_Image;
-class CJX_Image : public CJX_Node {
+class CJX_Image final : public CJX_Node {
public:
explicit CJX_Image(CXFA_Image* node);
~CJX_Image() override;
diff --git a/fxjs/xfa/cjx_imageedit.h b/fxjs/xfa/cjx_imageedit.h
index 6b7f1d3..9fda373 100644
--- a/fxjs/xfa/cjx_imageedit.h
+++ b/fxjs/xfa/cjx_imageedit.h
@@ -12,7 +12,7 @@
class CXFA_ImageEdit;
-class CJX_ImageEdit : public CJX_Node {
+class CJX_ImageEdit final : public CJX_Node {
public:
explicit CJX_ImageEdit(CXFA_ImageEdit* node);
~CJX_ImageEdit() override;
diff --git a/fxjs/xfa/cjx_insert.h b/fxjs/xfa/cjx_insert.h
index 888a246..a414526 100644
--- a/fxjs/xfa/cjx_insert.h
+++ b/fxjs/xfa/cjx_insert.h
@@ -12,7 +12,7 @@
class CXFA_Insert;
-class CJX_Insert : public CJX_TextNode {
+class CJX_Insert final : public CJX_TextNode {
public:
explicit CJX_Insert(CXFA_Insert* node);
~CJX_Insert() override;
diff --git a/fxjs/xfa/cjx_instancemanager.h b/fxjs/xfa/cjx_instancemanager.h
index b151d71..139dbe3 100644
--- a/fxjs/xfa/cjx_instancemanager.h
+++ b/fxjs/xfa/cjx_instancemanager.h
@@ -12,7 +12,7 @@
class CXFA_InstanceManager;
-class CJX_InstanceManager : public CJX_Node {
+class CJX_InstanceManager final : public CJX_Node {
public:
explicit CJX_InstanceManager(CXFA_InstanceManager* mgr);
~CJX_InstanceManager() override;
diff --git a/fxjs/xfa/cjx_integer.h b/fxjs/xfa/cjx_integer.h
index 426235b..e15deb9 100644
--- a/fxjs/xfa/cjx_integer.h
+++ b/fxjs/xfa/cjx_integer.h
@@ -12,7 +12,7 @@
class CXFA_Integer;
-class CJX_Integer : public CJX_Content {
+class CJX_Integer final : public CJX_Content {
public:
explicit CJX_Integer(CXFA_Integer* node);
~CJX_Integer() override;
diff --git a/fxjs/xfa/cjx_issuers.h b/fxjs/xfa/cjx_issuers.h
index bdd777a..23a7457 100644
--- a/fxjs/xfa/cjx_issuers.h
+++ b/fxjs/xfa/cjx_issuers.h
@@ -12,7 +12,7 @@
class CXFA_Issuers;
-class CJX_Issuers : public CJX_Node {
+class CJX_Issuers final : public CJX_Node {
public:
explicit CJX_Issuers(CXFA_Issuers* node);
~CJX_Issuers() override;
diff --git a/fxjs/xfa/cjx_items.h b/fxjs/xfa/cjx_items.h
index 039757f..d29fee7 100644
--- a/fxjs/xfa/cjx_items.h
+++ b/fxjs/xfa/cjx_items.h
@@ -12,7 +12,7 @@
class CXFA_Items;
-class CJX_Items : public CJX_Node {
+class CJX_Items final : public CJX_Node {
public:
explicit CJX_Items(CXFA_Items* node);
~CJX_Items() override;
diff --git a/fxjs/xfa/cjx_keep.h b/fxjs/xfa/cjx_keep.h
index 3e1166f..c5fcb25 100644
--- a/fxjs/xfa/cjx_keep.h
+++ b/fxjs/xfa/cjx_keep.h
@@ -12,7 +12,7 @@
class CXFA_Keep;
-class CJX_Keep : public CJX_Node {
+class CJX_Keep final : public CJX_Node {
public:
explicit CJX_Keep(CXFA_Keep* node);
~CJX_Keep() override;
diff --git a/fxjs/xfa/cjx_keyusage.h b/fxjs/xfa/cjx_keyusage.h
index 54ec8df..470ece6 100644
--- a/fxjs/xfa/cjx_keyusage.h
+++ b/fxjs/xfa/cjx_keyusage.h
@@ -12,7 +12,7 @@
class CXFA_KeyUsage;
-class CJX_KeyUsage : public CJX_Node {
+class CJX_KeyUsage final : public CJX_Node {
public:
explicit CJX_KeyUsage(CXFA_KeyUsage* node);
~CJX_KeyUsage() override;
diff --git a/fxjs/xfa/cjx_layoutpseudomodel.h b/fxjs/xfa/cjx_layoutpseudomodel.h
index 3fd77ef..a252eaa 100644
--- a/fxjs/xfa/cjx_layoutpseudomodel.h
+++ b/fxjs/xfa/cjx_layoutpseudomodel.h
@@ -24,7 +24,7 @@
class CXFA_LayoutProcessor;
class CXFA_Node;
-class CJX_LayoutPseudoModel : public CJX_Object {
+class CJX_LayoutPseudoModel final : public CJX_Object {
public:
explicit CJX_LayoutPseudoModel(CScript_LayoutPseudoModel* model);
~CJX_LayoutPseudoModel() override;
diff --git a/fxjs/xfa/cjx_line.h b/fxjs/xfa/cjx_line.h
index 48e8a4e..e7b0e8e 100644
--- a/fxjs/xfa/cjx_line.h
+++ b/fxjs/xfa/cjx_line.h
@@ -12,7 +12,7 @@
class CXFA_Line;
-class CJX_Line : public CJX_Node {
+class CJX_Line final : public CJX_Node {
public:
explicit CJX_Line(CXFA_Line* node);
~CJX_Line() override;
diff --git a/fxjs/xfa/cjx_linear.h b/fxjs/xfa/cjx_linear.h
index b1d3a88..979511c 100644
--- a/fxjs/xfa/cjx_linear.h
+++ b/fxjs/xfa/cjx_linear.h
@@ -12,7 +12,7 @@
class CXFA_Linear;
-class CJX_Linear : public CJX_Node {
+class CJX_Linear final : public CJX_Node {
public:
explicit CJX_Linear(CXFA_Linear* node);
~CJX_Linear() override;
diff --git a/fxjs/xfa/cjx_logpseudomodel.h b/fxjs/xfa/cjx_logpseudomodel.h
index 3994411..dbf097f 100644
--- a/fxjs/xfa/cjx_logpseudomodel.h
+++ b/fxjs/xfa/cjx_logpseudomodel.h
@@ -14,7 +14,7 @@
// TODO(dsinclair): This doesn't exist in the spec. Remove after
// xfa_basic_data_element_script is removed.
-class CJX_LogPseudoModel : public CJX_Object {
+class CJX_LogPseudoModel final : public CJX_Object {
public:
explicit CJX_LogPseudoModel(CScript_LogPseudoModel* model);
~CJX_LogPseudoModel() override;
diff --git a/fxjs/xfa/cjx_manifest.h b/fxjs/xfa/cjx_manifest.h
index fa16b47..717e1f1 100644
--- a/fxjs/xfa/cjx_manifest.h
+++ b/fxjs/xfa/cjx_manifest.h
@@ -12,7 +12,7 @@
class CXFA_Manifest;
-class CJX_Manifest : public CJX_Node {
+class CJX_Manifest final : public CJX_Node {
public:
explicit CJX_Manifest(CXFA_Manifest* manifest);
~CJX_Manifest() override;
diff --git a/fxjs/xfa/cjx_map.h b/fxjs/xfa/cjx_map.h
index 7a0eb37..8178384 100644
--- a/fxjs/xfa/cjx_map.h
+++ b/fxjs/xfa/cjx_map.h
@@ -12,7 +12,7 @@
class CXFA_Map;
-class CJX_Map : public CJX_Node {
+class CJX_Map final : public CJX_Node {
public:
explicit CJX_Map(CXFA_Map* node);
~CJX_Map() override;
diff --git a/fxjs/xfa/cjx_margin.h b/fxjs/xfa/cjx_margin.h
index be0e220..6cac5a3 100644
--- a/fxjs/xfa/cjx_margin.h
+++ b/fxjs/xfa/cjx_margin.h
@@ -12,7 +12,7 @@
class CXFA_Margin;
-class CJX_Margin : public CJX_Node {
+class CJX_Margin final : public CJX_Node {
public:
explicit CJX_Margin(CXFA_Margin* node);
~CJX_Margin() override;
diff --git a/fxjs/xfa/cjx_mdp.h b/fxjs/xfa/cjx_mdp.h
index a58dc82..833e2db 100644
--- a/fxjs/xfa/cjx_mdp.h
+++ b/fxjs/xfa/cjx_mdp.h
@@ -12,7 +12,7 @@
class CXFA_Mdp;
-class CJX_Mdp : public CJX_Node {
+class CJX_Mdp final : public CJX_Node {
public:
explicit CJX_Mdp(CXFA_Mdp* node);
~CJX_Mdp() override;
diff --git a/fxjs/xfa/cjx_medium.h b/fxjs/xfa/cjx_medium.h
index 88daa1b..1efb34b 100644
--- a/fxjs/xfa/cjx_medium.h
+++ b/fxjs/xfa/cjx_medium.h
@@ -12,7 +12,7 @@
class CXFA_Medium;
-class CJX_Medium : public CJX_Node {
+class CJX_Medium final : public CJX_Node {
public:
explicit CJX_Medium(CXFA_Medium* node);
~CJX_Medium() override;
diff --git a/fxjs/xfa/cjx_message.h b/fxjs/xfa/cjx_message.h
index 989a2de..f5c577c 100644
--- a/fxjs/xfa/cjx_message.h
+++ b/fxjs/xfa/cjx_message.h
@@ -12,7 +12,7 @@
class CXFA_Message;
-class CJX_Message : public CJX_Node {
+class CJX_Message final : public CJX_Node {
public:
explicit CJX_Message(CXFA_Message* node);
~CJX_Message() override;
diff --git a/fxjs/xfa/cjx_numericedit.h b/fxjs/xfa/cjx_numericedit.h
index b83ccea..d74b0c8 100644
--- a/fxjs/xfa/cjx_numericedit.h
+++ b/fxjs/xfa/cjx_numericedit.h
@@ -12,7 +12,7 @@
class CXFA_NumericEdit;
-class CJX_NumericEdit : public CJX_Node {
+class CJX_NumericEdit final : public CJX_Node {
public:
explicit CJX_NumericEdit(CXFA_NumericEdit* node);
~CJX_NumericEdit() override;
diff --git a/fxjs/xfa/cjx_occur.h b/fxjs/xfa/cjx_occur.h
index b67007c..114f5b3 100644
--- a/fxjs/xfa/cjx_occur.h
+++ b/fxjs/xfa/cjx_occur.h
@@ -12,7 +12,7 @@
class CXFA_Occur;
-class CJX_Occur : public CJX_Node {
+class CJX_Occur final : public CJX_Node {
public:
explicit CJX_Occur(CXFA_Occur* node);
~CJX_Occur() override;
diff --git a/fxjs/xfa/cjx_oid.h b/fxjs/xfa/cjx_oid.h
index 8380d27..f3c528e 100644
--- a/fxjs/xfa/cjx_oid.h
+++ b/fxjs/xfa/cjx_oid.h
@@ -12,7 +12,7 @@
class CXFA_Oid;
-class CJX_Oid : public CJX_TextNode {
+class CJX_Oid final : public CJX_TextNode {
public:
explicit CJX_Oid(CXFA_Oid* node);
~CJX_Oid() override;
diff --git a/fxjs/xfa/cjx_oids.h b/fxjs/xfa/cjx_oids.h
index 64d751b..a205fa0 100644
--- a/fxjs/xfa/cjx_oids.h
+++ b/fxjs/xfa/cjx_oids.h
@@ -12,7 +12,7 @@
class CXFA_Oids;
-class CJX_Oids : public CJX_Node {
+class CJX_Oids final : public CJX_Node {
public:
explicit CJX_Oids(CXFA_Oids* node);
~CJX_Oids() override;
diff --git a/fxjs/xfa/cjx_operation.h b/fxjs/xfa/cjx_operation.h
index 36411f6..3d16997 100644
--- a/fxjs/xfa/cjx_operation.h
+++ b/fxjs/xfa/cjx_operation.h
@@ -12,7 +12,7 @@
class CXFA_Operation;
-class CJX_Operation : public CJX_TextNode {
+class CJX_Operation final : public CJX_TextNode {
public:
explicit CJX_Operation(CXFA_Operation* node);
~CJX_Operation() override;
diff --git a/fxjs/xfa/cjx_overflow.h b/fxjs/xfa/cjx_overflow.h
index e0859ae..5bd9b6d 100644
--- a/fxjs/xfa/cjx_overflow.h
+++ b/fxjs/xfa/cjx_overflow.h
@@ -12,7 +12,7 @@
class CXFA_Overflow;
-class CJX_Overflow : public CJX_Node {
+class CJX_Overflow final : public CJX_Node {
public:
explicit CJX_Overflow(CXFA_Overflow* node);
~CJX_Overflow() override;
diff --git a/fxjs/xfa/cjx_packet.h b/fxjs/xfa/cjx_packet.h
index 7950678..f1ad920 100644
--- a/fxjs/xfa/cjx_packet.h
+++ b/fxjs/xfa/cjx_packet.h
@@ -12,7 +12,7 @@
class CXFA_Packet;
-class CJX_Packet : public CJX_Node {
+class CJX_Packet final : public CJX_Node {
public:
explicit CJX_Packet(CXFA_Packet* packet);
~CJX_Packet() override;
diff --git a/fxjs/xfa/cjx_pagearea.h b/fxjs/xfa/cjx_pagearea.h
index df3db36..8985a47 100644
--- a/fxjs/xfa/cjx_pagearea.h
+++ b/fxjs/xfa/cjx_pagearea.h
@@ -12,7 +12,7 @@
class CXFA_PageArea;
-class CJX_PageArea : public CJX_Container {
+class CJX_PageArea final : public CJX_Container {
public:
explicit CJX_PageArea(CXFA_PageArea* node);
~CJX_PageArea() override;
diff --git a/fxjs/xfa/cjx_pageset.h b/fxjs/xfa/cjx_pageset.h
index d0cd12b..adffdc0 100644
--- a/fxjs/xfa/cjx_pageset.h
+++ b/fxjs/xfa/cjx_pageset.h
@@ -12,7 +12,7 @@
class CXFA_PageSet;
-class CJX_PageSet : public CJX_Container {
+class CJX_PageSet final : public CJX_Container {
public:
explicit CJX_PageSet(CXFA_PageSet* node);
~CJX_PageSet() override;
diff --git a/fxjs/xfa/cjx_para.h b/fxjs/xfa/cjx_para.h
index 27e3189..0a527d6 100644
--- a/fxjs/xfa/cjx_para.h
+++ b/fxjs/xfa/cjx_para.h
@@ -12,7 +12,7 @@
class CXFA_Para;
-class CJX_Para : public CJX_Node {
+class CJX_Para final : public CJX_Node {
public:
explicit CJX_Para(CXFA_Para* node);
~CJX_Para() override;
diff --git a/fxjs/xfa/cjx_password.h b/fxjs/xfa/cjx_password.h
index bd6b955..1cec53c 100644
--- a/fxjs/xfa/cjx_password.h
+++ b/fxjs/xfa/cjx_password.h
@@ -12,7 +12,7 @@
class CXFA_Password;
-class CJX_Password : public CJX_TextNode {
+class CJX_Password final : public CJX_TextNode {
public:
explicit CJX_Password(CXFA_Password* node);
~CJX_Password() override;
diff --git a/fxjs/xfa/cjx_passwordedit.h b/fxjs/xfa/cjx_passwordedit.h
index df6d8eb..4f9ce1a 100644
--- a/fxjs/xfa/cjx_passwordedit.h
+++ b/fxjs/xfa/cjx_passwordedit.h
@@ -12,7 +12,7 @@
class CXFA_PasswordEdit;
-class CJX_PasswordEdit : public CJX_Node {
+class CJX_PasswordEdit final : public CJX_Node {
public:
explicit CJX_PasswordEdit(CXFA_PasswordEdit* node);
~CJX_PasswordEdit() override;
diff --git a/fxjs/xfa/cjx_pattern.h b/fxjs/xfa/cjx_pattern.h
index bc3abd0..0bb975b 100644
--- a/fxjs/xfa/cjx_pattern.h
+++ b/fxjs/xfa/cjx_pattern.h
@@ -12,7 +12,7 @@
class CXFA_Pattern;
-class CJX_Pattern : public CJX_Node {
+class CJX_Pattern final : public CJX_Node {
public:
explicit CJX_Pattern(CXFA_Pattern* node);
~CJX_Pattern() override;
diff --git a/fxjs/xfa/cjx_picture.h b/fxjs/xfa/cjx_picture.h
index a07cee7..e2dc063 100644
--- a/fxjs/xfa/cjx_picture.h
+++ b/fxjs/xfa/cjx_picture.h
@@ -12,7 +12,7 @@
class CXFA_Picture;
-class CJX_Picture : public CJX_Node {
+class CJX_Picture final : public CJX_Node {
public:
explicit CJX_Picture(CXFA_Picture* node);
~CJX_Picture() override;
diff --git a/fxjs/xfa/cjx_query.h b/fxjs/xfa/cjx_query.h
index 7ad281a..893b2b7 100644
--- a/fxjs/xfa/cjx_query.h
+++ b/fxjs/xfa/cjx_query.h
@@ -12,7 +12,7 @@
class CXFA_Query;
-class CJX_Query : public CJX_Node {
+class CJX_Query final : public CJX_Node {
public:
explicit CJX_Query(CXFA_Query* node);
~CJX_Query() override;
diff --git a/fxjs/xfa/cjx_radial.h b/fxjs/xfa/cjx_radial.h
index 0ac8386..d7ad871 100644
--- a/fxjs/xfa/cjx_radial.h
+++ b/fxjs/xfa/cjx_radial.h
@@ -12,7 +12,7 @@
class CXFA_Radial;
-class CJX_Radial : public CJX_Node {
+class CJX_Radial final : public CJX_Node {
public:
explicit CJX_Radial(CXFA_Radial* node);
~CJX_Radial() override;
diff --git a/fxjs/xfa/cjx_reason.h b/fxjs/xfa/cjx_reason.h
index bfff550..b69c638 100644
--- a/fxjs/xfa/cjx_reason.h
+++ b/fxjs/xfa/cjx_reason.h
@@ -12,7 +12,7 @@
class CXFA_Reason;
-class CJX_Reason : public CJX_TextNode {
+class CJX_Reason final : public CJX_TextNode {
public:
explicit CJX_Reason(CXFA_Reason* node);
~CJX_Reason() override;
diff --git a/fxjs/xfa/cjx_reasons.h b/fxjs/xfa/cjx_reasons.h
index c6a4b35..80cdcff 100644
--- a/fxjs/xfa/cjx_reasons.h
+++ b/fxjs/xfa/cjx_reasons.h
@@ -12,7 +12,7 @@
class CXFA_Reasons;
-class CJX_Reasons : public CJX_Node {
+class CJX_Reasons final : public CJX_Node {
public:
explicit CJX_Reasons(CXFA_Reasons* node);
~CJX_Reasons() override;
diff --git a/fxjs/xfa/cjx_recordset.h b/fxjs/xfa/cjx_recordset.h
index da2319f..e4973f5 100644
--- a/fxjs/xfa/cjx_recordset.h
+++ b/fxjs/xfa/cjx_recordset.h
@@ -12,7 +12,7 @@
class CXFA_RecordSet;
-class CJX_RecordSet : public CJX_Node {
+class CJX_RecordSet final : public CJX_Node {
public:
explicit CJX_RecordSet(CXFA_RecordSet* node);
~CJX_RecordSet() override;
diff --git a/fxjs/xfa/cjx_rectangle.h b/fxjs/xfa/cjx_rectangle.h
index e241b98..2aed046 100644
--- a/fxjs/xfa/cjx_rectangle.h
+++ b/fxjs/xfa/cjx_rectangle.h
@@ -12,7 +12,7 @@
class CXFA_Rectangle;
-class CJX_Rectangle : public CJX_Node {
+class CJX_Rectangle final : public CJX_Node {
public:
explicit CJX_Rectangle(CXFA_Rectangle* node);
~CJX_Rectangle() override;
diff --git a/fxjs/xfa/cjx_ref.h b/fxjs/xfa/cjx_ref.h
index 9a36fc3..aaf4a5f 100644
--- a/fxjs/xfa/cjx_ref.h
+++ b/fxjs/xfa/cjx_ref.h
@@ -12,7 +12,7 @@
class CXFA_Ref;
-class CJX_Ref : public CJX_TextNode {
+class CJX_Ref final : public CJX_TextNode {
public:
explicit CJX_Ref(CXFA_Ref* node);
~CJX_Ref() override;
diff --git a/fxjs/xfa/cjx_rootelement.h b/fxjs/xfa/cjx_rootelement.h
index 925f751..95e192f 100644
--- a/fxjs/xfa/cjx_rootelement.h
+++ b/fxjs/xfa/cjx_rootelement.h
@@ -12,7 +12,7 @@
class CXFA_RootElement;
-class CJX_RootElement : public CJX_TextNode {
+class CJX_RootElement final : public CJX_TextNode {
public:
explicit CJX_RootElement(CXFA_RootElement* node);
~CJX_RootElement() override;
diff --git a/fxjs/xfa/cjx_script.h b/fxjs/xfa/cjx_script.h
index fe76df4..e1e9a83 100644
--- a/fxjs/xfa/cjx_script.h
+++ b/fxjs/xfa/cjx_script.h
@@ -12,7 +12,7 @@
class CXFA_Script;
-class CJX_Script : public CJX_Node {
+class CJX_Script final : public CJX_Node {
public:
explicit CJX_Script(CXFA_Script* node);
~CJX_Script() override;
diff --git a/fxjs/xfa/cjx_select.h b/fxjs/xfa/cjx_select.h
index d59c1d6..ff81266 100644
--- a/fxjs/xfa/cjx_select.h
+++ b/fxjs/xfa/cjx_select.h
@@ -12,7 +12,7 @@
class CXFA_Select;
-class CJX_Select : public CJX_TextNode {
+class CJX_Select final : public CJX_TextNode {
public:
explicit CJX_Select(CXFA_Select* node);
~CJX_Select() override;
diff --git a/fxjs/xfa/cjx_setproperty.h b/fxjs/xfa/cjx_setproperty.h
index 1d8441f..042f902 100644
--- a/fxjs/xfa/cjx_setproperty.h
+++ b/fxjs/xfa/cjx_setproperty.h
@@ -12,7 +12,7 @@
class CXFA_SetProperty;
-class CJX_SetProperty : public CJX_Node {
+class CJX_SetProperty final : public CJX_Node {
public:
explicit CJX_SetProperty(CXFA_SetProperty* node);
~CJX_SetProperty() override;
diff --git a/fxjs/xfa/cjx_signature.h b/fxjs/xfa/cjx_signature.h
index 12a1478..e29c6c5 100644
--- a/fxjs/xfa/cjx_signature.h
+++ b/fxjs/xfa/cjx_signature.h
@@ -12,7 +12,7 @@
class CXFA_Signature;
-class CJX_Signature : public CJX_Node {
+class CJX_Signature final : public CJX_Node {
public:
explicit CJX_Signature(CXFA_Signature* node);
~CJX_Signature() override;
diff --git a/fxjs/xfa/cjx_signatureproperties.h b/fxjs/xfa/cjx_signatureproperties.h
index 6fd59cf..beb8744 100644
--- a/fxjs/xfa/cjx_signatureproperties.h
+++ b/fxjs/xfa/cjx_signatureproperties.h
@@ -13,7 +13,7 @@
class CXFA_SignatureProperties;
/* Deprecated */
-class CJX_SignatureProperties : public CJX_Node {
+class CJX_SignatureProperties final : public CJX_Node {
public:
explicit CJX_SignatureProperties(CXFA_SignatureProperties* node);
~CJX_SignatureProperties() override;
diff --git a/fxjs/xfa/cjx_signaturepseudomodel.h b/fxjs/xfa/cjx_signaturepseudomodel.h
index 0184cba..84a8751 100644
--- a/fxjs/xfa/cjx_signaturepseudomodel.h
+++ b/fxjs/xfa/cjx_signaturepseudomodel.h
@@ -12,7 +12,7 @@
class CScript_SignaturePseudoModel;
-class CJX_SignaturePseudoModel : public CJX_Object {
+class CJX_SignaturePseudoModel final : public CJX_Object {
public:
explicit CJX_SignaturePseudoModel(CScript_SignaturePseudoModel* model);
~CJX_SignaturePseudoModel() override;
diff --git a/fxjs/xfa/cjx_signdata.h b/fxjs/xfa/cjx_signdata.h
index 8b68877..ee841bc 100644
--- a/fxjs/xfa/cjx_signdata.h
+++ b/fxjs/xfa/cjx_signdata.h
@@ -12,7 +12,7 @@
class CXFA_SignData;
-class CJX_SignData : public CJX_Node {
+class CJX_SignData final : public CJX_Node {
public:
explicit CJX_SignData(CXFA_SignData* node);
~CJX_SignData() override;
diff --git a/fxjs/xfa/cjx_signing.h b/fxjs/xfa/cjx_signing.h
index 428e92b..60e7739 100644
--- a/fxjs/xfa/cjx_signing.h
+++ b/fxjs/xfa/cjx_signing.h
@@ -12,7 +12,7 @@
class CXFA_Signing;
-class CJX_Signing : public CJX_Node {
+class CJX_Signing final : public CJX_Node {
public:
explicit CJX_Signing(CXFA_Signing* node);
~CJX_Signing() override;
diff --git a/fxjs/xfa/cjx_soapaction.h b/fxjs/xfa/cjx_soapaction.h
index 3da3825..9523f5f 100644
--- a/fxjs/xfa/cjx_soapaction.h
+++ b/fxjs/xfa/cjx_soapaction.h
@@ -12,7 +12,7 @@
class CXFA_SoapAction;
-class CJX_SoapAction : public CJX_TextNode {
+class CJX_SoapAction final : public CJX_TextNode {
public:
explicit CJX_SoapAction(CXFA_SoapAction* node);
~CJX_SoapAction() override;
diff --git a/fxjs/xfa/cjx_soapaddress.h b/fxjs/xfa/cjx_soapaddress.h
index 14e7abf..13137c1 100644
--- a/fxjs/xfa/cjx_soapaddress.h
+++ b/fxjs/xfa/cjx_soapaddress.h
@@ -12,7 +12,7 @@
class CXFA_SoapAddress;
-class CJX_SoapAddress : public CJX_TextNode {
+class CJX_SoapAddress final : public CJX_TextNode {
public:
explicit CJX_SoapAddress(CXFA_SoapAddress* node);
~CJX_SoapAddress() override;
diff --git a/fxjs/xfa/cjx_solid.h b/fxjs/xfa/cjx_solid.h
index a6ecc7b..dab7ec3 100644
--- a/fxjs/xfa/cjx_solid.h
+++ b/fxjs/xfa/cjx_solid.h
@@ -12,7 +12,7 @@
class CXFA_Solid;
-class CJX_Solid : public CJX_Node {
+class CJX_Solid final : public CJX_Node {
public:
explicit CJX_Solid(CXFA_Solid* node);
~CJX_Solid() override;
diff --git a/fxjs/xfa/cjx_source.h b/fxjs/xfa/cjx_source.h
index 66e61f0..32721fb 100644
--- a/fxjs/xfa/cjx_source.h
+++ b/fxjs/xfa/cjx_source.h
@@ -12,7 +12,7 @@
class CXFA_Source;
-class CJX_Source : public CJX_Node {
+class CJX_Source final : public CJX_Node {
public:
explicit CJX_Source(CXFA_Source* src);
~CJX_Source() override;
diff --git a/fxjs/xfa/cjx_sourceset.h b/fxjs/xfa/cjx_sourceset.h
index 32018a9..f72a048 100644
--- a/fxjs/xfa/cjx_sourceset.h
+++ b/fxjs/xfa/cjx_sourceset.h
@@ -12,7 +12,7 @@
class CXFA_SourceSet;
-class CJX_SourceSet : public CJX_Model {
+class CJX_SourceSet final : public CJX_Model {
public:
explicit CJX_SourceSet(CXFA_SourceSet* node);
~CJX_SourceSet() override;
diff --git a/fxjs/xfa/cjx_speak.h b/fxjs/xfa/cjx_speak.h
index 4e96b02..d5678a8 100644
--- a/fxjs/xfa/cjx_speak.h
+++ b/fxjs/xfa/cjx_speak.h
@@ -12,7 +12,7 @@
class CXFA_Speak;
-class CJX_Speak : public CJX_TextNode {
+class CJX_Speak final : public CJX_TextNode {
public:
explicit CJX_Speak(CXFA_Speak* node);
~CJX_Speak() override;
diff --git a/fxjs/xfa/cjx_stipple.h b/fxjs/xfa/cjx_stipple.h
index db3ba1d..9b6f56d 100644
--- a/fxjs/xfa/cjx_stipple.h
+++ b/fxjs/xfa/cjx_stipple.h
@@ -12,7 +12,7 @@
class CXFA_Stipple;
-class CJX_Stipple : public CJX_Node {
+class CJX_Stipple final : public CJX_Node {
public:
explicit CJX_Stipple(CXFA_Stipple* node);
~CJX_Stipple() override;
diff --git a/fxjs/xfa/cjx_subform.h b/fxjs/xfa/cjx_subform.h
index 2c2d19b..67947d8 100644
--- a/fxjs/xfa/cjx_subform.h
+++ b/fxjs/xfa/cjx_subform.h
@@ -12,7 +12,7 @@
class CXFA_Delta;
-class CJX_Subform : public CJX_Container {
+class CJX_Subform final : public CJX_Container {
public:
explicit CJX_Subform(CXFA_Node* container);
~CJX_Subform() override;
diff --git a/fxjs/xfa/cjx_subformset.h b/fxjs/xfa/cjx_subformset.h
index f455156..71bb438 100644
--- a/fxjs/xfa/cjx_subformset.h
+++ b/fxjs/xfa/cjx_subformset.h
@@ -12,7 +12,7 @@
class CXFA_SubformSet;
-class CJX_SubformSet : public CJX_Container {
+class CJX_SubformSet final : public CJX_Container {
public:
explicit CJX_SubformSet(CXFA_SubformSet* node);
~CJX_SubformSet() override;
diff --git a/fxjs/xfa/cjx_subjectdn.h b/fxjs/xfa/cjx_subjectdn.h
index 22b86b2..12e8e9a 100644
--- a/fxjs/xfa/cjx_subjectdn.h
+++ b/fxjs/xfa/cjx_subjectdn.h
@@ -12,7 +12,7 @@
class CXFA_SubjectDN;
-class CJX_SubjectDN : public CJX_Node {
+class CJX_SubjectDN final : public CJX_Node {
public:
explicit CJX_SubjectDN(CXFA_SubjectDN* node);
~CJX_SubjectDN() override;
diff --git a/fxjs/xfa/cjx_subjectdns.h b/fxjs/xfa/cjx_subjectdns.h
index 1e3cd22..04af199 100644
--- a/fxjs/xfa/cjx_subjectdns.h
+++ b/fxjs/xfa/cjx_subjectdns.h
@@ -12,7 +12,7 @@
class CXFA_SubjectDNs;
-class CJX_SubjectDNs : public CJX_Node {
+class CJX_SubjectDNs final : public CJX_Node {
public:
explicit CJX_SubjectDNs(CXFA_SubjectDNs* node);
~CJX_SubjectDNs() override;
diff --git a/fxjs/xfa/cjx_submit.h b/fxjs/xfa/cjx_submit.h
index 90aa8d2..0ec0cf4 100644
--- a/fxjs/xfa/cjx_submit.h
+++ b/fxjs/xfa/cjx_submit.h
@@ -12,7 +12,7 @@
class CXFA_Submit;
-class CJX_Submit : public CJX_Node {
+class CJX_Submit final : public CJX_Node {
public:
explicit CJX_Submit(CXFA_Submit* node);
~CJX_Submit() override;
diff --git a/fxjs/xfa/cjx_template.h b/fxjs/xfa/cjx_template.h
index d54020d..ccaf084 100644
--- a/fxjs/xfa/cjx_template.h
+++ b/fxjs/xfa/cjx_template.h
@@ -12,7 +12,7 @@
class CXFA_Template;
-class CJX_Template : public CJX_Model {
+class CJX_Template final : public CJX_Model {
public:
explicit CJX_Template(CXFA_Template* tmpl);
~CJX_Template() override;
diff --git a/fxjs/xfa/cjx_text.h b/fxjs/xfa/cjx_text.h
index a5c0e81..1a58b24 100644
--- a/fxjs/xfa/cjx_text.h
+++ b/fxjs/xfa/cjx_text.h
@@ -12,7 +12,7 @@
class CXFA_Text;
-class CJX_Text : public CJX_Content {
+class CJX_Text final : public CJX_Content {
public:
explicit CJX_Text(CXFA_Text* node);
~CJX_Text() override;
diff --git a/fxjs/xfa/cjx_textedit.h b/fxjs/xfa/cjx_textedit.h
index 1c41b9e..bc408d2 100644
--- a/fxjs/xfa/cjx_textedit.h
+++ b/fxjs/xfa/cjx_textedit.h
@@ -12,7 +12,7 @@
class CXFA_TextEdit;
-class CJX_TextEdit : public CJX_Node {
+class CJX_TextEdit final : public CJX_Node {
public:
explicit CJX_TextEdit(CXFA_TextEdit* node);
~CJX_TextEdit() override;
diff --git a/fxjs/xfa/cjx_time.h b/fxjs/xfa/cjx_time.h
index 32e75cb..0002029 100644
--- a/fxjs/xfa/cjx_time.h
+++ b/fxjs/xfa/cjx_time.h
@@ -12,7 +12,7 @@
class CXFA_Time;
-class CJX_Time : public CJX_Content {
+class CJX_Time final : public CJX_Content {
public:
explicit CJX_Time(CXFA_Time* node);
~CJX_Time() override;
diff --git a/fxjs/xfa/cjx_timestamp.h b/fxjs/xfa/cjx_timestamp.h
index c8aab82..7183222 100644
--- a/fxjs/xfa/cjx_timestamp.h
+++ b/fxjs/xfa/cjx_timestamp.h
@@ -12,7 +12,7 @@
class CXFA_TimeStamp;
-class CJX_TimeStamp : public CJX_Node {
+class CJX_TimeStamp final : public CJX_Node {
public:
explicit CJX_TimeStamp(CXFA_TimeStamp* node);
~CJX_TimeStamp() override;
diff --git a/fxjs/xfa/cjx_tooltip.h b/fxjs/xfa/cjx_tooltip.h
index 51c21d8..08bcd43 100644
--- a/fxjs/xfa/cjx_tooltip.h
+++ b/fxjs/xfa/cjx_tooltip.h
@@ -12,7 +12,7 @@
class CXFA_ToolTip;
-class CJX_ToolTip : public CJX_TextNode {
+class CJX_ToolTip final : public CJX_TextNode {
public:
explicit CJX_ToolTip(CXFA_ToolTip* node);
~CJX_ToolTip() override;
diff --git a/fxjs/xfa/cjx_traversal.h b/fxjs/xfa/cjx_traversal.h
index f7e1258..0872cf7 100644
--- a/fxjs/xfa/cjx_traversal.h
+++ b/fxjs/xfa/cjx_traversal.h
@@ -12,7 +12,7 @@
class CXFA_Traversal;
-class CJX_Traversal : public CJX_Node {
+class CJX_Traversal final : public CJX_Node {
public:
explicit CJX_Traversal(CXFA_Traversal* node);
~CJX_Traversal() override;
diff --git a/fxjs/xfa/cjx_traverse.h b/fxjs/xfa/cjx_traverse.h
index d6f43af..aa57334 100644
--- a/fxjs/xfa/cjx_traverse.h
+++ b/fxjs/xfa/cjx_traverse.h
@@ -12,7 +12,7 @@
class CXFA_Traverse;
-class CJX_Traverse : public CJX_Node {
+class CJX_Traverse final : public CJX_Node {
public:
explicit CJX_Traverse(CXFA_Traverse* node);
~CJX_Traverse() override;
diff --git a/fxjs/xfa/cjx_treelist.h b/fxjs/xfa/cjx_treelist.h
index c6f2919..729a6d5 100644
--- a/fxjs/xfa/cjx_treelist.h
+++ b/fxjs/xfa/cjx_treelist.h
@@ -12,7 +12,7 @@
class CXFA_TreeList;
-class CJX_TreeList : public CJX_List {
+class CJX_TreeList final : public CJX_List {
public:
explicit CJX_TreeList(CXFA_TreeList* list);
~CJX_TreeList() override;
diff --git a/fxjs/xfa/cjx_ui.h b/fxjs/xfa/cjx_ui.h
index e63fa47..4fb1990 100644
--- a/fxjs/xfa/cjx_ui.h
+++ b/fxjs/xfa/cjx_ui.h
@@ -12,7 +12,7 @@
class CXFA_Ui;
-class CJX_Ui : public CJX_Node {
+class CJX_Ui final : public CJX_Node {
public:
explicit CJX_Ui(CXFA_Ui* node);
~CJX_Ui() override;
diff --git a/fxjs/xfa/cjx_update.h b/fxjs/xfa/cjx_update.h
index f603409..09c6812 100644
--- a/fxjs/xfa/cjx_update.h
+++ b/fxjs/xfa/cjx_update.h
@@ -12,7 +12,7 @@
class CXFA_Update;
-class CJX_Update : public CJX_TextNode {
+class CJX_Update final : public CJX_TextNode {
public:
explicit CJX_Update(CXFA_Update* node);
~CJX_Update() override;
diff --git a/fxjs/xfa/cjx_uri.h b/fxjs/xfa/cjx_uri.h
index e7aa55f..062dcf0 100644
--- a/fxjs/xfa/cjx_uri.h
+++ b/fxjs/xfa/cjx_uri.h
@@ -12,7 +12,7 @@
class CXFA_Uri;
-class CJX_Uri : public CJX_TextNode {
+class CJX_Uri final : public CJX_TextNode {
public:
explicit CJX_Uri(CXFA_Uri* node);
~CJX_Uri() override;
diff --git a/fxjs/xfa/cjx_user.h b/fxjs/xfa/cjx_user.h
index 85b0271..b378960 100644
--- a/fxjs/xfa/cjx_user.h
+++ b/fxjs/xfa/cjx_user.h
@@ -12,7 +12,7 @@
class CXFA_User;
-class CJX_User : public CJX_TextNode {
+class CJX_User final : public CJX_TextNode {
public:
explicit CJX_User(CXFA_User* node);
~CJX_User() override;
diff --git a/fxjs/xfa/cjx_validate.h b/fxjs/xfa/cjx_validate.h
index 62eb83c..ea3d45c 100644
--- a/fxjs/xfa/cjx_validate.h
+++ b/fxjs/xfa/cjx_validate.h
@@ -12,7 +12,7 @@
class CXFA_Validate;
-class CJX_Validate : public CJX_Node {
+class CJX_Validate final : public CJX_Node {
public:
explicit CJX_Validate(CXFA_Validate* node);
~CJX_Validate() override;
diff --git a/fxjs/xfa/cjx_value.h b/fxjs/xfa/cjx_value.h
index 71984c3..78ad2ed 100644
--- a/fxjs/xfa/cjx_value.h
+++ b/fxjs/xfa/cjx_value.h
@@ -12,7 +12,7 @@
class CXFA_Value;
-class CJX_Value : public CJX_Node {
+class CJX_Value final : public CJX_Node {
public:
explicit CJX_Value(CXFA_Value* node);
~CJX_Value() override;
diff --git a/fxjs/xfa/cjx_variables.h b/fxjs/xfa/cjx_variables.h
index 302cd05..c12e3ae 100644
--- a/fxjs/xfa/cjx_variables.h
+++ b/fxjs/xfa/cjx_variables.h
@@ -12,7 +12,7 @@
class CXFA_Variables;
-class CJX_Variables : public CJX_Container {
+class CJX_Variables final : public CJX_Container {
public:
explicit CJX_Variables(CXFA_Variables* node);
~CJX_Variables() override;
diff --git a/fxjs/xfa/cjx_wsdladdress.h b/fxjs/xfa/cjx_wsdladdress.h
index cbe8e72..5b6cda0 100644
--- a/fxjs/xfa/cjx_wsdladdress.h
+++ b/fxjs/xfa/cjx_wsdladdress.h
@@ -12,7 +12,7 @@
class CXFA_WsdlAddress;
-class CJX_WsdlAddress : public CJX_TextNode {
+class CJX_WsdlAddress final : public CJX_TextNode {
public:
explicit CJX_WsdlAddress(CXFA_WsdlAddress* node);
~CJX_WsdlAddress() override;
diff --git a/fxjs/xfa/cjx_wsdlconnection.h b/fxjs/xfa/cjx_wsdlconnection.h
index 346b908..f5dc51b 100644
--- a/fxjs/xfa/cjx_wsdlconnection.h
+++ b/fxjs/xfa/cjx_wsdlconnection.h
@@ -12,7 +12,7 @@
class CXFA_WsdlConnection;
-class CJX_WsdlConnection : public CJX_Node {
+class CJX_WsdlConnection final : public CJX_Node {
public:
explicit CJX_WsdlConnection(CXFA_WsdlConnection* connection);
~CJX_WsdlConnection() override;
diff --git a/fxjs/xfa/cjx_xfa.h b/fxjs/xfa/cjx_xfa.h
index 025e9a9..39ee84f 100644
--- a/fxjs/xfa/cjx_xfa.h
+++ b/fxjs/xfa/cjx_xfa.h
@@ -12,7 +12,7 @@
class CXFA_Xfa;
-class CJX_Xfa : public CJX_Model {
+class CJX_Xfa final : public CJX_Model {
public:
explicit CJX_Xfa(CXFA_Xfa* node);
~CJX_Xfa() override;
diff --git a/fxjs/xfa/cjx_xmlconnection.h b/fxjs/xfa/cjx_xmlconnection.h
index cb63e75..6ec2b41 100644
--- a/fxjs/xfa/cjx_xmlconnection.h
+++ b/fxjs/xfa/cjx_xmlconnection.h
@@ -12,7 +12,7 @@
class CXFA_XmlConnection;
-class CJX_XmlConnection : public CJX_Node {
+class CJX_XmlConnection final : public CJX_Node {
public:
explicit CJX_XmlConnection(CXFA_XmlConnection* node);
~CJX_XmlConnection() override;
diff --git a/fxjs/xfa/cjx_xsdconnection.h b/fxjs/xfa/cjx_xsdconnection.h
index ec5059a..4cfe519 100644
--- a/fxjs/xfa/cjx_xsdconnection.h
+++ b/fxjs/xfa/cjx_xsdconnection.h
@@ -12,7 +12,7 @@
class CXFA_XsdConnection;
-class CJX_XsdConnection : public CJX_Node {
+class CJX_XsdConnection final : public CJX_Node {
public:
explicit CJX_XsdConnection(CXFA_XsdConnection* node);
~CJX_XsdConnection() override;
diff --git a/samples/pdfium_test.cc b/samples/pdfium_test.cc
index e808d64..2e8487e 100644
--- a/samples/pdfium_test.cc
+++ b/samples/pdfium_test.cc
@@ -135,7 +135,7 @@
#endif // WORDEXP_AVAILABLE
}
-struct FPDF_FORMFILLINFO_PDFiumTest : public FPDF_FORMFILLINFO {
+struct FPDF_FORMFILLINFO_PDFiumTest final : public FPDF_FORMFILLINFO {
// Hold a map of the currently loaded pages in order to avoid them
// to get loaded twice.
std::map<int, ScopedFPDFPage> loaded_pages;
diff --git a/testing/embedder_test_main.cpp b/testing/embedder_test_main.cpp
index 0c3ceb6..92990bf 100644
--- a/testing/embedder_test_main.cpp
+++ b/testing/embedder_test_main.cpp
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include <memory>
#include <string>
#include "core/fxcrt/fx_memory.h"
@@ -28,7 +29,7 @@
// The loading time of the CFGAS_FontMgr is linear in the number of times it is
// loaded. So, if a test suite has a lot of tests that need a font manager they
// can end up executing very, very slowly.
-class Environment : public testing::Environment {
+class Environment final : public testing::Environment {
public:
void SetUp() override {
#ifdef PDF_ENABLE_V8
diff --git a/testing/embedder_test_mock_delegate.h b/testing/embedder_test_mock_delegate.h
index 4d43b5c..c3f2820 100644
--- a/testing/embedder_test_mock_delegate.h
+++ b/testing/embedder_test_mock_delegate.h
@@ -8,7 +8,7 @@
#include "testing/embedder_test.h"
#include "testing/gmock/include/gmock/gmock.h"
-class EmbedderTestMockDelegate : public EmbedderTest::Delegate {
+class EmbedderTestMockDelegate final : public EmbedderTest::Delegate {
public:
MOCK_METHOD1(UnsupportedHandler, void(int type));
MOCK_METHOD4(
diff --git a/testing/embedder_test_timer_handling_delegate.h b/testing/embedder_test_timer_handling_delegate.h
index 3196615..31ce1e2 100644
--- a/testing/embedder_test_timer_handling_delegate.h
+++ b/testing/embedder_test_timer_handling_delegate.h
@@ -13,7 +13,7 @@
#include "testing/embedder_test.h"
#include "testing/test_support.h"
-class EmbedderTestTimerHandlingDelegate : public EmbedderTest::Delegate {
+class EmbedderTestTimerHandlingDelegate final : public EmbedderTest::Delegate {
public:
struct AlertRecord {
std::wstring message;
diff --git a/testing/fake_file_access.cpp b/testing/fake_file_access.cpp
index c69f278..9e0e6db 100644
--- a/testing/fake_file_access.cpp
+++ b/testing/fake_file_access.cpp
@@ -14,7 +14,7 @@
namespace {
-class FileAccessWrapper : public FPDF_FILEACCESS {
+class FileAccessWrapper final : public FPDF_FILEACCESS {
public:
explicit FileAccessWrapper(FakeFileAccess* simulator)
: simulator_(simulator) {
@@ -35,7 +35,7 @@
fxcrt::UnownedPtr<FakeFileAccess> simulator_;
};
-class FileAvailImpl : public FX_FILEAVAIL {
+class FileAvailImpl final : public FX_FILEAVAIL {
public:
explicit FileAvailImpl(FakeFileAccess* simulator) : simulator_(simulator) {
version = 1;
@@ -53,7 +53,7 @@
fxcrt::UnownedPtr<FakeFileAccess> simulator_;
};
-class DownloadHintsImpl : public FX_DOWNLOADHINTS {
+class DownloadHintsImpl final : public FX_DOWNLOADHINTS {
public:
explicit DownloadHintsImpl(FakeFileAccess* simulator)
: simulator_(simulator) {
diff --git a/testing/fuzzers/pdf_hint_table_fuzzer.cc b/testing/fuzzers/pdf_hint_table_fuzzer.cc
index 50ca5cd..19b18ac 100644
--- a/testing/fuzzers/pdf_hint_table_fuzzer.cc
+++ b/testing/fuzzers/pdf_hint_table_fuzzer.cc
@@ -22,7 +22,7 @@
return *ret;
}
-class HintTableForFuzzing : public CPDF_HintTables {
+class HintTableForFuzzing final : public CPDF_HintTables {
public:
HintTableForFuzzing(CPDF_LinearizedHeader* pLinearized,
int shared_hint_table_offset)
@@ -47,7 +47,7 @@
int shared_hint_table_offset_;
};
-class FakeLinearized : public CPDF_LinearizedHeader {
+class FakeLinearized final : public CPDF_LinearizedHeader {
public:
explicit FakeLinearized(CPDF_Dictionary* linearized_dict)
: CPDF_LinearizedHeader(linearized_dict, 0) {}
diff --git a/testing/fx_string_testhelpers.h b/testing/fx_string_testhelpers.h
index a828d82..e4ed78d 100644
--- a/testing/fx_string_testhelpers.h
+++ b/testing/fx_string_testhelpers.h
@@ -14,7 +14,7 @@
// Output stream operator so GTEST macros work with CFX_DateTime objects.
std::ostream& operator<<(std::ostream& os, const CFX_DateTime& dt);
-class CFX_InvalidSeekableReadStream : public IFX_SeekableReadStream {
+class CFX_InvalidSeekableReadStream final : public IFX_SeekableReadStream {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
diff --git a/testing/string_write_stream.h b/testing/string_write_stream.h
index 7d28a82..a77e4f0 100644
--- a/testing/string_write_stream.h
+++ b/testing/string_write_stream.h
@@ -10,7 +10,7 @@
#include "core/fxcrt/fx_stream.h"
-class StringWriteStream : public IFX_SeekableWriteStream {
+class StringWriteStream final : public IFX_SeekableWriteStream {
public:
StringWriteStream();
~StringWriteStream() override;
diff --git a/testing/unit_test_main.cpp b/testing/unit_test_main.cpp
index 70eb51a..2bc14b9 100644
--- a/testing/unit_test_main.cpp
+++ b/testing/unit_test_main.cpp
@@ -26,7 +26,7 @@
// The loading time of the CFGAS_FontMgr is linear in the number of times it is
// loaded. So, if a test suite has a lot of tests that need a font manager they
// can end up executing very, very slowly.
-class Environment : public testing::Environment {
+class Environment final : public testing::Environment {
public:
void SetUp() override {
// TODO(dsinclair): This font loading is slow. We should make a test font
diff --git a/xfa/fde/cfde_texteditengine.cpp b/xfa/fde/cfde_texteditengine.cpp
index ce9d0a5..cd6681f 100644
--- a/xfa/fde/cfde_texteditengine.cpp
+++ b/xfa/fde/cfde_texteditengine.cpp
@@ -19,7 +19,7 @@
constexpr size_t kGapSize = 128;
constexpr size_t kPageWidthMax = 0xffff;
-class InsertOperation : public CFDE_TextEditEngine::Operation {
+class InsertOperation final : public CFDE_TextEditEngine::Operation {
public:
InsertOperation(CFDE_TextEditEngine* engine,
size_t start_idx,
@@ -44,7 +44,7 @@
WideString added_text_;
};
-class DeleteOperation : public CFDE_TextEditEngine::Operation {
+class DeleteOperation final : public CFDE_TextEditEngine::Operation {
public:
DeleteOperation(CFDE_TextEditEngine* engine,
size_t start_idx,
@@ -69,7 +69,7 @@
WideString removed_text_;
};
-class ReplaceOperation : public CFDE_TextEditEngine::Operation {
+class ReplaceOperation final : public CFDE_TextEditEngine::Operation {
public:
ReplaceOperation(CFDE_TextEditEngine* engine,
size_t start_idx,
diff --git a/xfa/fde/cfde_texteditengine_unittest.cpp b/xfa/fde/cfde_texteditengine_unittest.cpp
index c5efe52..1de54ff 100644
--- a/xfa/fde/cfde_texteditengine_unittest.cpp
+++ b/xfa/fde/cfde_texteditengine_unittest.cpp
@@ -11,7 +11,7 @@
class CFDE_TextEditEngineTest : public testing::Test {
public:
- class Delegate : public CFDE_TextEditEngine::Delegate {
+ class Delegate final : public CFDE_TextEditEngine::Delegate {
public:
void Reset() {
text_is_full = false;
diff --git a/xfa/fgas/font/cfgas_fontmgr.h b/xfa/fgas/font/cfgas_fontmgr.h
index 72578be..6dda338 100644
--- a/xfa/fgas/font/cfgas_fontmgr.h
+++ b/xfa/fgas/font/cfgas_fontmgr.h
@@ -121,7 +121,7 @@
#endif // _FX_PLATFORM_ == _FX_PLATFORM_WINDOWS_
-class CFGAS_FontMgr : public Observable<CFGAS_FontMgr> {
+class CFGAS_FontMgr final : public Observable<CFGAS_FontMgr> {
public:
CFGAS_FontMgr();
~CFGAS_FontMgr();
diff --git a/xfa/fgas/font/cfgas_gefont.h b/xfa/fgas/font/cfgas_gefont.h
index bc24ceb..685fa68 100644
--- a/xfa/fgas/font/cfgas_gefont.h
+++ b/xfa/fgas/font/cfgas_gefont.h
@@ -20,7 +20,7 @@
class CFX_UnicodeEncoding;
-class CFGAS_GEFont : public Retainable {
+class CFGAS_GEFont final : public Retainable {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
diff --git a/xfa/fgas/font/cfgas_pdffontmgr.h b/xfa/fgas/font/cfgas_pdffontmgr.h
index 235f883..6c42422 100644
--- a/xfa/fgas/font/cfgas_pdffontmgr.h
+++ b/xfa/fgas/font/cfgas_pdffontmgr.h
@@ -19,7 +19,7 @@
class CFGAS_GEFont;
class CPDF_Document;
-class CFGAS_PDFFontMgr : public Observable<CFGAS_PDFFontMgr> {
+class CFGAS_PDFFontMgr final : public Observable<CFGAS_PDFFontMgr> {
public:
explicit CFGAS_PDFFontMgr(CPDF_Document* pDoc, CFGAS_FontMgr* pFontMgr);
~CFGAS_PDFFontMgr();
diff --git a/xfa/fgas/layout/cfx_rtfbreak.h b/xfa/fgas/layout/cfx_rtfbreak.h
index c2320fa..ac29ef5 100644
--- a/xfa/fgas/layout/cfx_rtfbreak.h
+++ b/xfa/fgas/layout/cfx_rtfbreak.h
@@ -43,7 +43,7 @@
int32_t iVerticalScale;
};
-class CFX_RTFBreak : public CFX_Break {
+class CFX_RTFBreak final : public CFX_Break {
public:
explicit CFX_RTFBreak(uint32_t dwLayoutStyles);
~CFX_RTFBreak() override;
diff --git a/xfa/fgas/layout/cfx_txtbreak.h b/xfa/fgas/layout/cfx_txtbreak.h
index 250f582..47c6440 100644
--- a/xfa/fgas/layout/cfx_txtbreak.h
+++ b/xfa/fgas/layout/cfx_txtbreak.h
@@ -54,7 +54,7 @@
bool bSkipSpace;
};
-class CFX_TxtBreak : public CFX_Break {
+class CFX_TxtBreak final : public CFX_Break {
public:
CFX_TxtBreak();
~CFX_TxtBreak() override;
diff --git a/xfa/fwl/cfwl_barcode.h b/xfa/fwl/cfwl_barcode.h
index a4991d4..cd36cc3 100644
--- a/xfa/fwl/cfwl_barcode.h
+++ b/xfa/fwl/cfwl_barcode.h
@@ -36,7 +36,7 @@
FWL_BCDATTRIBUTE_ECLEVEL = 1 << 10,
};
-class CFWL_Barcode : public CFWL_Edit {
+class CFWL_Barcode final : public CFWL_Edit {
public:
explicit CFWL_Barcode(const CFWL_App* pApp);
~CFWL_Barcode() override;
diff --git a/xfa/fwl/cfwl_caret.h b/xfa/fwl/cfwl_caret.h
index 90d62d6..88bec75 100644
--- a/xfa/fwl/cfwl_caret.h
+++ b/xfa/fwl/cfwl_caret.h
@@ -16,7 +16,7 @@
class CFWL_WidgetProperties;
class CFWL_Widget;
-class CFWL_Caret : public CFWL_Widget {
+class CFWL_Caret final : public CFWL_Widget {
public:
CFWL_Caret(const CFWL_App* app,
std::unique_ptr<CFWL_WidgetProperties> properties,
@@ -35,7 +35,7 @@
void HideCaret();
private:
- class Timer : public CFWL_Timer {
+ class Timer final : public CFWL_Timer {
public:
explicit Timer(CFWL_Caret* pCaret);
~Timer() override {}
diff --git a/xfa/fwl/cfwl_checkbox.h b/xfa/fwl/cfwl_checkbox.h
index 9ae6590..f2413aa 100644
--- a/xfa/fwl/cfwl_checkbox.h
+++ b/xfa/fwl/cfwl_checkbox.h
@@ -33,7 +33,7 @@
class CFWL_WidgetProperties;
class CFWL_Widget;
-class CFWL_CheckBox : public CFWL_Widget {
+class CFWL_CheckBox final : public CFWL_Widget {
public:
explicit CFWL_CheckBox(const CFWL_App* pApp);
~CFWL_CheckBox() override;
diff --git a/xfa/fwl/cfwl_combobox.h b/xfa/fwl/cfwl_combobox.h
index a5ea2d0..f247d93 100644
--- a/xfa/fwl/cfwl_combobox.h
+++ b/xfa/fwl/cfwl_combobox.h
@@ -36,7 +36,7 @@
#define FWL_STYLEEXT_CMB_ListItemAlignMask (3L << 10)
#define FWL_STYLEEXT_CMB_ReadOnly (1L << 13)
-class CFWL_ComboBox : public CFWL_Widget {
+class CFWL_ComboBox final : public CFWL_Widget {
public:
explicit CFWL_ComboBox(const CFWL_App* pApp);
~CFWL_ComboBox() override;
diff --git a/xfa/fwl/cfwl_comboedit.h b/xfa/fwl/cfwl_comboedit.h
index efdabd3..daaa8a9 100644
--- a/xfa/fwl/cfwl_comboedit.h
+++ b/xfa/fwl/cfwl_comboedit.h
@@ -15,7 +15,7 @@
class CFWL_ComboBox;
-class CFWL_ComboEdit : public CFWL_Edit {
+class CFWL_ComboEdit final : public CFWL_Edit {
public:
CFWL_ComboEdit(const CFWL_App* app,
std::unique_ptr<CFWL_WidgetProperties> properties,
diff --git a/xfa/fwl/cfwl_combolist.h b/xfa/fwl/cfwl_combolist.h
index a4d5135..0444a93 100644
--- a/xfa/fwl/cfwl_combolist.h
+++ b/xfa/fwl/cfwl_combolist.h
@@ -13,7 +13,7 @@
#include "xfa/fwl/cfwl_widget.h"
#include "xfa/fwl/cfwl_widgetproperties.h"
-class CFWL_ComboList : public CFWL_ListBox {
+class CFWL_ComboList final : public CFWL_ListBox {
public:
CFWL_ComboList(const CFWL_App* app,
std::unique_ptr<CFWL_WidgetProperties> properties,
diff --git a/xfa/fwl/cfwl_datetimeedit.h b/xfa/fwl/cfwl_datetimeedit.h
index dcbebd2..cc80b9e 100644
--- a/xfa/fwl/cfwl_datetimeedit.h
+++ b/xfa/fwl/cfwl_datetimeedit.h
@@ -13,7 +13,7 @@
#include "xfa/fwl/cfwl_widget.h"
#include "xfa/fwl/cfwl_widgetproperties.h"
-class CFWL_DateTimeEdit : public CFWL_Edit {
+class CFWL_DateTimeEdit final : public CFWL_Edit {
public:
CFWL_DateTimeEdit(const CFWL_App* app,
std::unique_ptr<CFWL_WidgetProperties> properties,
diff --git a/xfa/fwl/cfwl_datetimepicker.h b/xfa/fwl/cfwl_datetimepicker.h
index f80f09d..8e05dde 100644
--- a/xfa/fwl/cfwl_datetimepicker.h
+++ b/xfa/fwl/cfwl_datetimepicker.h
@@ -30,7 +30,7 @@
class CFWL_DateTimeEdit;
-class CFWL_DateTimePicker : public CFWL_Widget {
+class CFWL_DateTimePicker final : public CFWL_Widget {
public:
explicit CFWL_DateTimePicker(const CFWL_App* pApp);
~CFWL_DateTimePicker() override;
diff --git a/xfa/fwl/cfwl_eventmouse.h b/xfa/fwl/cfwl_eventmouse.h
index a5caa93..170f39a 100644
--- a/xfa/fwl/cfwl_eventmouse.h
+++ b/xfa/fwl/cfwl_eventmouse.h
@@ -9,7 +9,7 @@
#include "xfa/fwl/cfwl_event.h"
-class CFWL_EventMouse : public CFWL_Event {
+class CFWL_EventMouse final : public CFWL_Event {
public:
explicit CFWL_EventMouse(CFWL_Widget* pSrcTarget);
CFWL_EventMouse(CFWL_Widget* pSrcTarget, CFWL_Widget* pDstTarget);
diff --git a/xfa/fwl/cfwl_eventscroll.h b/xfa/fwl/cfwl_eventscroll.h
index a13eeef..0491ad7 100644
--- a/xfa/fwl/cfwl_eventscroll.h
+++ b/xfa/fwl/cfwl_eventscroll.h
@@ -9,7 +9,7 @@
#include "xfa/fwl/cfwl_event.h"
-class CFWL_EventScroll : public CFWL_Event {
+class CFWL_EventScroll final : public CFWL_Event {
public:
enum class Code {
None = 1,
diff --git a/xfa/fwl/cfwl_eventselectchanged.h b/xfa/fwl/cfwl_eventselectchanged.h
index 30f1e2d..176cb87 100644
--- a/xfa/fwl/cfwl_eventselectchanged.h
+++ b/xfa/fwl/cfwl_eventselectchanged.h
@@ -9,7 +9,7 @@
#include "xfa/fwl/cfwl_event.h"
-class CFWL_EventSelectChanged : public CFWL_Event {
+class CFWL_EventSelectChanged final : public CFWL_Event {
public:
explicit CFWL_EventSelectChanged(CFWL_Widget* pSrcTarget);
~CFWL_EventSelectChanged() override;
diff --git a/xfa/fwl/cfwl_eventtextwillchange.h b/xfa/fwl/cfwl_eventtextwillchange.h
index 4b2781f..a1bfe8c 100644
--- a/xfa/fwl/cfwl_eventtextwillchange.h
+++ b/xfa/fwl/cfwl_eventtextwillchange.h
@@ -9,7 +9,7 @@
#include "xfa/fwl/cfwl_event.h"
-class CFWL_EventTextWillChange : public CFWL_Event {
+class CFWL_EventTextWillChange final : public CFWL_Event {
public:
explicit CFWL_EventTextWillChange(CFWL_Widget* pSrcTarget);
~CFWL_EventTextWillChange() override;
diff --git a/xfa/fwl/cfwl_eventvalidate.h b/xfa/fwl/cfwl_eventvalidate.h
index b8feff1..7d88b97 100644
--- a/xfa/fwl/cfwl_eventvalidate.h
+++ b/xfa/fwl/cfwl_eventvalidate.h
@@ -9,7 +9,7 @@
#include "xfa/fwl/cfwl_event.h"
-class CFWL_EventValidate : public CFWL_Event {
+class CFWL_EventValidate final : public CFWL_Event {
public:
explicit CFWL_EventValidate(CFWL_Widget* pSrcTarget);
~CFWL_EventValidate() override;
diff --git a/xfa/fwl/cfwl_form.h b/xfa/fwl/cfwl_form.h
index 01ae9be..4e13001 100644
--- a/xfa/fwl/cfwl_form.h
+++ b/xfa/fwl/cfwl_form.h
@@ -20,7 +20,7 @@
class CFWL_Widget;
class IFWL_ThemeProvider;
-class CFWL_Form : public CFWL_Widget {
+class CFWL_Form final : public CFWL_Widget {
public:
CFWL_Form(const CFWL_App* app,
std::unique_ptr<CFWL_WidgetProperties> properties,
diff --git a/xfa/fwl/cfwl_messagekey.h b/xfa/fwl/cfwl_messagekey.h
index bf430d3..1835774 100644
--- a/xfa/fwl/cfwl_messagekey.h
+++ b/xfa/fwl/cfwl_messagekey.h
@@ -13,7 +13,7 @@
enum class FWL_KeyCommand { KeyDown, KeyUp, Char };
-class CFWL_MessageKey : public CFWL_Message {
+class CFWL_MessageKey final : public CFWL_Message {
public:
CFWL_MessageKey(CFWL_Widget* pSrcTarget, CFWL_Widget* pDstTarget);
~CFWL_MessageKey() override;
diff --git a/xfa/fwl/cfwl_messagekillfocus.h b/xfa/fwl/cfwl_messagekillfocus.h
index 79aaebe..56cfc39 100644
--- a/xfa/fwl/cfwl_messagekillfocus.h
+++ b/xfa/fwl/cfwl_messagekillfocus.h
@@ -12,7 +12,7 @@
#include "core/fxcrt/unowned_ptr.h"
#include "xfa/fwl/cfwl_message.h"
-class CFWL_MessageKillFocus : public CFWL_Message {
+class CFWL_MessageKillFocus final : public CFWL_Message {
public:
explicit CFWL_MessageKillFocus(CFWL_Widget* pSrcTarget);
CFWL_MessageKillFocus(CFWL_Widget* pSrcTarget, CFWL_Widget* pDstTarget);
diff --git a/xfa/fwl/cfwl_messagemouse.h b/xfa/fwl/cfwl_messagemouse.h
index a2b0d39..ae9711f 100644
--- a/xfa/fwl/cfwl_messagemouse.h
+++ b/xfa/fwl/cfwl_messagemouse.h
@@ -25,7 +25,7 @@
Hover
};
-class CFWL_MessageMouse : public CFWL_Message {
+class CFWL_MessageMouse final : public CFWL_Message {
public:
CFWL_MessageMouse(CFWL_Widget* pSrcTarget, CFWL_Widget* pDstTarget);
CFWL_MessageMouse(const CFWL_MessageMouse& other);
diff --git a/xfa/fwl/cfwl_messagemousewheel.h b/xfa/fwl/cfwl_messagemousewheel.h
index f969b9a..8fc3a63 100644
--- a/xfa/fwl/cfwl_messagemousewheel.h
+++ b/xfa/fwl/cfwl_messagemousewheel.h
@@ -12,7 +12,7 @@
#include "core/fxcrt/fx_coordinates.h"
#include "xfa/fwl/cfwl_message.h"
-class CFWL_MessageMouseWheel : public CFWL_Message {
+class CFWL_MessageMouseWheel final : public CFWL_Message {
public:
CFWL_MessageMouseWheel(CFWL_Widget* pSrcTarget, CFWL_Widget* pDstTarget);
CFWL_MessageMouseWheel(const CFWL_MessageMouseWheel&);
diff --git a/xfa/fwl/cfwl_messagesetfocus.h b/xfa/fwl/cfwl_messagesetfocus.h
index 05616fb..b9f0f0f 100644
--- a/xfa/fwl/cfwl_messagesetfocus.h
+++ b/xfa/fwl/cfwl_messagesetfocus.h
@@ -11,7 +11,7 @@
#include "xfa/fwl/cfwl_message.h"
-class CFWL_MessageSetFocus : public CFWL_Message {
+class CFWL_MessageSetFocus final : public CFWL_Message {
public:
CFWL_MessageSetFocus(CFWL_Widget* pSrcTarget, CFWL_Widget* pDstTarget);
~CFWL_MessageSetFocus() override;
diff --git a/xfa/fwl/cfwl_monthcalendar.h b/xfa/fwl/cfwl_monthcalendar.h
index bdf66a0..1bb0bd2 100644
--- a/xfa/fwl/cfwl_monthcalendar.h
+++ b/xfa/fwl/cfwl_monthcalendar.h
@@ -20,7 +20,7 @@
class CFWL_MessageMouse;
-class CFWL_MonthCalendar : public CFWL_Widget {
+class CFWL_MonthCalendar final : public CFWL_Widget {
public:
CFWL_MonthCalendar(const CFWL_App* app,
std::unique_ptr<CFWL_WidgetProperties> properties,
diff --git a/xfa/fwl/cfwl_picturebox.h b/xfa/fwl/cfwl_picturebox.h
index 363db8a..3823a59 100644
--- a/xfa/fwl/cfwl_picturebox.h
+++ b/xfa/fwl/cfwl_picturebox.h
@@ -15,7 +15,7 @@
class CFX_DIBitmap;
class CFWL_Widget;
-class CFWL_PictureBox : public CFWL_Widget {
+class CFWL_PictureBox final : public CFWL_Widget {
public:
explicit CFWL_PictureBox(const CFWL_App* pApp);
~CFWL_PictureBox() override;
diff --git a/xfa/fwl/cfwl_pushbutton.h b/xfa/fwl/cfwl_pushbutton.h
index 5c509fb..275f9b5 100644
--- a/xfa/fwl/cfwl_pushbutton.h
+++ b/xfa/fwl/cfwl_pushbutton.h
@@ -19,7 +19,7 @@
class CFX_DIBitmap;
class CFWL_Widget;
-class CFWL_PushButton : public CFWL_Widget {
+class CFWL_PushButton final : public CFWL_Widget {
public:
explicit CFWL_PushButton(const CFWL_App*);
~CFWL_PushButton() override;
diff --git a/xfa/fwl/cfwl_scrollbar.h b/xfa/fwl/cfwl_scrollbar.h
index de394ed..fc5248f 100644
--- a/xfa/fwl/cfwl_scrollbar.h
+++ b/xfa/fwl/cfwl_scrollbar.h
@@ -21,7 +21,7 @@
#define FWL_STYLEEXT_SCB_Horz (0L << 0)
#define FWL_STYLEEXT_SCB_Vert (1L << 0)
-class CFWL_ScrollBar : public CFWL_Widget {
+class CFWL_ScrollBar final : public CFWL_Widget {
public:
CFWL_ScrollBar(const CFWL_App* app,
std::unique_ptr<CFWL_WidgetProperties> properties,
@@ -55,7 +55,7 @@
void SetTrackPos(float fTrackPos);
private:
- class Timer : public CFWL_Timer {
+ class Timer final : public CFWL_Timer {
public:
explicit Timer(CFWL_ScrollBar* pToolTip);
~Timer() override {}
diff --git a/xfa/fwl/cfwl_themebackground.h b/xfa/fwl/cfwl_themebackground.h
index 37103ae..46df73c 100644
--- a/xfa/fwl/cfwl_themebackground.h
+++ b/xfa/fwl/cfwl_themebackground.h
@@ -13,7 +13,7 @@
class CXFA_Graphics;
class CXFA_GEPath;
-class CFWL_ThemeBackground : public CFWL_ThemePart {
+class CFWL_ThemeBackground final : public CFWL_ThemePart {
public:
CFWL_ThemeBackground();
~CFWL_ThemeBackground();
diff --git a/xfa/fwl/cfwl_themetext.h b/xfa/fwl/cfwl_themetext.h
index 91a3f38..a63b8bf 100644
--- a/xfa/fwl/cfwl_themetext.h
+++ b/xfa/fwl/cfwl_themetext.h
@@ -11,7 +11,7 @@
#include "core/fxcrt/fx_system.h"
#include "xfa/fwl/cfwl_themepart.h"
-class CFWL_ThemeText : public CFWL_ThemePart {
+class CFWL_ThemeText final : public CFWL_ThemePart {
public:
CFWL_ThemeText() : m_pGraphics(nullptr) {}
diff --git a/xfa/fwl/theme/cfwl_barcodetp.h b/xfa/fwl/theme/cfwl_barcodetp.h
index 42b41e7..3fb9d3d 100644
--- a/xfa/fwl/theme/cfwl_barcodetp.h
+++ b/xfa/fwl/theme/cfwl_barcodetp.h
@@ -10,7 +10,7 @@
#include "xfa/fwl/theme/cfwl_utils.h"
#include "xfa/fwl/theme/cfwl_widgettp.h"
-class CFWL_BarcodeTP : public CFWL_WidgetTP {
+class CFWL_BarcodeTP final : public CFWL_WidgetTP {
public:
CFWL_BarcodeTP();
~CFWL_BarcodeTP() override;
diff --git a/xfa/fwl/theme/cfwl_carettp.h b/xfa/fwl/theme/cfwl_carettp.h
index 64bf51b..a71afc9 100644
--- a/xfa/fwl/theme/cfwl_carettp.h
+++ b/xfa/fwl/theme/cfwl_carettp.h
@@ -9,7 +9,7 @@
#include "xfa/fwl/theme/cfwl_widgettp.h"
-class CFWL_CaretTP : public CFWL_WidgetTP {
+class CFWL_CaretTP final : public CFWL_WidgetTP {
public:
CFWL_CaretTP();
~CFWL_CaretTP() override;
diff --git a/xfa/fwl/theme/cfwl_checkboxtp.h b/xfa/fwl/theme/cfwl_checkboxtp.h
index c4341ed..fa06c7e 100644
--- a/xfa/fwl/theme/cfwl_checkboxtp.h
+++ b/xfa/fwl/theme/cfwl_checkboxtp.h
@@ -12,7 +12,7 @@
#include "xfa/fwl/theme/cfwl_utils.h"
#include "xfa/fwl/theme/cfwl_widgettp.h"
-class CFWL_CheckBoxTP : public CFWL_WidgetTP {
+class CFWL_CheckBoxTP final : public CFWL_WidgetTP {
public:
CFWL_CheckBoxTP();
~CFWL_CheckBoxTP() override;
diff --git a/xfa/fwl/theme/cfwl_comboboxtp.h b/xfa/fwl/theme/cfwl_comboboxtp.h
index 183d3a0..dd8311c 100644
--- a/xfa/fwl/theme/cfwl_comboboxtp.h
+++ b/xfa/fwl/theme/cfwl_comboboxtp.h
@@ -9,7 +9,7 @@
#include "xfa/fwl/theme/cfwl_widgettp.h"
-class CFWL_ComboBoxTP : public CFWL_WidgetTP {
+class CFWL_ComboBoxTP final : public CFWL_WidgetTP {
public:
CFWL_ComboBoxTP();
~CFWL_ComboBoxTP() override;
diff --git a/xfa/fwl/theme/cfwl_datetimepickertp.h b/xfa/fwl/theme/cfwl_datetimepickertp.h
index 11536a3..5a54851 100644
--- a/xfa/fwl/theme/cfwl_datetimepickertp.h
+++ b/xfa/fwl/theme/cfwl_datetimepickertp.h
@@ -9,7 +9,7 @@
#include "xfa/fwl/theme/cfwl_widgettp.h"
-class CFWL_DateTimePickerTP : public CFWL_WidgetTP {
+class CFWL_DateTimePickerTP final : public CFWL_WidgetTP {
public:
CFWL_DateTimePickerTP();
~CFWL_DateTimePickerTP() override;
diff --git a/xfa/fwl/theme/cfwl_edittp.h b/xfa/fwl/theme/cfwl_edittp.h
index e1c6ac9..7d00560 100644
--- a/xfa/fwl/theme/cfwl_edittp.h
+++ b/xfa/fwl/theme/cfwl_edittp.h
@@ -9,7 +9,7 @@
#include "xfa/fwl/theme/cfwl_widgettp.h"
-class CFWL_EditTP : public CFWL_WidgetTP {
+class CFWL_EditTP final : public CFWL_WidgetTP {
public:
CFWL_EditTP();
~CFWL_EditTP() override;
diff --git a/xfa/fwl/theme/cfwl_listboxtp.h b/xfa/fwl/theme/cfwl_listboxtp.h
index cc4691c..95ce01c 100644
--- a/xfa/fwl/theme/cfwl_listboxtp.h
+++ b/xfa/fwl/theme/cfwl_listboxtp.h
@@ -9,7 +9,7 @@
#include "xfa/fwl/theme/cfwl_widgettp.h"
-class CFWL_ListBoxTP : public CFWL_WidgetTP {
+class CFWL_ListBoxTP final : public CFWL_WidgetTP {
public:
CFWL_ListBoxTP();
~CFWL_ListBoxTP() override;
diff --git a/xfa/fwl/theme/cfwl_monthcalendartp.h b/xfa/fwl/theme/cfwl_monthcalendartp.h
index 6a1b9be..95e2a19 100644
--- a/xfa/fwl/theme/cfwl_monthcalendartp.h
+++ b/xfa/fwl/theme/cfwl_monthcalendartp.h
@@ -11,7 +11,7 @@
#include "xfa/fwl/theme/cfwl_widgettp.h"
-class CFWL_MonthCalendarTP : public CFWL_WidgetTP {
+class CFWL_MonthCalendarTP final : public CFWL_WidgetTP {
public:
CFWL_MonthCalendarTP();
~CFWL_MonthCalendarTP() override;
diff --git a/xfa/fwl/theme/cfwl_pictureboxtp.h b/xfa/fwl/theme/cfwl_pictureboxtp.h
index 4a118f2..1bb3486 100644
--- a/xfa/fwl/theme/cfwl_pictureboxtp.h
+++ b/xfa/fwl/theme/cfwl_pictureboxtp.h
@@ -9,7 +9,7 @@
#include "xfa/fwl/theme/cfwl_widgettp.h"
-class CFWL_PictureBoxTP : public CFWL_WidgetTP {
+class CFWL_PictureBoxTP final : public CFWL_WidgetTP {
public:
CFWL_PictureBoxTP();
~CFWL_PictureBoxTP() override;
diff --git a/xfa/fwl/theme/cfwl_pushbuttontp.h b/xfa/fwl/theme/cfwl_pushbuttontp.h
index b2372bb..2e1782a 100644
--- a/xfa/fwl/theme/cfwl_pushbuttontp.h
+++ b/xfa/fwl/theme/cfwl_pushbuttontp.h
@@ -11,7 +11,7 @@
#include "xfa/fwl/theme/cfwl_widgettp.h"
-class CFWL_PushButtonTP : public CFWL_WidgetTP {
+class CFWL_PushButtonTP final : public CFWL_WidgetTP {
public:
CFWL_PushButtonTP();
~CFWL_PushButtonTP() override;
diff --git a/xfa/fwl/theme/cfwl_scrollbartp.h b/xfa/fwl/theme/cfwl_scrollbartp.h
index 8398706..53cbb38 100644
--- a/xfa/fwl/theme/cfwl_scrollbartp.h
+++ b/xfa/fwl/theme/cfwl_scrollbartp.h
@@ -11,7 +11,7 @@
#include "xfa/fwl/theme/cfwl_widgettp.h"
-class CFWL_ScrollBarTP : public CFWL_WidgetTP {
+class CFWL_ScrollBarTP final : public CFWL_WidgetTP {
public:
CFWL_ScrollBarTP();
~CFWL_ScrollBarTP() override;
diff --git a/xfa/fxfa/cxfa_ffarc.h b/xfa/fxfa/cxfa_ffarc.h
index 8e8b292..908ba0a 100644
--- a/xfa/fxfa/cxfa_ffarc.h
+++ b/xfa/fxfa/cxfa_ffarc.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/cxfa_ffwidget.h"
-class CXFA_FFArc : public CXFA_FFWidget {
+class CXFA_FFArc final : public CXFA_FFWidget {
public:
explicit CXFA_FFArc(CXFA_Node* pnode);
~CXFA_FFArc() override;
diff --git a/xfa/fxfa/cxfa_ffbarcode.h b/xfa/fxfa/cxfa_ffbarcode.h
index 672f89c..5b55062 100644
--- a/xfa/fxfa/cxfa_ffbarcode.h
+++ b/xfa/fxfa/cxfa_ffbarcode.h
@@ -86,7 +86,7 @@
class CXFA_Barcode;
-class CXFA_FFBarcode : public CXFA_FFTextEdit {
+class CXFA_FFBarcode final : public CXFA_FFTextEdit {
public:
static const BarCodeInfo* GetBarcodeTypeByName(const WideString& wsName);
diff --git a/xfa/fxfa/cxfa_ffcheckbutton.h b/xfa/fxfa/cxfa_ffcheckbutton.h
index 0bbec75..0d34cf9 100644
--- a/xfa/fxfa/cxfa_ffcheckbutton.h
+++ b/xfa/fxfa/cxfa_ffcheckbutton.h
@@ -14,7 +14,7 @@
class CXFA_CheckButton;
-class CXFA_FFCheckButton : public CXFA_FFField {
+class CXFA_FFCheckButton final : public CXFA_FFField {
public:
CXFA_FFCheckButton(CXFA_Node* pNode, CXFA_CheckButton* button);
~CXFA_FFCheckButton() override;
diff --git a/xfa/fxfa/cxfa_ffcombobox.h b/xfa/fxfa/cxfa_ffcombobox.h
index ed68df0..9ed8c40 100644
--- a/xfa/fxfa/cxfa_ffcombobox.h
+++ b/xfa/fxfa/cxfa_ffcombobox.h
@@ -12,7 +12,7 @@
class CXFA_EventParam;
-class CXFA_FFComboBox : public CXFA_FFDropDown {
+class CXFA_FFComboBox final : public CXFA_FFDropDown {
public:
explicit CXFA_FFComboBox(CXFA_Node* pNode);
~CXFA_FFComboBox() override;
diff --git a/xfa/fxfa/cxfa_ffdatetimeedit.h b/xfa/fxfa/cxfa_ffdatetimeedit.h
index 3a60ada..64a6ef0 100644
--- a/xfa/fxfa/cxfa_ffdatetimeedit.h
+++ b/xfa/fxfa/cxfa_ffdatetimeedit.h
@@ -20,7 +20,7 @@
class CFWL_Event;
class CFWL_Widget;
-class CXFA_FFDateTimeEdit : public CXFA_FFTextEdit {
+class CXFA_FFDateTimeEdit final : public CXFA_FFTextEdit {
public:
explicit CXFA_FFDateTimeEdit(CXFA_Node* pNode);
~CXFA_FFDateTimeEdit() override;
diff --git a/xfa/fxfa/cxfa_ffexclgroup.h b/xfa/fxfa/cxfa_ffexclgroup.h
index b904301..7b16248 100644
--- a/xfa/fxfa/cxfa_ffexclgroup.h
+++ b/xfa/fxfa/cxfa_ffexclgroup.h
@@ -10,7 +10,7 @@
#include "xfa/fxfa/cxfa_ffpageview.h"
#include "xfa/fxfa/cxfa_ffwidget.h"
-class CXFA_FFExclGroup : public CXFA_FFWidget {
+class CXFA_FFExclGroup final : public CXFA_FFWidget {
public:
explicit CXFA_FFExclGroup(CXFA_Node* pNode);
~CXFA_FFExclGroup() override;
diff --git a/xfa/fxfa/cxfa_ffimage.h b/xfa/fxfa/cxfa_ffimage.h
index 7859f10..655c679f 100644
--- a/xfa/fxfa/cxfa_ffimage.h
+++ b/xfa/fxfa/cxfa_ffimage.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/cxfa_ffwidget.h"
-class CXFA_FFImage : public CXFA_FFWidget {
+class CXFA_FFImage final : public CXFA_FFWidget {
public:
explicit CXFA_FFImage(CXFA_Node* pNode);
~CXFA_FFImage() override;
diff --git a/xfa/fxfa/cxfa_ffimageedit.h b/xfa/fxfa/cxfa_ffimageedit.h
index c2fd7f7..0339448 100644
--- a/xfa/fxfa/cxfa_ffimageedit.h
+++ b/xfa/fxfa/cxfa_ffimageedit.h
@@ -10,7 +10,7 @@
#include "core/fxcrt/unowned_ptr.h"
#include "xfa/fxfa/cxfa_fffield.h"
-class CXFA_FFImageEdit : public CXFA_FFField {
+class CXFA_FFImageEdit final : public CXFA_FFField {
public:
explicit CXFA_FFImageEdit(CXFA_Node* pNode);
~CXFA_FFImageEdit() override;
diff --git a/xfa/fxfa/cxfa_ffline.h b/xfa/fxfa/cxfa_ffline.h
index ff8d461..f5c8247 100644
--- a/xfa/fxfa/cxfa_ffline.h
+++ b/xfa/fxfa/cxfa_ffline.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/cxfa_ffwidget.h"
-class CXFA_FFLine : public CXFA_FFWidget {
+class CXFA_FFLine final : public CXFA_FFWidget {
public:
explicit CXFA_FFLine(CXFA_Node* pNode);
~CXFA_FFLine() override;
diff --git a/xfa/fxfa/cxfa_fflistbox.h b/xfa/fxfa/cxfa_fflistbox.h
index 4b12b59..d65dd8f 100644
--- a/xfa/fxfa/cxfa_fflistbox.h
+++ b/xfa/fxfa/cxfa_fflistbox.h
@@ -10,7 +10,7 @@
#include "core/fxcrt/unowned_ptr.h"
#include "xfa/fxfa/cxfa_ffdropdown.h"
-class CXFA_FFListBox : public CXFA_FFDropDown {
+class CXFA_FFListBox final : public CXFA_FFDropDown {
public:
explicit CXFA_FFListBox(CXFA_Node* pNode);
~CXFA_FFListBox() override;
diff --git a/xfa/fxfa/cxfa_ffnumericedit.h b/xfa/fxfa/cxfa_ffnumericedit.h
index 8982ee0..b2c39ce 100644
--- a/xfa/fxfa/cxfa_ffnumericedit.h
+++ b/xfa/fxfa/cxfa_ffnumericedit.h
@@ -13,7 +13,7 @@
class CFWL_Event;
class CFWL_Widget;
-class CXFA_FFNumericEdit : public CXFA_FFTextEdit {
+class CXFA_FFNumericEdit final : public CXFA_FFTextEdit {
public:
explicit CXFA_FFNumericEdit(CXFA_Node* pNode);
~CXFA_FFNumericEdit() override;
diff --git a/xfa/fxfa/cxfa_ffpageview.h b/xfa/fxfa/cxfa_ffpageview.h
index 31ce63f..a745b06 100644
--- a/xfa/fxfa/cxfa_ffpageview.h
+++ b/xfa/fxfa/cxfa_ffpageview.h
@@ -17,7 +17,7 @@
class CXFA_FFWidget;
class CXFA_FFDocView;
-class CXFA_FFPageView : public CXFA_ContainerLayoutItem {
+class CXFA_FFPageView final : public CXFA_ContainerLayoutItem {
public:
CXFA_FFPageView(CXFA_FFDocView* pDocView, CXFA_Node* pPageArea);
~CXFA_FFPageView() override;
@@ -33,7 +33,7 @@
UnownedPtr<CXFA_FFDocView> const m_pDocView;
};
-class CXFA_FFPageWidgetIterator : public IXFA_WidgetIterator {
+class CXFA_FFPageWidgetIterator final : public IXFA_WidgetIterator {
public:
CXFA_FFPageWidgetIterator(CXFA_FFPageView* pPageView, uint32_t dwFilter);
~CXFA_FFPageWidgetIterator() override;
@@ -71,7 +71,7 @@
std::vector<CXFA_FFWidget*> m_Children;
};
-class CXFA_FFTabOrderPageWidgetIterator : public IXFA_WidgetIterator {
+class CXFA_FFTabOrderPageWidgetIterator final : public IXFA_WidgetIterator {
public:
CXFA_FFTabOrderPageWidgetIterator(CXFA_FFPageView* pPageView,
uint32_t dwFilter);
diff --git a/xfa/fxfa/cxfa_ffpasswordedit.h b/xfa/fxfa/cxfa_ffpasswordedit.h
index 8f5093f..3af4f96 100644
--- a/xfa/fxfa/cxfa_ffpasswordedit.h
+++ b/xfa/fxfa/cxfa_ffpasswordedit.h
@@ -12,7 +12,7 @@
class CXFA_PasswordEdit;
-class CXFA_FFPasswordEdit : public CXFA_FFTextEdit {
+class CXFA_FFPasswordEdit final : public CXFA_FFTextEdit {
public:
CXFA_FFPasswordEdit(CXFA_Node* pNode, CXFA_PasswordEdit* password_node);
~CXFA_FFPasswordEdit() override;
diff --git a/xfa/fxfa/cxfa_ffpushbutton.h b/xfa/fxfa/cxfa_ffpushbutton.h
index 9c12dacc..604497a 100644
--- a/xfa/fxfa/cxfa_ffpushbutton.h
+++ b/xfa/fxfa/cxfa_ffpushbutton.h
@@ -20,7 +20,7 @@
class CXFA_TextLayout;
class CXFA_TextProvider;
-class CXFA_FFPushButton : public CXFA_FFField {
+class CXFA_FFPushButton final : public CXFA_FFField {
public:
CXFA_FFPushButton(CXFA_Node* pNode, CXFA_Button* button);
~CXFA_FFPushButton() override;
diff --git a/xfa/fxfa/cxfa_ffrectangle.h b/xfa/fxfa/cxfa_ffrectangle.h
index d05f4d7..c1f5864 100644
--- a/xfa/fxfa/cxfa_ffrectangle.h
+++ b/xfa/fxfa/cxfa_ffrectangle.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/cxfa_ffwidget.h"
-class CXFA_FFRectangle : public CXFA_FFWidget {
+class CXFA_FFRectangle final : public CXFA_FFWidget {
public:
explicit CXFA_FFRectangle(CXFA_Node* pNode);
~CXFA_FFRectangle() override;
diff --git a/xfa/fxfa/cxfa_fftext.h b/xfa/fxfa/cxfa_fftext.h
index 9da39d4..7561fdc 100644
--- a/xfa/fxfa/cxfa_fftext.h
+++ b/xfa/fxfa/cxfa_fftext.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/cxfa_ffwidget.h"
-class CXFA_FFText : public CXFA_FFWidget {
+class CXFA_FFText final : public CXFA_FFWidget {
public:
explicit CXFA_FFText(CXFA_Node* pNode);
~CXFA_FFText() override;
diff --git a/xfa/fxfa/cxfa_linkuserdata.h b/xfa/fxfa/cxfa_linkuserdata.h
index f62bd3c..baa39aa 100644
--- a/xfa/fxfa/cxfa_linkuserdata.h
+++ b/xfa/fxfa/cxfa_linkuserdata.h
@@ -11,7 +11,7 @@
#include "core/fxcrt/fx_system.h"
#include "core/fxcrt/retain_ptr.h"
-class CXFA_LinkUserData : public Retainable {
+class CXFA_LinkUserData final : public Retainable {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
diff --git a/xfa/fxfa/cxfa_textparser_unittest.cpp b/xfa/fxfa/cxfa_textparser_unittest.cpp
index bd748cd..5198638 100644
--- a/xfa/fxfa/cxfa_textparser_unittest.cpp
+++ b/xfa/fxfa/cxfa_textparser_unittest.cpp
@@ -6,7 +6,7 @@
#include "testing/gtest/include/gtest/gtest.h"
-class CXFA_TestTextParser : public CXFA_TextParser {
+class CXFA_TestTextParser final : public CXFA_TextParser {
public:
CXFA_TestTextParser() : CXFA_TextParser() {}
diff --git a/xfa/fxfa/cxfa_textuserdata.h b/xfa/fxfa/cxfa_textuserdata.h
index c1af217..1fe4fae 100644
--- a/xfa/fxfa/cxfa_textuserdata.h
+++ b/xfa/fxfa/cxfa_textuserdata.h
@@ -12,7 +12,7 @@
class CFX_CSSComputedStyle;
class CXFA_LinkUserData;
-class CXFA_TextUserData : public Retainable {
+class CXFA_TextUserData final : public Retainable {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
diff --git a/xfa/fxfa/fm2js/cxfa_fmexpression.h b/xfa/fxfa/fm2js/cxfa_fmexpression.h
index bff62c1..c20d76b 100644
--- a/xfa/fxfa/fm2js/cxfa_fmexpression.h
+++ b/xfa/fxfa/fm2js/cxfa_fmexpression.h
@@ -23,7 +23,7 @@
CXFA_FMExpression();
};
-class CXFA_FMFunctionDefinition : public CXFA_FMExpression {
+class CXFA_FMFunctionDefinition final : public CXFA_FMExpression {
public:
CXFA_FMFunctionDefinition(
const WideStringView& wsName,
@@ -51,7 +51,7 @@
std::vector<std::unique_ptr<CXFA_FMExpression>> expressions_;
};
-class CXFA_FMVarExpression : public CXFA_FMExpression {
+class CXFA_FMVarExpression final : public CXFA_FMExpression {
public:
CXFA_FMVarExpression(const WideStringView& wsName,
std::unique_ptr<CXFA_FMSimpleExpression> pInit);
@@ -64,7 +64,7 @@
std::unique_ptr<CXFA_FMSimpleExpression> m_pInit;
};
-class CXFA_FMExpExpression : public CXFA_FMExpression {
+class CXFA_FMExpExpression final : public CXFA_FMExpression {
public:
explicit CXFA_FMExpExpression(
std::unique_ptr<CXFA_FMSimpleExpression> pExpression);
@@ -76,7 +76,7 @@
std::unique_ptr<CXFA_FMSimpleExpression> m_pExpression;
};
-class CXFA_FMBlockExpression : public CXFA_FMExpression {
+class CXFA_FMBlockExpression final : public CXFA_FMExpression {
public:
CXFA_FMBlockExpression(
std::vector<std::unique_ptr<CXFA_FMExpression>>&& pExpressionList);
@@ -88,7 +88,7 @@
std::vector<std::unique_ptr<CXFA_FMExpression>> m_ExpressionList;
};
-class CXFA_FMDoExpression : public CXFA_FMExpression {
+class CXFA_FMDoExpression final : public CXFA_FMExpression {
public:
explicit CXFA_FMDoExpression(std::unique_ptr<CXFA_FMExpression> pList);
~CXFA_FMDoExpression() override;
@@ -99,7 +99,7 @@
std::unique_ptr<CXFA_FMExpression> m_pList;
};
-class CXFA_FMIfExpression : public CXFA_FMExpression {
+class CXFA_FMIfExpression final : public CXFA_FMExpression {
public:
CXFA_FMIfExpression(
std::unique_ptr<CXFA_FMSimpleExpression> pExpression,
@@ -117,7 +117,7 @@
std::unique_ptr<CXFA_FMExpression> m_pElseExpression;
};
-class CXFA_FMWhileExpression : public CXFA_FMExpression {
+class CXFA_FMWhileExpression final : public CXFA_FMExpression {
public:
CXFA_FMWhileExpression(std::unique_ptr<CXFA_FMSimpleExpression> pCodition,
std::unique_ptr<CXFA_FMExpression> pExpression);
@@ -130,7 +130,7 @@
std::unique_ptr<CXFA_FMExpression> m_pExpression;
};
-class CXFA_FMBreakExpression : public CXFA_FMExpression {
+class CXFA_FMBreakExpression final : public CXFA_FMExpression {
public:
CXFA_FMBreakExpression();
~CXFA_FMBreakExpression() override;
@@ -138,7 +138,7 @@
bool ToJavaScript(CFX_WideTextBuf* js, ReturnType type) override;
};
-class CXFA_FMContinueExpression : public CXFA_FMExpression {
+class CXFA_FMContinueExpression final : public CXFA_FMExpression {
public:
CXFA_FMContinueExpression();
~CXFA_FMContinueExpression() override;
@@ -146,7 +146,7 @@
bool ToJavaScript(CFX_WideTextBuf* js, ReturnType type) override;
};
-class CXFA_FMForExpression : public CXFA_FMExpression {
+class CXFA_FMForExpression final : public CXFA_FMExpression {
public:
CXFA_FMForExpression(const WideStringView& wsVariant,
std::unique_ptr<CXFA_FMSimpleExpression> pAssignment,
@@ -167,7 +167,7 @@
std::unique_ptr<CXFA_FMExpression> m_pList;
};
-class CXFA_FMForeachExpression : public CXFA_FMExpression {
+class CXFA_FMForeachExpression final : public CXFA_FMExpression {
public:
// Takes ownership of |pAccessors|.
CXFA_FMForeachExpression(
diff --git a/xfa/fxfa/fm2js/cxfa_fmsimpleexpression.h b/xfa/fxfa/fm2js/cxfa_fmsimpleexpression.h
index 0f3df31..275d7d4 100644
--- a/xfa/fxfa/fm2js/cxfa_fmsimpleexpression.h
+++ b/xfa/fxfa/fm2js/cxfa_fmsimpleexpression.h
@@ -36,7 +36,7 @@
const XFA_FM_TOKEN m_op;
};
-class CXFA_FMNullExpression : public CXFA_FMSimpleExpression {
+class CXFA_FMNullExpression final : public CXFA_FMSimpleExpression {
public:
CXFA_FMNullExpression();
~CXFA_FMNullExpression() override {}
@@ -44,7 +44,7 @@
bool ToJavaScript(CFX_WideTextBuf* js, ReturnType type) override;
};
-class CXFA_FMNumberExpression : public CXFA_FMSimpleExpression {
+class CXFA_FMNumberExpression final : public CXFA_FMSimpleExpression {
public:
explicit CXFA_FMNumberExpression(WideStringView wsNumber);
~CXFA_FMNumberExpression() override;
@@ -55,7 +55,7 @@
WideStringView m_wsNumber;
};
-class CXFA_FMStringExpression : public CXFA_FMSimpleExpression {
+class CXFA_FMStringExpression final : public CXFA_FMSimpleExpression {
public:
explicit CXFA_FMStringExpression(WideStringView wsString);
~CXFA_FMStringExpression() override;
@@ -66,7 +66,7 @@
WideStringView m_wsString;
};
-class CXFA_FMIdentifierExpression : public CXFA_FMSimpleExpression {
+class CXFA_FMIdentifierExpression final : public CXFA_FMSimpleExpression {
public:
explicit CXFA_FMIdentifierExpression(WideStringView wsIdentifier);
~CXFA_FMIdentifierExpression() override;
@@ -77,7 +77,7 @@
WideStringView m_wsIdentifier;
};
-class CXFA_FMAssignExpression : public CXFA_FMSimpleExpression {
+class CXFA_FMAssignExpression final : public CXFA_FMSimpleExpression {
public:
CXFA_FMAssignExpression(XFA_FM_TOKEN op,
std::unique_ptr<CXFA_FMSimpleExpression> pExp1,
@@ -109,7 +109,7 @@
std::unique_ptr<CXFA_FMSimpleExpression> m_pExp2;
};
-class CXFA_FMLogicalOrExpression : public CXFA_FMBinExpression {
+class CXFA_FMLogicalOrExpression final : public CXFA_FMBinExpression {
public:
CXFA_FMLogicalOrExpression(XFA_FM_TOKEN op,
std::unique_ptr<CXFA_FMSimpleExpression> pExp1,
@@ -117,7 +117,7 @@
~CXFA_FMLogicalOrExpression() override {}
};
-class CXFA_FMLogicalAndExpression : public CXFA_FMBinExpression {
+class CXFA_FMLogicalAndExpression final : public CXFA_FMBinExpression {
public:
CXFA_FMLogicalAndExpression(XFA_FM_TOKEN op,
std::unique_ptr<CXFA_FMSimpleExpression> pExp1,
@@ -125,7 +125,7 @@
~CXFA_FMLogicalAndExpression() override {}
};
-class CXFA_FMEqualExpression : public CXFA_FMBinExpression {
+class CXFA_FMEqualExpression final : public CXFA_FMBinExpression {
public:
CXFA_FMEqualExpression(XFA_FM_TOKEN op,
std::unique_ptr<CXFA_FMSimpleExpression> pExp1,
@@ -133,7 +133,7 @@
~CXFA_FMEqualExpression() override {}
};
-class CXFA_FMNotEqualExpression : public CXFA_FMBinExpression {
+class CXFA_FMNotEqualExpression final : public CXFA_FMBinExpression {
public:
CXFA_FMNotEqualExpression(XFA_FM_TOKEN op,
std::unique_ptr<CXFA_FMSimpleExpression> pExp1,
@@ -141,7 +141,7 @@
~CXFA_FMNotEqualExpression() override {}
};
-class CXFA_FMGtExpression : public CXFA_FMBinExpression {
+class CXFA_FMGtExpression final : public CXFA_FMBinExpression {
public:
CXFA_FMGtExpression(XFA_FM_TOKEN op,
std::unique_ptr<CXFA_FMSimpleExpression> pExp1,
@@ -149,7 +149,7 @@
~CXFA_FMGtExpression() override {}
};
-class CXFA_FMGeExpression : public CXFA_FMBinExpression {
+class CXFA_FMGeExpression final : public CXFA_FMBinExpression {
public:
CXFA_FMGeExpression(XFA_FM_TOKEN op,
std::unique_ptr<CXFA_FMSimpleExpression> pExp1,
@@ -157,7 +157,7 @@
~CXFA_FMGeExpression() override {}
};
-class CXFA_FMLtExpression : public CXFA_FMBinExpression {
+class CXFA_FMLtExpression final : public CXFA_FMBinExpression {
public:
CXFA_FMLtExpression(XFA_FM_TOKEN op,
std::unique_ptr<CXFA_FMSimpleExpression> pExp1,
@@ -165,7 +165,7 @@
~CXFA_FMLtExpression() override {}
};
-class CXFA_FMLeExpression : public CXFA_FMBinExpression {
+class CXFA_FMLeExpression final : public CXFA_FMBinExpression {
public:
CXFA_FMLeExpression(XFA_FM_TOKEN op,
std::unique_ptr<CXFA_FMSimpleExpression> pExp1,
@@ -173,7 +173,7 @@
~CXFA_FMLeExpression() override {}
};
-class CXFA_FMPlusExpression : public CXFA_FMBinExpression {
+class CXFA_FMPlusExpression final : public CXFA_FMBinExpression {
public:
CXFA_FMPlusExpression(XFA_FM_TOKEN op,
std::unique_ptr<CXFA_FMSimpleExpression> pExp1,
@@ -181,7 +181,7 @@
~CXFA_FMPlusExpression() override {}
};
-class CXFA_FMMinusExpression : public CXFA_FMBinExpression {
+class CXFA_FMMinusExpression final : public CXFA_FMBinExpression {
public:
CXFA_FMMinusExpression(XFA_FM_TOKEN op,
std::unique_ptr<CXFA_FMSimpleExpression> pExp1,
@@ -189,7 +189,7 @@
~CXFA_FMMinusExpression() override {}
};
-class CXFA_FMMulExpression : public CXFA_FMBinExpression {
+class CXFA_FMMulExpression final : public CXFA_FMBinExpression {
public:
CXFA_FMMulExpression(XFA_FM_TOKEN op,
std::unique_ptr<CXFA_FMSimpleExpression> pExp1,
@@ -197,7 +197,7 @@
~CXFA_FMMulExpression() override {}
};
-class CXFA_FMDivExpression : public CXFA_FMBinExpression {
+class CXFA_FMDivExpression final : public CXFA_FMBinExpression {
public:
CXFA_FMDivExpression(XFA_FM_TOKEN op,
std::unique_ptr<CXFA_FMSimpleExpression> pExp1,
@@ -221,25 +221,25 @@
std::unique_ptr<CXFA_FMSimpleExpression> m_pExp;
};
-class CXFA_FMPosExpression : public CXFA_FMUnaryExpression {
+class CXFA_FMPosExpression final : public CXFA_FMUnaryExpression {
public:
explicit CXFA_FMPosExpression(std::unique_ptr<CXFA_FMSimpleExpression> pExp);
~CXFA_FMPosExpression() override {}
};
-class CXFA_FMNegExpression : public CXFA_FMUnaryExpression {
+class CXFA_FMNegExpression final : public CXFA_FMUnaryExpression {
public:
explicit CXFA_FMNegExpression(std::unique_ptr<CXFA_FMSimpleExpression> pExp);
~CXFA_FMNegExpression() override {}
};
-class CXFA_FMNotExpression : public CXFA_FMUnaryExpression {
+class CXFA_FMNotExpression final : public CXFA_FMUnaryExpression {
public:
explicit CXFA_FMNotExpression(std::unique_ptr<CXFA_FMSimpleExpression> pExp);
~CXFA_FMNotExpression() override {}
};
-class CXFA_FMCallExpression : public CXFA_FMSimpleExpression {
+class CXFA_FMCallExpression final : public CXFA_FMSimpleExpression {
public:
CXFA_FMCallExpression(
std::unique_ptr<CXFA_FMSimpleExpression> pExp,
@@ -257,7 +257,7 @@
std::vector<std::unique_ptr<CXFA_FMSimpleExpression>> m_Arguments;
};
-class CXFA_FMDotAccessorExpression : public CXFA_FMSimpleExpression {
+class CXFA_FMDotAccessorExpression final : public CXFA_FMSimpleExpression {
public:
CXFA_FMDotAccessorExpression(
std::unique_ptr<CXFA_FMSimpleExpression> pAccessor,
@@ -274,7 +274,7 @@
std::unique_ptr<CXFA_FMSimpleExpression> m_pExp2;
};
-class CXFA_FMIndexExpression : public CXFA_FMSimpleExpression {
+class CXFA_FMIndexExpression final : public CXFA_FMSimpleExpression {
public:
CXFA_FMIndexExpression(XFA_FM_AccessorIndex accessorIndex,
std::unique_ptr<CXFA_FMSimpleExpression> pIndexExp,
@@ -289,7 +289,7 @@
bool m_bIsStarIndex;
};
-class CXFA_FMDotDotAccessorExpression : public CXFA_FMSimpleExpression {
+class CXFA_FMDotDotAccessorExpression final : public CXFA_FMSimpleExpression {
public:
CXFA_FMDotDotAccessorExpression(
std::unique_ptr<CXFA_FMSimpleExpression> pAccessor,
@@ -306,7 +306,7 @@
std::unique_ptr<CXFA_FMSimpleExpression> m_pExp2;
};
-class CXFA_FMMethodCallExpression : public CXFA_FMSimpleExpression {
+class CXFA_FMMethodCallExpression final : public CXFA_FMSimpleExpression {
public:
CXFA_FMMethodCallExpression(
std::unique_ptr<CXFA_FMSimpleExpression> pAccessorExp1,
diff --git a/xfa/fxfa/parser/cscript_datawindow.h b/xfa/fxfa/parser/cscript_datawindow.h
index 85a0a93..ceed58e 100644
--- a/xfa/fxfa/parser/cscript_datawindow.h
+++ b/xfa/fxfa/parser/cscript_datawindow.h
@@ -11,7 +11,7 @@
class CXFA_Document;
-class CScript_DataWindow : public CXFA_Object {
+class CScript_DataWindow final : public CXFA_Object {
public:
explicit CScript_DataWindow(CXFA_Document* pDocument);
~CScript_DataWindow() override;
diff --git a/xfa/fxfa/parser/cscript_eventpseudomodel.h b/xfa/fxfa/parser/cscript_eventpseudomodel.h
index 22957f3..8104162 100644
--- a/xfa/fxfa/parser/cscript_eventpseudomodel.h
+++ b/xfa/fxfa/parser/cscript_eventpseudomodel.h
@@ -11,7 +11,7 @@
class CXFA_Document;
-class CScript_EventPseudoModel : public CXFA_Object {
+class CScript_EventPseudoModel final : public CXFA_Object {
public:
explicit CScript_EventPseudoModel(CXFA_Document* pDocument);
~CScript_EventPseudoModel() override;
diff --git a/xfa/fxfa/parser/cscript_hostpseudomodel.h b/xfa/fxfa/parser/cscript_hostpseudomodel.h
index 8fb06c5..c8af249 100644
--- a/xfa/fxfa/parser/cscript_hostpseudomodel.h
+++ b/xfa/fxfa/parser/cscript_hostpseudomodel.h
@@ -11,7 +11,7 @@
class CXFA_Document;
-class CScript_HostPseudoModel : public CXFA_Object {
+class CScript_HostPseudoModel final : public CXFA_Object {
public:
explicit CScript_HostPseudoModel(CXFA_Document* pDocument);
~CScript_HostPseudoModel() override;
diff --git a/xfa/fxfa/parser/cscript_layoutpseudomodel.h b/xfa/fxfa/parser/cscript_layoutpseudomodel.h
index 0b49505..e88a6aa 100644
--- a/xfa/fxfa/parser/cscript_layoutpseudomodel.h
+++ b/xfa/fxfa/parser/cscript_layoutpseudomodel.h
@@ -11,7 +11,7 @@
class CXFA_Document;
-class CScript_LayoutPseudoModel : public CXFA_Object {
+class CScript_LayoutPseudoModel final : public CXFA_Object {
public:
explicit CScript_LayoutPseudoModel(CXFA_Document* pDocument);
~CScript_LayoutPseudoModel() override;
diff --git a/xfa/fxfa/parser/cscript_logpseudomodel.h b/xfa/fxfa/parser/cscript_logpseudomodel.h
index e4a33f4..aa11bea 100644
--- a/xfa/fxfa/parser/cscript_logpseudomodel.h
+++ b/xfa/fxfa/parser/cscript_logpseudomodel.h
@@ -11,7 +11,7 @@
class CXFA_Document;
-class CScript_LogPseudoModel : public CXFA_Object {
+class CScript_LogPseudoModel final : public CXFA_Object {
public:
explicit CScript_LogPseudoModel(CXFA_Document* pDocument);
~CScript_LogPseudoModel() override;
diff --git a/xfa/fxfa/parser/cscript_signaturepseudomodel.h b/xfa/fxfa/parser/cscript_signaturepseudomodel.h
index c2ecb2b..532a767 100644
--- a/xfa/fxfa/parser/cscript_signaturepseudomodel.h
+++ b/xfa/fxfa/parser/cscript_signaturepseudomodel.h
@@ -11,7 +11,7 @@
class CXFA_Document;
-class CScript_SignaturePseudoModel : public CXFA_Object {
+class CScript_SignaturePseudoModel final : public CXFA_Object {
public:
explicit CScript_SignaturePseudoModel(CXFA_Document* pDocument);
~CScript_SignaturePseudoModel() override;
diff --git a/xfa/fxfa/parser/cxfa_accessiblecontent.h b/xfa/fxfa/parser/cxfa_accessiblecontent.h
index 84ad8fc..2aea151 100644
--- a/xfa/fxfa/parser/cxfa_accessiblecontent.h
+++ b/xfa/fxfa/parser/cxfa_accessiblecontent.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_AccessibleContent : public CXFA_Node {
+class CXFA_AccessibleContent final : public CXFA_Node {
public:
CXFA_AccessibleContent(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_AccessibleContent() override;
diff --git a/xfa/fxfa/parser/cxfa_acrobat.h b/xfa/fxfa/parser/cxfa_acrobat.h
index 3701d59..5711178 100644
--- a/xfa/fxfa/parser/cxfa_acrobat.h
+++ b/xfa/fxfa/parser/cxfa_acrobat.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Acrobat : public CXFA_Node {
+class CXFA_Acrobat final : public CXFA_Node {
public:
CXFA_Acrobat(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Acrobat() override;
diff --git a/xfa/fxfa/parser/cxfa_acrobat7.h b/xfa/fxfa/parser/cxfa_acrobat7.h
index 579864a..8f64044 100644
--- a/xfa/fxfa/parser/cxfa_acrobat7.h
+++ b/xfa/fxfa/parser/cxfa_acrobat7.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Acrobat7 : public CXFA_Node {
+class CXFA_Acrobat7 final : public CXFA_Node {
public:
CXFA_Acrobat7(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Acrobat7() override;
diff --git a/xfa/fxfa/parser/cxfa_adbe_jsconsole.h b/xfa/fxfa/parser/cxfa_adbe_jsconsole.h
index 9fab6a1..e894479 100644
--- a/xfa/fxfa/parser/cxfa_adbe_jsconsole.h
+++ b/xfa/fxfa/parser/cxfa_adbe_jsconsole.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_aDBE_JSConsole : public CXFA_Node {
+class CXFA_aDBE_JSConsole final : public CXFA_Node {
public:
CXFA_aDBE_JSConsole(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_aDBE_JSConsole() override;
diff --git a/xfa/fxfa/parser/cxfa_adbe_jsdebugger.h b/xfa/fxfa/parser/cxfa_adbe_jsdebugger.h
index ed821d4..f7da535 100644
--- a/xfa/fxfa/parser/cxfa_adbe_jsdebugger.h
+++ b/xfa/fxfa/parser/cxfa_adbe_jsdebugger.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_aDBE_JSDebugger : public CXFA_Node {
+class CXFA_aDBE_JSDebugger final : public CXFA_Node {
public:
CXFA_aDBE_JSDebugger(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_aDBE_JSDebugger() override;
diff --git a/xfa/fxfa/parser/cxfa_addsilentprint.h b/xfa/fxfa/parser/cxfa_addsilentprint.h
index a251969..abfff47 100644
--- a/xfa/fxfa/parser/cxfa_addsilentprint.h
+++ b/xfa/fxfa/parser/cxfa_addsilentprint.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_AddSilentPrint : public CXFA_Node {
+class CXFA_AddSilentPrint final : public CXFA_Node {
public:
CXFA_AddSilentPrint(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_AddSilentPrint() override;
diff --git a/xfa/fxfa/parser/cxfa_addviewerpreferences.h b/xfa/fxfa/parser/cxfa_addviewerpreferences.h
index cf10868..62fd6e3 100644
--- a/xfa/fxfa/parser/cxfa_addviewerpreferences.h
+++ b/xfa/fxfa/parser/cxfa_addviewerpreferences.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_AddViewerPreferences : public CXFA_Node {
+class CXFA_AddViewerPreferences final : public CXFA_Node {
public:
CXFA_AddViewerPreferences(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_AddViewerPreferences() override;
diff --git a/xfa/fxfa/parser/cxfa_adjustdata.h b/xfa/fxfa/parser/cxfa_adjustdata.h
index 3c004c2..463f2e6 100644
--- a/xfa/fxfa/parser/cxfa_adjustdata.h
+++ b/xfa/fxfa/parser/cxfa_adjustdata.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_AdjustData : public CXFA_Node {
+class CXFA_AdjustData final : public CXFA_Node {
public:
CXFA_AdjustData(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_AdjustData() override;
diff --git a/xfa/fxfa/parser/cxfa_adobeextensionlevel.h b/xfa/fxfa/parser/cxfa_adobeextensionlevel.h
index 91a830f..5e0a507 100644
--- a/xfa/fxfa/parser/cxfa_adobeextensionlevel.h
+++ b/xfa/fxfa/parser/cxfa_adobeextensionlevel.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_AdobeExtensionLevel : public CXFA_Node {
+class CXFA_AdobeExtensionLevel final : public CXFA_Node {
public:
CXFA_AdobeExtensionLevel(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_AdobeExtensionLevel() override;
diff --git a/xfa/fxfa/parser/cxfa_agent.h b/xfa/fxfa/parser/cxfa_agent.h
index 65d826d..a84d2ac 100644
--- a/xfa/fxfa/parser/cxfa_agent.h
+++ b/xfa/fxfa/parser/cxfa_agent.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Agent : public CXFA_Node {
+class CXFA_Agent final : public CXFA_Node {
public:
CXFA_Agent(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Agent() override;
diff --git a/xfa/fxfa/parser/cxfa_alwaysembed.h b/xfa/fxfa/parser/cxfa_alwaysembed.h
index 1780976..754fd89 100644
--- a/xfa/fxfa/parser/cxfa_alwaysembed.h
+++ b/xfa/fxfa/parser/cxfa_alwaysembed.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_AlwaysEmbed : public CXFA_Node {
+class CXFA_AlwaysEmbed final : public CXFA_Node {
public:
CXFA_AlwaysEmbed(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_AlwaysEmbed() override;
diff --git a/xfa/fxfa/parser/cxfa_amd.h b/xfa/fxfa/parser/cxfa_amd.h
index 951c6ca..6d6562c 100644
--- a/xfa/fxfa/parser/cxfa_amd.h
+++ b/xfa/fxfa/parser/cxfa_amd.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Amd : public CXFA_Node {
+class CXFA_Amd final : public CXFA_Node {
public:
CXFA_Amd(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Amd() override;
diff --git a/xfa/fxfa/parser/cxfa_appearancefilter.h b/xfa/fxfa/parser/cxfa_appearancefilter.h
index 341232e..80b0ba4 100644
--- a/xfa/fxfa/parser/cxfa_appearancefilter.h
+++ b/xfa/fxfa/parser/cxfa_appearancefilter.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_AppearanceFilter : public CXFA_Node {
+class CXFA_AppearanceFilter final : public CXFA_Node {
public:
CXFA_AppearanceFilter(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_AppearanceFilter() override;
diff --git a/xfa/fxfa/parser/cxfa_arc.h b/xfa/fxfa/parser/cxfa_arc.h
index fd903aa..70d1b00 100644
--- a/xfa/fxfa/parser/cxfa_arc.h
+++ b/xfa/fxfa/parser/cxfa_arc.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_box.h"
-class CXFA_Arc : public CXFA_Box {
+class CXFA_Arc final : public CXFA_Box {
public:
CXFA_Arc(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Arc() override;
diff --git a/xfa/fxfa/parser/cxfa_area.h b/xfa/fxfa/parser/cxfa_area.h
index 6568e73..cf1ff87 100644
--- a/xfa/fxfa/parser/cxfa_area.h
+++ b/xfa/fxfa/parser/cxfa_area.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Area : public CXFA_Node {
+class CXFA_Area final : public CXFA_Node {
public:
CXFA_Area(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Area() override;
diff --git a/xfa/fxfa/parser/cxfa_arraynodelist.h b/xfa/fxfa/parser/cxfa_arraynodelist.h
index dc798bc..d723df3 100644
--- a/xfa/fxfa/parser/cxfa_arraynodelist.h
+++ b/xfa/fxfa/parser/cxfa_arraynodelist.h
@@ -14,7 +14,7 @@
class CXFA_Document;
class CXFA_Node;
-class CXFA_ArrayNodeList : public CXFA_TreeList {
+class CXFA_ArrayNodeList final : public CXFA_TreeList {
public:
explicit CXFA_ArrayNodeList(CXFA_Document* pDocument);
~CXFA_ArrayNodeList() override;
diff --git a/xfa/fxfa/parser/cxfa_assist.h b/xfa/fxfa/parser/cxfa_assist.h
index d0e9020..77643cf 100644
--- a/xfa/fxfa/parser/cxfa_assist.h
+++ b/xfa/fxfa/parser/cxfa_assist.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Assist : public CXFA_Node {
+class CXFA_Assist final : public CXFA_Node {
public:
CXFA_Assist(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Assist() override;
diff --git a/xfa/fxfa/parser/cxfa_attachnodelist.h b/xfa/fxfa/parser/cxfa_attachnodelist.h
index f4cebe4..a8248e6 100644
--- a/xfa/fxfa/parser/cxfa_attachnodelist.h
+++ b/xfa/fxfa/parser/cxfa_attachnodelist.h
@@ -12,7 +12,7 @@
class CXFA_Document;
class CXFA_Node;
-class CXFA_AttachNodeList : public CXFA_TreeList {
+class CXFA_AttachNodeList final : public CXFA_TreeList {
public:
CXFA_AttachNodeList(CXFA_Document* pDocument, CXFA_Node* pAttachNode);
~CXFA_AttachNodeList() override;
diff --git a/xfa/fxfa/parser/cxfa_attributes.h b/xfa/fxfa/parser/cxfa_attributes.h
index fd73da8..099ecea 100644
--- a/xfa/fxfa/parser/cxfa_attributes.h
+++ b/xfa/fxfa/parser/cxfa_attributes.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Attributes : public CXFA_Node {
+class CXFA_Attributes final : public CXFA_Node {
public:
CXFA_Attributes(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Attributes() override;
diff --git a/xfa/fxfa/parser/cxfa_autosave.h b/xfa/fxfa/parser/cxfa_autosave.h
index b58ccf1..5324351 100644
--- a/xfa/fxfa/parser/cxfa_autosave.h
+++ b/xfa/fxfa/parser/cxfa_autosave.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_AutoSave : public CXFA_Node {
+class CXFA_AutoSave final : public CXFA_Node {
public:
CXFA_AutoSave(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_AutoSave() override;
diff --git a/xfa/fxfa/parser/cxfa_barcode.h b/xfa/fxfa/parser/cxfa_barcode.h
index 463e97f..bf503e5 100644
--- a/xfa/fxfa/parser/cxfa_barcode.h
+++ b/xfa/fxfa/parser/cxfa_barcode.h
@@ -11,7 +11,7 @@
#include "third_party/base/optional.h"
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Barcode : public CXFA_Node {
+class CXFA_Barcode final : public CXFA_Node {
public:
CXFA_Barcode(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Barcode() override;
diff --git a/xfa/fxfa/parser/cxfa_base.h b/xfa/fxfa/parser/cxfa_base.h
index 3974343..3f1c9ba 100644
--- a/xfa/fxfa/parser/cxfa_base.h
+++ b/xfa/fxfa/parser/cxfa_base.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Base : public CXFA_Node {
+class CXFA_Base final : public CXFA_Node {
public:
CXFA_Base(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Base() override;
diff --git a/xfa/fxfa/parser/cxfa_batchoutput.h b/xfa/fxfa/parser/cxfa_batchoutput.h
index 9faa6cf..8d1de09 100644
--- a/xfa/fxfa/parser/cxfa_batchoutput.h
+++ b/xfa/fxfa/parser/cxfa_batchoutput.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_BatchOutput : public CXFA_Node {
+class CXFA_BatchOutput final : public CXFA_Node {
public:
CXFA_BatchOutput(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_BatchOutput() override;
diff --git a/xfa/fxfa/parser/cxfa_behavioroverride.h b/xfa/fxfa/parser/cxfa_behavioroverride.h
index cb082112..d7dce1b 100644
--- a/xfa/fxfa/parser/cxfa_behavioroverride.h
+++ b/xfa/fxfa/parser/cxfa_behavioroverride.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_BehaviorOverride : public CXFA_Node {
+class CXFA_BehaviorOverride final : public CXFA_Node {
public:
CXFA_BehaviorOverride(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_BehaviorOverride() override;
diff --git a/xfa/fxfa/parser/cxfa_bind.h b/xfa/fxfa/parser/cxfa_bind.h
index 1924cb6..f6331d6 100644
--- a/xfa/fxfa/parser/cxfa_bind.h
+++ b/xfa/fxfa/parser/cxfa_bind.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Bind : public CXFA_Node {
+class CXFA_Bind final : public CXFA_Node {
public:
CXFA_Bind(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Bind() override;
diff --git a/xfa/fxfa/parser/cxfa_binditems.h b/xfa/fxfa/parser/cxfa_binditems.h
index f1a490d..34a4b67 100644
--- a/xfa/fxfa/parser/cxfa_binditems.h
+++ b/xfa/fxfa/parser/cxfa_binditems.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_BindItems : public CXFA_Node {
+class CXFA_BindItems final : public CXFA_Node {
public:
CXFA_BindItems(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_BindItems() override;
diff --git a/xfa/fxfa/parser/cxfa_bookend.h b/xfa/fxfa/parser/cxfa_bookend.h
index 82eb13c..1c68763 100644
--- a/xfa/fxfa/parser/cxfa_bookend.h
+++ b/xfa/fxfa/parser/cxfa_bookend.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Bookend : public CXFA_Node {
+class CXFA_Bookend final : public CXFA_Node {
public:
CXFA_Bookend(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Bookend() override;
diff --git a/xfa/fxfa/parser/cxfa_boolean.h b/xfa/fxfa/parser/cxfa_boolean.h
index 4121e36..60b8e5e 100644
--- a/xfa/fxfa/parser/cxfa_boolean.h
+++ b/xfa/fxfa/parser/cxfa_boolean.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Boolean : public CXFA_Node {
+class CXFA_Boolean final : public CXFA_Node {
public:
CXFA_Boolean(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Boolean() override;
diff --git a/xfa/fxfa/parser/cxfa_border.h b/xfa/fxfa/parser/cxfa_border.h
index 24f3bb9..6071a77 100644
--- a/xfa/fxfa/parser/cxfa_border.h
+++ b/xfa/fxfa/parser/cxfa_border.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_rectangle.h"
-class CXFA_Border : public CXFA_Rectangle {
+class CXFA_Border final : public CXFA_Rectangle {
public:
CXFA_Border(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Border() override;
diff --git a/xfa/fxfa/parser/cxfa_break.h b/xfa/fxfa/parser/cxfa_break.h
index c0d937c..4bf7dde 100644
--- a/xfa/fxfa/parser/cxfa_break.h
+++ b/xfa/fxfa/parser/cxfa_break.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Break : public CXFA_Node {
+class CXFA_Break final : public CXFA_Node {
public:
CXFA_Break(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Break() override;
diff --git a/xfa/fxfa/parser/cxfa_breakafter.h b/xfa/fxfa/parser/cxfa_breakafter.h
index 952b0c9..c607ef5 100644
--- a/xfa/fxfa/parser/cxfa_breakafter.h
+++ b/xfa/fxfa/parser/cxfa_breakafter.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_BreakAfter : public CXFA_Node {
+class CXFA_BreakAfter final : public CXFA_Node {
public:
CXFA_BreakAfter(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_BreakAfter() override;
diff --git a/xfa/fxfa/parser/cxfa_breakbefore.h b/xfa/fxfa/parser/cxfa_breakbefore.h
index 358e477..1b6dc63 100644
--- a/xfa/fxfa/parser/cxfa_breakbefore.h
+++ b/xfa/fxfa/parser/cxfa_breakbefore.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_BreakBefore : public CXFA_Node {
+class CXFA_BreakBefore final : public CXFA_Node {
public:
CXFA_BreakBefore(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_BreakBefore() override;
diff --git a/xfa/fxfa/parser/cxfa_button.h b/xfa/fxfa/parser/cxfa_button.h
index cea685f..d9d67a9 100644
--- a/xfa/fxfa/parser/cxfa_button.h
+++ b/xfa/fxfa/parser/cxfa_button.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Button : public CXFA_Node {
+class CXFA_Button final : public CXFA_Node {
public:
CXFA_Button(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Button() override;
diff --git a/xfa/fxfa/parser/cxfa_cache.h b/xfa/fxfa/parser/cxfa_cache.h
index e3907c6..430163a 100644
--- a/xfa/fxfa/parser/cxfa_cache.h
+++ b/xfa/fxfa/parser/cxfa_cache.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Cache : public CXFA_Node {
+class CXFA_Cache final : public CXFA_Node {
public:
CXFA_Cache(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Cache() override;
diff --git a/xfa/fxfa/parser/cxfa_calculate.h b/xfa/fxfa/parser/cxfa_calculate.h
index a5be908..46c8770 100644
--- a/xfa/fxfa/parser/cxfa_calculate.h
+++ b/xfa/fxfa/parser/cxfa_calculate.h
@@ -11,7 +11,7 @@
class CXFA_Script;
-class CXFA_Calculate : public CXFA_Node {
+class CXFA_Calculate final : public CXFA_Node {
public:
CXFA_Calculate(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Calculate() override;
diff --git a/xfa/fxfa/parser/cxfa_calendarsymbols.h b/xfa/fxfa/parser/cxfa_calendarsymbols.h
index 1b1f007..82ecde4 100644
--- a/xfa/fxfa/parser/cxfa_calendarsymbols.h
+++ b/xfa/fxfa/parser/cxfa_calendarsymbols.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_CalendarSymbols : public CXFA_Node {
+class CXFA_CalendarSymbols final : public CXFA_Node {
public:
CXFA_CalendarSymbols(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_CalendarSymbols() override;
diff --git a/xfa/fxfa/parser/cxfa_caption.h b/xfa/fxfa/parser/cxfa_caption.h
index c790787..8f3dfdc 100644
--- a/xfa/fxfa/parser/cxfa_caption.h
+++ b/xfa/fxfa/parser/cxfa_caption.h
@@ -13,7 +13,7 @@
class CXFA_Margin;
class CXFA_Value;
-class CXFA_Caption : public CXFA_Node {
+class CXFA_Caption final : public CXFA_Node {
public:
static constexpr XFA_AttributeEnum kDefaultPlacementType =
XFA_AttributeEnum::Left;
diff --git a/xfa/fxfa/parser/cxfa_certificate.h b/xfa/fxfa/parser/cxfa_certificate.h
index 48106da..4923d57 100644
--- a/xfa/fxfa/parser/cxfa_certificate.h
+++ b/xfa/fxfa/parser/cxfa_certificate.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Certificate : public CXFA_Node {
+class CXFA_Certificate final : public CXFA_Node {
public:
CXFA_Certificate(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Certificate() override;
diff --git a/xfa/fxfa/parser/cxfa_certificates.h b/xfa/fxfa/parser/cxfa_certificates.h
index a1bed73..6817d03 100644
--- a/xfa/fxfa/parser/cxfa_certificates.h
+++ b/xfa/fxfa/parser/cxfa_certificates.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Certificates : public CXFA_Node {
+class CXFA_Certificates final : public CXFA_Node {
public:
CXFA_Certificates(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Certificates() override;
diff --git a/xfa/fxfa/parser/cxfa_change.h b/xfa/fxfa/parser/cxfa_change.h
index f39b92e..2fa4ba9 100644
--- a/xfa/fxfa/parser/cxfa_change.h
+++ b/xfa/fxfa/parser/cxfa_change.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Change : public CXFA_Node {
+class CXFA_Change final : public CXFA_Node {
public:
CXFA_Change(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Change() override;
diff --git a/xfa/fxfa/parser/cxfa_checkbutton.h b/xfa/fxfa/parser/cxfa_checkbutton.h
index e239a46..7d78919 100644
--- a/xfa/fxfa/parser/cxfa_checkbutton.h
+++ b/xfa/fxfa/parser/cxfa_checkbutton.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_CheckButton : public CXFA_Node {
+class CXFA_CheckButton final : public CXFA_Node {
public:
CXFA_CheckButton(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_CheckButton() override;
diff --git a/xfa/fxfa/parser/cxfa_choicelist.h b/xfa/fxfa/parser/cxfa_choicelist.h
index d621d8a..cff1463 100644
--- a/xfa/fxfa/parser/cxfa_choicelist.h
+++ b/xfa/fxfa/parser/cxfa_choicelist.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_ChoiceList : public CXFA_Node {
+class CXFA_ChoiceList final : public CXFA_Node {
public:
CXFA_ChoiceList(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_ChoiceList() override;
diff --git a/xfa/fxfa/parser/cxfa_color.h b/xfa/fxfa/parser/cxfa_color.h
index b15c9d8..d13a553 100644
--- a/xfa/fxfa/parser/cxfa_color.h
+++ b/xfa/fxfa/parser/cxfa_color.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Color : public CXFA_Node {
+class CXFA_Color final : public CXFA_Node {
public:
static constexpr FX_ARGB kBlackColor = 0xFF000000;
diff --git a/xfa/fxfa/parser/cxfa_comb.h b/xfa/fxfa/parser/cxfa_comb.h
index 1f2b538..4193a9c 100644
--- a/xfa/fxfa/parser/cxfa_comb.h
+++ b/xfa/fxfa/parser/cxfa_comb.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Comb : public CXFA_Node {
+class CXFA_Comb final : public CXFA_Node {
public:
CXFA_Comb(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Comb() override;
diff --git a/xfa/fxfa/parser/cxfa_command.h b/xfa/fxfa/parser/cxfa_command.h
index 88b74f3..46f9854 100644
--- a/xfa/fxfa/parser/cxfa_command.h
+++ b/xfa/fxfa/parser/cxfa_command.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Command : public CXFA_Node {
+class CXFA_Command final : public CXFA_Node {
public:
CXFA_Command(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Command() override;
diff --git a/xfa/fxfa/parser/cxfa_common.h b/xfa/fxfa/parser/cxfa_common.h
index d0ce0ea..7cab852 100644
--- a/xfa/fxfa/parser/cxfa_common.h
+++ b/xfa/fxfa/parser/cxfa_common.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Common : public CXFA_Node {
+class CXFA_Common final : public CXFA_Node {
public:
CXFA_Common(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Common() override;
diff --git a/xfa/fxfa/parser/cxfa_compress.h b/xfa/fxfa/parser/cxfa_compress.h
index bec1883..2b56390 100644
--- a/xfa/fxfa/parser/cxfa_compress.h
+++ b/xfa/fxfa/parser/cxfa_compress.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Compress : public CXFA_Node {
+class CXFA_Compress final : public CXFA_Node {
public:
CXFA_Compress(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Compress() override;
diff --git a/xfa/fxfa/parser/cxfa_compression.h b/xfa/fxfa/parser/cxfa_compression.h
index f0e26cb..7a571ae 100644
--- a/xfa/fxfa/parser/cxfa_compression.h
+++ b/xfa/fxfa/parser/cxfa_compression.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Compression : public CXFA_Node {
+class CXFA_Compression final : public CXFA_Node {
public:
CXFA_Compression(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Compression() override;
diff --git a/xfa/fxfa/parser/cxfa_compresslogicalstructure.h b/xfa/fxfa/parser/cxfa_compresslogicalstructure.h
index a8b5068..843eb60 100644
--- a/xfa/fxfa/parser/cxfa_compresslogicalstructure.h
+++ b/xfa/fxfa/parser/cxfa_compresslogicalstructure.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_CompressLogicalStructure : public CXFA_Node {
+class CXFA_CompressLogicalStructure final : public CXFA_Node {
public:
CXFA_CompressLogicalStructure(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_CompressLogicalStructure() override;
diff --git a/xfa/fxfa/parser/cxfa_compressobjectstream.h b/xfa/fxfa/parser/cxfa_compressobjectstream.h
index 94e02ce..bce7c65 100644
--- a/xfa/fxfa/parser/cxfa_compressobjectstream.h
+++ b/xfa/fxfa/parser/cxfa_compressobjectstream.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_CompressObjectStream : public CXFA_Node {
+class CXFA_CompressObjectStream final : public CXFA_Node {
public:
CXFA_CompressObjectStream(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_CompressObjectStream() override;
diff --git a/xfa/fxfa/parser/cxfa_config.h b/xfa/fxfa/parser/cxfa_config.h
index 2ddb692..644c475 100644
--- a/xfa/fxfa/parser/cxfa_config.h
+++ b/xfa/fxfa/parser/cxfa_config.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Config : public CXFA_Node {
+class CXFA_Config final : public CXFA_Node {
public:
CXFA_Config(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Config() override;
diff --git a/xfa/fxfa/parser/cxfa_conformance.h b/xfa/fxfa/parser/cxfa_conformance.h
index 11a72e7..829bb1c 100644
--- a/xfa/fxfa/parser/cxfa_conformance.h
+++ b/xfa/fxfa/parser/cxfa_conformance.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Conformance : public CXFA_Node {
+class CXFA_Conformance final : public CXFA_Node {
public:
CXFA_Conformance(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Conformance() override;
diff --git a/xfa/fxfa/parser/cxfa_connect.h b/xfa/fxfa/parser/cxfa_connect.h
index ac91577..3d616ce 100644
--- a/xfa/fxfa/parser/cxfa_connect.h
+++ b/xfa/fxfa/parser/cxfa_connect.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Connect : public CXFA_Node {
+class CXFA_Connect final : public CXFA_Node {
public:
CXFA_Connect(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Connect() override;
diff --git a/xfa/fxfa/parser/cxfa_connectionset.h b/xfa/fxfa/parser/cxfa_connectionset.h
index 59316f7..74238e0 100644
--- a/xfa/fxfa/parser/cxfa_connectionset.h
+++ b/xfa/fxfa/parser/cxfa_connectionset.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_ConnectionSet : public CXFA_Node {
+class CXFA_ConnectionSet final : public CXFA_Node {
public:
CXFA_ConnectionSet(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_ConnectionSet() override;
diff --git a/xfa/fxfa/parser/cxfa_connectstring.h b/xfa/fxfa/parser/cxfa_connectstring.h
index 6c3a0b0..88dd7bc 100644
--- a/xfa/fxfa/parser/cxfa_connectstring.h
+++ b/xfa/fxfa/parser/cxfa_connectstring.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_ConnectString : public CXFA_Node {
+class CXFA_ConnectString final : public CXFA_Node {
public:
CXFA_ConnectString(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_ConnectString() override;
diff --git a/xfa/fxfa/parser/cxfa_contentarea.h b/xfa/fxfa/parser/cxfa_contentarea.h
index 3c5ff60..43f6868 100644
--- a/xfa/fxfa/parser/cxfa_contentarea.h
+++ b/xfa/fxfa/parser/cxfa_contentarea.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_ContentArea : public CXFA_Node {
+class CXFA_ContentArea final : public CXFA_Node {
public:
CXFA_ContentArea(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_ContentArea() override;
diff --git a/xfa/fxfa/parser/cxfa_contentcopy.h b/xfa/fxfa/parser/cxfa_contentcopy.h
index d394c74..5b32beb 100644
--- a/xfa/fxfa/parser/cxfa_contentcopy.h
+++ b/xfa/fxfa/parser/cxfa_contentcopy.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_ContentCopy : public CXFA_Node {
+class CXFA_ContentCopy final : public CXFA_Node {
public:
CXFA_ContentCopy(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_ContentCopy() override;
diff --git a/xfa/fxfa/parser/cxfa_copies.h b/xfa/fxfa/parser/cxfa_copies.h
index 1ecd616..46497f9 100644
--- a/xfa/fxfa/parser/cxfa_copies.h
+++ b/xfa/fxfa/parser/cxfa_copies.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Copies : public CXFA_Node {
+class CXFA_Copies final : public CXFA_Node {
public:
CXFA_Copies(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Copies() override;
diff --git a/xfa/fxfa/parser/cxfa_corner.h b/xfa/fxfa/parser/cxfa_corner.h
index 1042729..7dcaf32 100644
--- a/xfa/fxfa/parser/cxfa_corner.h
+++ b/xfa/fxfa/parser/cxfa_corner.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_stroke.h"
-class CXFA_Corner : public CXFA_Stroke {
+class CXFA_Corner final : public CXFA_Stroke {
public:
CXFA_Corner(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Corner() override;
diff --git a/xfa/fxfa/parser/cxfa_creator.h b/xfa/fxfa/parser/cxfa_creator.h
index c046883..437fab5 100644
--- a/xfa/fxfa/parser/cxfa_creator.h
+++ b/xfa/fxfa/parser/cxfa_creator.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Creator : public CXFA_Node {
+class CXFA_Creator final : public CXFA_Node {
public:
CXFA_Creator(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Creator() override;
diff --git a/xfa/fxfa/parser/cxfa_currencysymbol.h b/xfa/fxfa/parser/cxfa_currencysymbol.h
index 271f7fc..3d7b5bd 100644
--- a/xfa/fxfa/parser/cxfa_currencysymbol.h
+++ b/xfa/fxfa/parser/cxfa_currencysymbol.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_CurrencySymbol : public CXFA_Node {
+class CXFA_CurrencySymbol final : public CXFA_Node {
public:
CXFA_CurrencySymbol(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_CurrencySymbol() override;
diff --git a/xfa/fxfa/parser/cxfa_currencysymbols.h b/xfa/fxfa/parser/cxfa_currencysymbols.h
index acd3f2a..2ce27cf 100644
--- a/xfa/fxfa/parser/cxfa_currencysymbols.h
+++ b/xfa/fxfa/parser/cxfa_currencysymbols.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_CurrencySymbols : public CXFA_Node {
+class CXFA_CurrencySymbols final : public CXFA_Node {
public:
CXFA_CurrencySymbols(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_CurrencySymbols() override;
diff --git a/xfa/fxfa/parser/cxfa_currentpage.h b/xfa/fxfa/parser/cxfa_currentpage.h
index d526b4a..5bba6a0 100644
--- a/xfa/fxfa/parser/cxfa_currentpage.h
+++ b/xfa/fxfa/parser/cxfa_currentpage.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_CurrentPage : public CXFA_Node {
+class CXFA_CurrentPage final : public CXFA_Node {
public:
CXFA_CurrentPage(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_CurrentPage() override;
diff --git a/xfa/fxfa/parser/cxfa_data.h b/xfa/fxfa/parser/cxfa_data.h
index cb30f61..44cf40d 100644
--- a/xfa/fxfa/parser/cxfa_data.h
+++ b/xfa/fxfa/parser/cxfa_data.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Data : public CXFA_Node {
+class CXFA_Data final : public CXFA_Node {
public:
CXFA_Data(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Data() override;
diff --git a/xfa/fxfa/parser/cxfa_datagroup.h b/xfa/fxfa/parser/cxfa_datagroup.h
index 649b096..5a61704 100644
--- a/xfa/fxfa/parser/cxfa_datagroup.h
+++ b/xfa/fxfa/parser/cxfa_datagroup.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_DataGroup : public CXFA_Node {
+class CXFA_DataGroup final : public CXFA_Node {
public:
CXFA_DataGroup(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_DataGroup() override;
diff --git a/xfa/fxfa/parser/cxfa_datamodel.h b/xfa/fxfa/parser/cxfa_datamodel.h
index f414ea3..8a1bd42 100644
--- a/xfa/fxfa/parser/cxfa_datamodel.h
+++ b/xfa/fxfa/parser/cxfa_datamodel.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_DataModel : public CXFA_Node {
+class CXFA_DataModel final : public CXFA_Node {
public:
CXFA_DataModel(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_DataModel() override;
diff --git a/xfa/fxfa/parser/cxfa_datavalue.h b/xfa/fxfa/parser/cxfa_datavalue.h
index 8170aba..ee2c621 100644
--- a/xfa/fxfa/parser/cxfa_datavalue.h
+++ b/xfa/fxfa/parser/cxfa_datavalue.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_DataValue : public CXFA_Node {
+class CXFA_DataValue final : public CXFA_Node {
public:
CXFA_DataValue(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_DataValue() override;
diff --git a/xfa/fxfa/parser/cxfa_date.h b/xfa/fxfa/parser/cxfa_date.h
index e5ebb25..3fb7ba7 100644
--- a/xfa/fxfa/parser/cxfa_date.h
+++ b/xfa/fxfa/parser/cxfa_date.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Date : public CXFA_Node {
+class CXFA_Date final : public CXFA_Node {
public:
CXFA_Date(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Date() override;
diff --git a/xfa/fxfa/parser/cxfa_datepattern.h b/xfa/fxfa/parser/cxfa_datepattern.h
index b661478..e67a61f 100644
--- a/xfa/fxfa/parser/cxfa_datepattern.h
+++ b/xfa/fxfa/parser/cxfa_datepattern.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_DatePattern : public CXFA_Node {
+class CXFA_DatePattern final : public CXFA_Node {
public:
CXFA_DatePattern(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_DatePattern() override;
diff --git a/xfa/fxfa/parser/cxfa_datepatterns.h b/xfa/fxfa/parser/cxfa_datepatterns.h
index dfc55d0..6c2dca4 100644
--- a/xfa/fxfa/parser/cxfa_datepatterns.h
+++ b/xfa/fxfa/parser/cxfa_datepatterns.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_DatePatterns : public CXFA_Node {
+class CXFA_DatePatterns final : public CXFA_Node {
public:
CXFA_DatePatterns(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_DatePatterns() override;
diff --git a/xfa/fxfa/parser/cxfa_datetime.h b/xfa/fxfa/parser/cxfa_datetime.h
index f5cd6f6..ca71daf 100644
--- a/xfa/fxfa/parser/cxfa_datetime.h
+++ b/xfa/fxfa/parser/cxfa_datetime.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_DateTime : public CXFA_Node {
+class CXFA_DateTime final : public CXFA_Node {
public:
CXFA_DateTime(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_DateTime() override;
diff --git a/xfa/fxfa/parser/cxfa_datetimeedit.h b/xfa/fxfa/parser/cxfa_datetimeedit.h
index 662a1ef..de76e2a 100644
--- a/xfa/fxfa/parser/cxfa_datetimeedit.h
+++ b/xfa/fxfa/parser/cxfa_datetimeedit.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_DateTimeEdit : public CXFA_Node {
+class CXFA_DateTimeEdit final : public CXFA_Node {
public:
CXFA_DateTimeEdit(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_DateTimeEdit() override;
diff --git a/xfa/fxfa/parser/cxfa_datetimesymbols.h b/xfa/fxfa/parser/cxfa_datetimesymbols.h
index e2296d6..cfbe069 100644
--- a/xfa/fxfa/parser/cxfa_datetimesymbols.h
+++ b/xfa/fxfa/parser/cxfa_datetimesymbols.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_DateTimeSymbols : public CXFA_Node {
+class CXFA_DateTimeSymbols final : public CXFA_Node {
public:
CXFA_DateTimeSymbols(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_DateTimeSymbols() override;
diff --git a/xfa/fxfa/parser/cxfa_day.h b/xfa/fxfa/parser/cxfa_day.h
index 8d04bf4..6fb2f45 100644
--- a/xfa/fxfa/parser/cxfa_day.h
+++ b/xfa/fxfa/parser/cxfa_day.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Day : public CXFA_Node {
+class CXFA_Day final : public CXFA_Node {
public:
CXFA_Day(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Day() override;
diff --git a/xfa/fxfa/parser/cxfa_daynames.h b/xfa/fxfa/parser/cxfa_daynames.h
index d566e50..229d69c 100644
--- a/xfa/fxfa/parser/cxfa_daynames.h
+++ b/xfa/fxfa/parser/cxfa_daynames.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_DayNames : public CXFA_Node {
+class CXFA_DayNames final : public CXFA_Node {
public:
CXFA_DayNames(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_DayNames() override;
diff --git a/xfa/fxfa/parser/cxfa_debug.h b/xfa/fxfa/parser/cxfa_debug.h
index e2e4ed1..1a254f0 100644
--- a/xfa/fxfa/parser/cxfa_debug.h
+++ b/xfa/fxfa/parser/cxfa_debug.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Debug : public CXFA_Node {
+class CXFA_Debug final : public CXFA_Node {
public:
CXFA_Debug(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Debug() override;
diff --git a/xfa/fxfa/parser/cxfa_decimal.h b/xfa/fxfa/parser/cxfa_decimal.h
index da58896..668f61a 100644
--- a/xfa/fxfa/parser/cxfa_decimal.h
+++ b/xfa/fxfa/parser/cxfa_decimal.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Decimal : public CXFA_Node {
+class CXFA_Decimal final : public CXFA_Node {
public:
CXFA_Decimal(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Decimal() override;
diff --git a/xfa/fxfa/parser/cxfa_defaulttypeface.h b/xfa/fxfa/parser/cxfa_defaulttypeface.h
index 511ed8f..a241bf8 100644
--- a/xfa/fxfa/parser/cxfa_defaulttypeface.h
+++ b/xfa/fxfa/parser/cxfa_defaulttypeface.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_DefaultTypeface : public CXFA_Node {
+class CXFA_DefaultTypeface final : public CXFA_Node {
public:
CXFA_DefaultTypeface(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_DefaultTypeface() override;
diff --git a/xfa/fxfa/parser/cxfa_defaultui.h b/xfa/fxfa/parser/cxfa_defaultui.h
index 5c20370..d09da0b 100644
--- a/xfa/fxfa/parser/cxfa_defaultui.h
+++ b/xfa/fxfa/parser/cxfa_defaultui.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_DefaultUi : public CXFA_Node {
+class CXFA_DefaultUi final : public CXFA_Node {
public:
CXFA_DefaultUi(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_DefaultUi() override;
diff --git a/xfa/fxfa/parser/cxfa_delete.h b/xfa/fxfa/parser/cxfa_delete.h
index 7c6058a..0ea6ab3 100644
--- a/xfa/fxfa/parser/cxfa_delete.h
+++ b/xfa/fxfa/parser/cxfa_delete.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Delete : public CXFA_Node {
+class CXFA_Delete final : public CXFA_Node {
public:
CXFA_Delete(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Delete() override;
diff --git a/xfa/fxfa/parser/cxfa_delta.h b/xfa/fxfa/parser/cxfa_delta.h
index 693287b..40bfa56 100644
--- a/xfa/fxfa/parser/cxfa_delta.h
+++ b/xfa/fxfa/parser/cxfa_delta.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Delta : public CXFA_Node {
+class CXFA_Delta final : public CXFA_Node {
public:
CXFA_Delta(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Delta() override;
diff --git a/xfa/fxfa/parser/cxfa_desc.h b/xfa/fxfa/parser/cxfa_desc.h
index 1811c63..11baa90 100644
--- a/xfa/fxfa/parser/cxfa_desc.h
+++ b/xfa/fxfa/parser/cxfa_desc.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Desc : public CXFA_Node {
+class CXFA_Desc final : public CXFA_Node {
public:
CXFA_Desc(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Desc() override;
diff --git a/xfa/fxfa/parser/cxfa_destination.h b/xfa/fxfa/parser/cxfa_destination.h
index d9fc553..d31434f 100644
--- a/xfa/fxfa/parser/cxfa_destination.h
+++ b/xfa/fxfa/parser/cxfa_destination.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Destination : public CXFA_Node {
+class CXFA_Destination final : public CXFA_Node {
public:
CXFA_Destination(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Destination() override;
diff --git a/xfa/fxfa/parser/cxfa_digestmethod.h b/xfa/fxfa/parser/cxfa_digestmethod.h
index 4ac22bb..777f46a 100644
--- a/xfa/fxfa/parser/cxfa_digestmethod.h
+++ b/xfa/fxfa/parser/cxfa_digestmethod.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_DigestMethod : public CXFA_Node {
+class CXFA_DigestMethod final : public CXFA_Node {
public:
CXFA_DigestMethod(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_DigestMethod() override;
diff --git a/xfa/fxfa/parser/cxfa_digestmethods.h b/xfa/fxfa/parser/cxfa_digestmethods.h
index 65d40fb..61dac97 100644
--- a/xfa/fxfa/parser/cxfa_digestmethods.h
+++ b/xfa/fxfa/parser/cxfa_digestmethods.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_DigestMethods : public CXFA_Node {
+class CXFA_DigestMethods final : public CXFA_Node {
public:
CXFA_DigestMethods(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_DigestMethods() override;
diff --git a/xfa/fxfa/parser/cxfa_document.h b/xfa/fxfa/parser/cxfa_document.h
index 590a4cf..0449f06 100644
--- a/xfa/fxfa/parser/cxfa_document.h
+++ b/xfa/fxfa/parser/cxfa_document.h
@@ -54,7 +54,7 @@
class CXFA_Node;
class CXFA_Object;
-class CXFA_Document : public CXFA_NodeOwner {
+class CXFA_Document final : public CXFA_NodeOwner {
public:
explicit CXFA_Document(CXFA_FFNotify* notify);
~CXFA_Document() override;
diff --git a/xfa/fxfa/parser/cxfa_documentassembly.h b/xfa/fxfa/parser/cxfa_documentassembly.h
index c22d4a9..92cde65 100644
--- a/xfa/fxfa/parser/cxfa_documentassembly.h
+++ b/xfa/fxfa/parser/cxfa_documentassembly.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_DocumentAssembly : public CXFA_Node {
+class CXFA_DocumentAssembly final : public CXFA_Node {
public:
CXFA_DocumentAssembly(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_DocumentAssembly() override;
diff --git a/xfa/fxfa/parser/cxfa_draw.h b/xfa/fxfa/parser/cxfa_draw.h
index 603103b..c1b9006 100644
--- a/xfa/fxfa/parser/cxfa_draw.h
+++ b/xfa/fxfa/parser/cxfa_draw.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Draw : public CXFA_Node {
+class CXFA_Draw final : public CXFA_Node {
public:
CXFA_Draw(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Draw() override;
diff --git a/xfa/fxfa/parser/cxfa_driver.h b/xfa/fxfa/parser/cxfa_driver.h
index aee732e..f58e153 100644
--- a/xfa/fxfa/parser/cxfa_driver.h
+++ b/xfa/fxfa/parser/cxfa_driver.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Driver : public CXFA_Node {
+class CXFA_Driver final : public CXFA_Node {
public:
CXFA_Driver(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Driver() override;
diff --git a/xfa/fxfa/parser/cxfa_dsigdata.h b/xfa/fxfa/parser/cxfa_dsigdata.h
index 0cbaeb4..06e691c 100644
--- a/xfa/fxfa/parser/cxfa_dsigdata.h
+++ b/xfa/fxfa/parser/cxfa_dsigdata.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_DSigData : public CXFA_Node {
+class CXFA_DSigData final : public CXFA_Node {
public:
CXFA_DSigData(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_DSigData() override;
diff --git a/xfa/fxfa/parser/cxfa_duplexoption.h b/xfa/fxfa/parser/cxfa_duplexoption.h
index 69034ce..5bf8e50 100644
--- a/xfa/fxfa/parser/cxfa_duplexoption.h
+++ b/xfa/fxfa/parser/cxfa_duplexoption.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_DuplexOption : public CXFA_Node {
+class CXFA_DuplexOption final : public CXFA_Node {
public:
CXFA_DuplexOption(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_DuplexOption() override;
diff --git a/xfa/fxfa/parser/cxfa_dynamicrender.h b/xfa/fxfa/parser/cxfa_dynamicrender.h
index f7c54fa..78b75a7 100644
--- a/xfa/fxfa/parser/cxfa_dynamicrender.h
+++ b/xfa/fxfa/parser/cxfa_dynamicrender.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_DynamicRender : public CXFA_Node {
+class CXFA_DynamicRender final : public CXFA_Node {
public:
CXFA_DynamicRender(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_DynamicRender() override;
diff --git a/xfa/fxfa/parser/cxfa_edge.h b/xfa/fxfa/parser/cxfa_edge.h
index 36fee55..79c7f14 100644
--- a/xfa/fxfa/parser/cxfa_edge.h
+++ b/xfa/fxfa/parser/cxfa_edge.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_stroke.h"
-class CXFA_Edge : public CXFA_Stroke {
+class CXFA_Edge final : public CXFA_Stroke {
public:
static constexpr FX_ARGB kDefaultColor = 0xFF000000;
diff --git a/xfa/fxfa/parser/cxfa_effectiveinputpolicy.h b/xfa/fxfa/parser/cxfa_effectiveinputpolicy.h
index 52a60a4..4f4fb8e 100644
--- a/xfa/fxfa/parser/cxfa_effectiveinputpolicy.h
+++ b/xfa/fxfa/parser/cxfa_effectiveinputpolicy.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_EffectiveInputPolicy : public CXFA_Node {
+class CXFA_EffectiveInputPolicy final : public CXFA_Node {
public:
CXFA_EffectiveInputPolicy(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_EffectiveInputPolicy() override;
diff --git a/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.h b/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.h
index b2317d5..9b15a47 100644
--- a/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.h
+++ b/xfa/fxfa/parser/cxfa_effectiveoutputpolicy.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_EffectiveOutputPolicy : public CXFA_Node {
+class CXFA_EffectiveOutputPolicy final : public CXFA_Node {
public:
CXFA_EffectiveOutputPolicy(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_EffectiveOutputPolicy() override;
diff --git a/xfa/fxfa/parser/cxfa_embed.h b/xfa/fxfa/parser/cxfa_embed.h
index d130840..8772b30 100644
--- a/xfa/fxfa/parser/cxfa_embed.h
+++ b/xfa/fxfa/parser/cxfa_embed.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Embed : public CXFA_Node {
+class CXFA_Embed final : public CXFA_Node {
public:
CXFA_Embed(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Embed() override;
diff --git a/xfa/fxfa/parser/cxfa_encoding.h b/xfa/fxfa/parser/cxfa_encoding.h
index ad41b01..b98ea21 100644
--- a/xfa/fxfa/parser/cxfa_encoding.h
+++ b/xfa/fxfa/parser/cxfa_encoding.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Encoding : public CXFA_Node {
+class CXFA_Encoding final : public CXFA_Node {
public:
CXFA_Encoding(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Encoding() override;
diff --git a/xfa/fxfa/parser/cxfa_encodings.h b/xfa/fxfa/parser/cxfa_encodings.h
index d3876de..3e8de09 100644
--- a/xfa/fxfa/parser/cxfa_encodings.h
+++ b/xfa/fxfa/parser/cxfa_encodings.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Encodings : public CXFA_Node {
+class CXFA_Encodings final : public CXFA_Node {
public:
CXFA_Encodings(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Encodings() override;
diff --git a/xfa/fxfa/parser/cxfa_encrypt.h b/xfa/fxfa/parser/cxfa_encrypt.h
index 4968db6..afb74b4 100644
--- a/xfa/fxfa/parser/cxfa_encrypt.h
+++ b/xfa/fxfa/parser/cxfa_encrypt.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Encrypt : public CXFA_Node {
+class CXFA_Encrypt final : public CXFA_Node {
public:
CXFA_Encrypt(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Encrypt() override;
diff --git a/xfa/fxfa/parser/cxfa_encryption.h b/xfa/fxfa/parser/cxfa_encryption.h
index f2028ee..1bcf48f 100644
--- a/xfa/fxfa/parser/cxfa_encryption.h
+++ b/xfa/fxfa/parser/cxfa_encryption.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Encryption : public CXFA_Node {
+class CXFA_Encryption final : public CXFA_Node {
public:
CXFA_Encryption(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Encryption() override;
diff --git a/xfa/fxfa/parser/cxfa_encryptionlevel.h b/xfa/fxfa/parser/cxfa_encryptionlevel.h
index 1bb80ce..faf300b 100644
--- a/xfa/fxfa/parser/cxfa_encryptionlevel.h
+++ b/xfa/fxfa/parser/cxfa_encryptionlevel.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_EncryptionLevel : public CXFA_Node {
+class CXFA_EncryptionLevel final : public CXFA_Node {
public:
CXFA_EncryptionLevel(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_EncryptionLevel() override;
diff --git a/xfa/fxfa/parser/cxfa_encryptionmethod.h b/xfa/fxfa/parser/cxfa_encryptionmethod.h
index 2c86001..cae708f 100644
--- a/xfa/fxfa/parser/cxfa_encryptionmethod.h
+++ b/xfa/fxfa/parser/cxfa_encryptionmethod.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_EncryptionMethod : public CXFA_Node {
+class CXFA_EncryptionMethod final : public CXFA_Node {
public:
CXFA_EncryptionMethod(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_EncryptionMethod() override;
diff --git a/xfa/fxfa/parser/cxfa_encryptionmethods.h b/xfa/fxfa/parser/cxfa_encryptionmethods.h
index 9fcc0b5..825ee9f 100644
--- a/xfa/fxfa/parser/cxfa_encryptionmethods.h
+++ b/xfa/fxfa/parser/cxfa_encryptionmethods.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_EncryptionMethods : public CXFA_Node {
+class CXFA_EncryptionMethods final : public CXFA_Node {
public:
CXFA_EncryptionMethods(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_EncryptionMethods() override;
diff --git a/xfa/fxfa/parser/cxfa_enforce.h b/xfa/fxfa/parser/cxfa_enforce.h
index 3ccd8b8..ec7d745 100644
--- a/xfa/fxfa/parser/cxfa_enforce.h
+++ b/xfa/fxfa/parser/cxfa_enforce.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Enforce : public CXFA_Node {
+class CXFA_Enforce final : public CXFA_Node {
public:
CXFA_Enforce(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Enforce() override;
diff --git a/xfa/fxfa/parser/cxfa_equate.h b/xfa/fxfa/parser/cxfa_equate.h
index 0a28182..fc1f8d6 100644
--- a/xfa/fxfa/parser/cxfa_equate.h
+++ b/xfa/fxfa/parser/cxfa_equate.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Equate : public CXFA_Node {
+class CXFA_Equate final : public CXFA_Node {
public:
CXFA_Equate(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Equate() override;
diff --git a/xfa/fxfa/parser/cxfa_equaterange.h b/xfa/fxfa/parser/cxfa_equaterange.h
index 86c86b1..56f05e1 100644
--- a/xfa/fxfa/parser/cxfa_equaterange.h
+++ b/xfa/fxfa/parser/cxfa_equaterange.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_EquateRange : public CXFA_Node {
+class CXFA_EquateRange final : public CXFA_Node {
public:
CXFA_EquateRange(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_EquateRange() override;
diff --git a/xfa/fxfa/parser/cxfa_era.h b/xfa/fxfa/parser/cxfa_era.h
index a46a574..e0ecdf7 100644
--- a/xfa/fxfa/parser/cxfa_era.h
+++ b/xfa/fxfa/parser/cxfa_era.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Era : public CXFA_Node {
+class CXFA_Era final : public CXFA_Node {
public:
CXFA_Era(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Era() override;
diff --git a/xfa/fxfa/parser/cxfa_eranames.h b/xfa/fxfa/parser/cxfa_eranames.h
index 4c8f788..468b658 100644
--- a/xfa/fxfa/parser/cxfa_eranames.h
+++ b/xfa/fxfa/parser/cxfa_eranames.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_EraNames : public CXFA_Node {
+class CXFA_EraNames final : public CXFA_Node {
public:
CXFA_EraNames(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_EraNames() override;
diff --git a/xfa/fxfa/parser/cxfa_event.h b/xfa/fxfa/parser/cxfa_event.h
index 6902b52..e7f5e1a 100644
--- a/xfa/fxfa/parser/cxfa_event.h
+++ b/xfa/fxfa/parser/cxfa_event.h
@@ -12,7 +12,7 @@
class CXFA_Script;
class CXFA_Submit;
-class CXFA_Event : public CXFA_Node {
+class CXFA_Event final : public CXFA_Node {
public:
CXFA_Event(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Event() override;
diff --git a/xfa/fxfa/parser/cxfa_exclgroup.h b/xfa/fxfa/parser/cxfa_exclgroup.h
index 5a3c8a3..390bb4a 100644
--- a/xfa/fxfa/parser/cxfa_exclgroup.h
+++ b/xfa/fxfa/parser/cxfa_exclgroup.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_ExclGroup : public CXFA_Node {
+class CXFA_ExclGroup final : public CXFA_Node {
public:
CXFA_ExclGroup(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_ExclGroup() override;
diff --git a/xfa/fxfa/parser/cxfa_exclude.h b/xfa/fxfa/parser/cxfa_exclude.h
index 0f78707..71f08fd 100644
--- a/xfa/fxfa/parser/cxfa_exclude.h
+++ b/xfa/fxfa/parser/cxfa_exclude.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Exclude : public CXFA_Node {
+class CXFA_Exclude final : public CXFA_Node {
public:
CXFA_Exclude(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Exclude() override;
diff --git a/xfa/fxfa/parser/cxfa_excludens.h b/xfa/fxfa/parser/cxfa_excludens.h
index c5cb548..9ce2e69 100644
--- a/xfa/fxfa/parser/cxfa_excludens.h
+++ b/xfa/fxfa/parser/cxfa_excludens.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_ExcludeNS : public CXFA_Node {
+class CXFA_ExcludeNS final : public CXFA_Node {
public:
CXFA_ExcludeNS(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_ExcludeNS() override;
diff --git a/xfa/fxfa/parser/cxfa_exdata.h b/xfa/fxfa/parser/cxfa_exdata.h
index 8eb3caf..8adf028 100644
--- a/xfa/fxfa/parser/cxfa_exdata.h
+++ b/xfa/fxfa/parser/cxfa_exdata.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_ExData : public CXFA_Node {
+class CXFA_ExData final : public CXFA_Node {
public:
CXFA_ExData(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_ExData() override;
diff --git a/xfa/fxfa/parser/cxfa_execute.h b/xfa/fxfa/parser/cxfa_execute.h
index 2d9f158..63fd18b 100644
--- a/xfa/fxfa/parser/cxfa_execute.h
+++ b/xfa/fxfa/parser/cxfa_execute.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Execute : public CXFA_Node {
+class CXFA_Execute final : public CXFA_Node {
public:
CXFA_Execute(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Execute() override;
diff --git a/xfa/fxfa/parser/cxfa_exobject.h b/xfa/fxfa/parser/cxfa_exobject.h
index b4d7de9..79ffdb9 100644
--- a/xfa/fxfa/parser/cxfa_exobject.h
+++ b/xfa/fxfa/parser/cxfa_exobject.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_ExObject : public CXFA_Node {
+class CXFA_ExObject final : public CXFA_Node {
public:
CXFA_ExObject(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_ExObject() override;
diff --git a/xfa/fxfa/parser/cxfa_extras.h b/xfa/fxfa/parser/cxfa_extras.h
index 3b3c6b4..82108d0 100644
--- a/xfa/fxfa/parser/cxfa_extras.h
+++ b/xfa/fxfa/parser/cxfa_extras.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Extras : public CXFA_Node {
+class CXFA_Extras final : public CXFA_Node {
public:
CXFA_Extras(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Extras() override;
diff --git a/xfa/fxfa/parser/cxfa_field.h b/xfa/fxfa/parser/cxfa_field.h
index b2f7a05..e29cdd7 100644
--- a/xfa/fxfa/parser/cxfa_field.h
+++ b/xfa/fxfa/parser/cxfa_field.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Field : public CXFA_Node {
+class CXFA_Field final : public CXFA_Node {
public:
CXFA_Field(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Field() override;
diff --git a/xfa/fxfa/parser/cxfa_fill.h b/xfa/fxfa/parser/cxfa_fill.h
index 1ffdcdf..05fede9 100644
--- a/xfa/fxfa/parser/cxfa_fill.h
+++ b/xfa/fxfa/parser/cxfa_fill.h
@@ -18,7 +18,7 @@
class CXFA_Radial;
class CXFA_Stipple;
-class CXFA_Fill : public CXFA_Node {
+class CXFA_Fill final : public CXFA_Node {
public:
CXFA_Fill(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Fill() override;
diff --git a/xfa/fxfa/parser/cxfa_filter.h b/xfa/fxfa/parser/cxfa_filter.h
index 2ac069a..033d97c 100644
--- a/xfa/fxfa/parser/cxfa_filter.h
+++ b/xfa/fxfa/parser/cxfa_filter.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Filter : public CXFA_Node {
+class CXFA_Filter final : public CXFA_Node {
public:
CXFA_Filter(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Filter() override;
diff --git a/xfa/fxfa/parser/cxfa_fliplabel.h b/xfa/fxfa/parser/cxfa_fliplabel.h
index dac0564..e3f8165 100644
--- a/xfa/fxfa/parser/cxfa_fliplabel.h
+++ b/xfa/fxfa/parser/cxfa_fliplabel.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_FlipLabel : public CXFA_Node {
+class CXFA_FlipLabel final : public CXFA_Node {
public:
CXFA_FlipLabel(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_FlipLabel() override;
diff --git a/xfa/fxfa/parser/cxfa_float.h b/xfa/fxfa/parser/cxfa_float.h
index f93b3dd..a3fc1ae 100644
--- a/xfa/fxfa/parser/cxfa_float.h
+++ b/xfa/fxfa/parser/cxfa_float.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Float : public CXFA_Node {
+class CXFA_Float final : public CXFA_Node {
public:
CXFA_Float(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Float() override;
diff --git a/xfa/fxfa/parser/cxfa_font.h b/xfa/fxfa/parser/cxfa_font.h
index 346be76..fb80a32 100644
--- a/xfa/fxfa/parser/cxfa_font.h
+++ b/xfa/fxfa/parser/cxfa_font.h
@@ -10,7 +10,7 @@
#include "core/fxge/fx_dib.h"
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Font : public CXFA_Node {
+class CXFA_Font final : public CXFA_Node {
public:
CXFA_Font(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Font() override;
diff --git a/xfa/fxfa/parser/cxfa_fontinfo.h b/xfa/fxfa/parser/cxfa_fontinfo.h
index f9facd8..b798c55 100644
--- a/xfa/fxfa/parser/cxfa_fontinfo.h
+++ b/xfa/fxfa/parser/cxfa_fontinfo.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_FontInfo : public CXFA_Node {
+class CXFA_FontInfo final : public CXFA_Node {
public:
CXFA_FontInfo(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_FontInfo() override;
diff --git a/xfa/fxfa/parser/cxfa_form.h b/xfa/fxfa/parser/cxfa_form.h
index 39d1d90..a0e2f32 100644
--- a/xfa/fxfa/parser/cxfa_form.h
+++ b/xfa/fxfa/parser/cxfa_form.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Form : public CXFA_Node {
+class CXFA_Form final : public CXFA_Node {
public:
CXFA_Form(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Form() override;
diff --git a/xfa/fxfa/parser/cxfa_format.h b/xfa/fxfa/parser/cxfa_format.h
index 3e31716..7e74a1c 100644
--- a/xfa/fxfa/parser/cxfa_format.h
+++ b/xfa/fxfa/parser/cxfa_format.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Format : public CXFA_Node {
+class CXFA_Format final : public CXFA_Node {
public:
CXFA_Format(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Format() override;
diff --git a/xfa/fxfa/parser/cxfa_formfieldfilling.h b/xfa/fxfa/parser/cxfa_formfieldfilling.h
index 77f1b8f..f9e7447 100644
--- a/xfa/fxfa/parser/cxfa_formfieldfilling.h
+++ b/xfa/fxfa/parser/cxfa_formfieldfilling.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_FormFieldFilling : public CXFA_Node {
+class CXFA_FormFieldFilling final : public CXFA_Node {
public:
CXFA_FormFieldFilling(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_FormFieldFilling() override;
diff --git a/xfa/fxfa/parser/cxfa_groupparent.h b/xfa/fxfa/parser/cxfa_groupparent.h
index 7de296c..eb63a6a 100644
--- a/xfa/fxfa/parser/cxfa_groupparent.h
+++ b/xfa/fxfa/parser/cxfa_groupparent.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_GroupParent : public CXFA_Node {
+class CXFA_GroupParent final : public CXFA_Node {
public:
CXFA_GroupParent(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_GroupParent() override;
diff --git a/xfa/fxfa/parser/cxfa_handler.h b/xfa/fxfa/parser/cxfa_handler.h
index e575c0b..1ab1c4d 100644
--- a/xfa/fxfa/parser/cxfa_handler.h
+++ b/xfa/fxfa/parser/cxfa_handler.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Handler : public CXFA_Node {
+class CXFA_Handler final : public CXFA_Node {
public:
CXFA_Handler(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Handler() override;
diff --git a/xfa/fxfa/parser/cxfa_hyphenation.h b/xfa/fxfa/parser/cxfa_hyphenation.h
index 2601c5f..77b49e9 100644
--- a/xfa/fxfa/parser/cxfa_hyphenation.h
+++ b/xfa/fxfa/parser/cxfa_hyphenation.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Hyphenation : public CXFA_Node {
+class CXFA_Hyphenation final : public CXFA_Node {
public:
CXFA_Hyphenation(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Hyphenation() override;
diff --git a/xfa/fxfa/parser/cxfa_ifempty.h b/xfa/fxfa/parser/cxfa_ifempty.h
index 3c3c1b4..401faa7 100644
--- a/xfa/fxfa/parser/cxfa_ifempty.h
+++ b/xfa/fxfa/parser/cxfa_ifempty.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_IfEmpty : public CXFA_Node {
+class CXFA_IfEmpty final : public CXFA_Node {
public:
CXFA_IfEmpty(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_IfEmpty() override;
diff --git a/xfa/fxfa/parser/cxfa_image.h b/xfa/fxfa/parser/cxfa_image.h
index 3670863..01f12eb 100644
--- a/xfa/fxfa/parser/cxfa_image.h
+++ b/xfa/fxfa/parser/cxfa_image.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Image : public CXFA_Node {
+class CXFA_Image final : public CXFA_Node {
public:
CXFA_Image(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Image() override;
diff --git a/xfa/fxfa/parser/cxfa_imageedit.h b/xfa/fxfa/parser/cxfa_imageedit.h
index 0a950d8..884c219 100644
--- a/xfa/fxfa/parser/cxfa_imageedit.h
+++ b/xfa/fxfa/parser/cxfa_imageedit.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_ImageEdit : public CXFA_Node {
+class CXFA_ImageEdit final : public CXFA_Node {
public:
CXFA_ImageEdit(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_ImageEdit() override;
diff --git a/xfa/fxfa/parser/cxfa_includexdpcontent.h b/xfa/fxfa/parser/cxfa_includexdpcontent.h
index 309a7c6..15c5bbe 100644
--- a/xfa/fxfa/parser/cxfa_includexdpcontent.h
+++ b/xfa/fxfa/parser/cxfa_includexdpcontent.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_IncludeXDPContent : public CXFA_Node {
+class CXFA_IncludeXDPContent final : public CXFA_Node {
public:
CXFA_IncludeXDPContent(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_IncludeXDPContent() override;
diff --git a/xfa/fxfa/parser/cxfa_incrementalload.h b/xfa/fxfa/parser/cxfa_incrementalload.h
index 9ea8f29..253a2ae 100644
--- a/xfa/fxfa/parser/cxfa_incrementalload.h
+++ b/xfa/fxfa/parser/cxfa_incrementalload.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_IncrementalLoad : public CXFA_Node {
+class CXFA_IncrementalLoad final : public CXFA_Node {
public:
CXFA_IncrementalLoad(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_IncrementalLoad() override;
diff --git a/xfa/fxfa/parser/cxfa_incrementalmerge.h b/xfa/fxfa/parser/cxfa_incrementalmerge.h
index c8e6554..4ec65af 100644
--- a/xfa/fxfa/parser/cxfa_incrementalmerge.h
+++ b/xfa/fxfa/parser/cxfa_incrementalmerge.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_IncrementalMerge : public CXFA_Node {
+class CXFA_IncrementalMerge final : public CXFA_Node {
public:
CXFA_IncrementalMerge(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_IncrementalMerge() override;
diff --git a/xfa/fxfa/parser/cxfa_insert.h b/xfa/fxfa/parser/cxfa_insert.h
index 92579c3..e157a82 100644
--- a/xfa/fxfa/parser/cxfa_insert.h
+++ b/xfa/fxfa/parser/cxfa_insert.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Insert : public CXFA_Node {
+class CXFA_Insert final : public CXFA_Node {
public:
CXFA_Insert(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Insert() override;
diff --git a/xfa/fxfa/parser/cxfa_instancemanager.h b/xfa/fxfa/parser/cxfa_instancemanager.h
index 1910b92..3ace0e9 100644
--- a/xfa/fxfa/parser/cxfa_instancemanager.h
+++ b/xfa/fxfa/parser/cxfa_instancemanager.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_InstanceManager : public CXFA_Node {
+class CXFA_InstanceManager final : public CXFA_Node {
public:
CXFA_InstanceManager(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_InstanceManager() override;
diff --git a/xfa/fxfa/parser/cxfa_integer.h b/xfa/fxfa/parser/cxfa_integer.h
index 2e5631d..ac94133 100644
--- a/xfa/fxfa/parser/cxfa_integer.h
+++ b/xfa/fxfa/parser/cxfa_integer.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Integer : public CXFA_Node {
+class CXFA_Integer final : public CXFA_Node {
public:
CXFA_Integer(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Integer() override;
diff --git a/xfa/fxfa/parser/cxfa_interactive.h b/xfa/fxfa/parser/cxfa_interactive.h
index 69f2918..12db0bf 100644
--- a/xfa/fxfa/parser/cxfa_interactive.h
+++ b/xfa/fxfa/parser/cxfa_interactive.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Interactive : public CXFA_Node {
+class CXFA_Interactive final : public CXFA_Node {
public:
CXFA_Interactive(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Interactive() override;
diff --git a/xfa/fxfa/parser/cxfa_issuers.h b/xfa/fxfa/parser/cxfa_issuers.h
index 6b94f15..11ba8b4 100644
--- a/xfa/fxfa/parser/cxfa_issuers.h
+++ b/xfa/fxfa/parser/cxfa_issuers.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Issuers : public CXFA_Node {
+class CXFA_Issuers final : public CXFA_Node {
public:
CXFA_Issuers(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Issuers() override;
diff --git a/xfa/fxfa/parser/cxfa_items.h b/xfa/fxfa/parser/cxfa_items.h
index 586fabd..609b028 100644
--- a/xfa/fxfa/parser/cxfa_items.h
+++ b/xfa/fxfa/parser/cxfa_items.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Items : public CXFA_Node {
+class CXFA_Items final : public CXFA_Node {
public:
CXFA_Items(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Items() override;
diff --git a/xfa/fxfa/parser/cxfa_jog.h b/xfa/fxfa/parser/cxfa_jog.h
index 266ccd1..a40a488 100644
--- a/xfa/fxfa/parser/cxfa_jog.h
+++ b/xfa/fxfa/parser/cxfa_jog.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Jog : public CXFA_Node {
+class CXFA_Jog final : public CXFA_Node {
public:
CXFA_Jog(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Jog() override;
diff --git a/xfa/fxfa/parser/cxfa_keep.h b/xfa/fxfa/parser/cxfa_keep.h
index 7d53f96..0d4a2e0 100644
--- a/xfa/fxfa/parser/cxfa_keep.h
+++ b/xfa/fxfa/parser/cxfa_keep.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Keep : public CXFA_Node {
+class CXFA_Keep final : public CXFA_Node {
public:
CXFA_Keep(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Keep() override;
diff --git a/xfa/fxfa/parser/cxfa_keyusage.h b/xfa/fxfa/parser/cxfa_keyusage.h
index b258074..3409e3f 100644
--- a/xfa/fxfa/parser/cxfa_keyusage.h
+++ b/xfa/fxfa/parser/cxfa_keyusage.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_KeyUsage : public CXFA_Node {
+class CXFA_KeyUsage final : public CXFA_Node {
public:
CXFA_KeyUsage(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_KeyUsage() override;
diff --git a/xfa/fxfa/parser/cxfa_labelprinter.h b/xfa/fxfa/parser/cxfa_labelprinter.h
index e3f5d3b..74a5e82 100644
--- a/xfa/fxfa/parser/cxfa_labelprinter.h
+++ b/xfa/fxfa/parser/cxfa_labelprinter.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_LabelPrinter : public CXFA_Node {
+class CXFA_LabelPrinter final : public CXFA_Node {
public:
CXFA_LabelPrinter(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_LabelPrinter() override;
diff --git a/xfa/fxfa/parser/cxfa_layout.h b/xfa/fxfa/parser/cxfa_layout.h
index 93e069e..ad25efa 100644
--- a/xfa/fxfa/parser/cxfa_layout.h
+++ b/xfa/fxfa/parser/cxfa_layout.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Layout : public CXFA_Node {
+class CXFA_Layout final : public CXFA_Node {
public:
CXFA_Layout(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Layout() override;
diff --git a/xfa/fxfa/parser/cxfa_level.h b/xfa/fxfa/parser/cxfa_level.h
index abdd048..8cc03dc 100644
--- a/xfa/fxfa/parser/cxfa_level.h
+++ b/xfa/fxfa/parser/cxfa_level.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Level : public CXFA_Node {
+class CXFA_Level final : public CXFA_Node {
public:
CXFA_Level(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Level() override;
diff --git a/xfa/fxfa/parser/cxfa_line.h b/xfa/fxfa/parser/cxfa_line.h
index 18faacd..98a132d 100644
--- a/xfa/fxfa/parser/cxfa_line.h
+++ b/xfa/fxfa/parser/cxfa_line.h
@@ -11,7 +11,7 @@
class CXFA_Edge;
-class CXFA_Line : public CXFA_Node {
+class CXFA_Line final : public CXFA_Node {
public:
CXFA_Line(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Line() override;
diff --git a/xfa/fxfa/parser/cxfa_linear.h b/xfa/fxfa/parser/cxfa_linear.h
index bb55f80..1315f9a 100644
--- a/xfa/fxfa/parser/cxfa_linear.h
+++ b/xfa/fxfa/parser/cxfa_linear.h
@@ -14,7 +14,7 @@
class CXFA_Color;
class CXFA_Graphics;
-class CXFA_Linear : public CXFA_Node {
+class CXFA_Linear final : public CXFA_Node {
public:
static constexpr XFA_AttributeEnum kDefaultType = XFA_AttributeEnum::ToRight;
diff --git a/xfa/fxfa/parser/cxfa_linearized.h b/xfa/fxfa/parser/cxfa_linearized.h
index df7846e..d2fe2d7 100644
--- a/xfa/fxfa/parser/cxfa_linearized.h
+++ b/xfa/fxfa/parser/cxfa_linearized.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Linearized : public CXFA_Node {
+class CXFA_Linearized final : public CXFA_Node {
public:
CXFA_Linearized(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Linearized() override;
diff --git a/xfa/fxfa/parser/cxfa_locale.h b/xfa/fxfa/parser/cxfa_locale.h
index 3a7e83d..67bee33 100644
--- a/xfa/fxfa/parser/cxfa_locale.h
+++ b/xfa/fxfa/parser/cxfa_locale.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Locale : public CXFA_Node {
+class CXFA_Locale final : public CXFA_Node {
public:
CXFA_Locale(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Locale() override;
diff --git a/xfa/fxfa/parser/cxfa_localeset.h b/xfa/fxfa/parser/cxfa_localeset.h
index 1d65ad1..dc6521a 100644
--- a/xfa/fxfa/parser/cxfa_localeset.h
+++ b/xfa/fxfa/parser/cxfa_localeset.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_LocaleSet : public CXFA_Node {
+class CXFA_LocaleSet final : public CXFA_Node {
public:
CXFA_LocaleSet(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_LocaleSet() override;
diff --git a/xfa/fxfa/parser/cxfa_lockdocument.h b/xfa/fxfa/parser/cxfa_lockdocument.h
index 025031a..1328d34 100644
--- a/xfa/fxfa/parser/cxfa_lockdocument.h
+++ b/xfa/fxfa/parser/cxfa_lockdocument.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_LockDocument : public CXFA_Node {
+class CXFA_LockDocument final : public CXFA_Node {
public:
CXFA_LockDocument(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_LockDocument() override;
diff --git a/xfa/fxfa/parser/cxfa_log.h b/xfa/fxfa/parser/cxfa_log.h
index 17fd290..27173cd 100644
--- a/xfa/fxfa/parser/cxfa_log.h
+++ b/xfa/fxfa/parser/cxfa_log.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Log : public CXFA_Node {
+class CXFA_Log final : public CXFA_Node {
public:
CXFA_Log(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Log() override;
diff --git a/xfa/fxfa/parser/cxfa_manifest.h b/xfa/fxfa/parser/cxfa_manifest.h
index a13cdac..d5ca05f 100644
--- a/xfa/fxfa/parser/cxfa_manifest.h
+++ b/xfa/fxfa/parser/cxfa_manifest.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Manifest : public CXFA_Node {
+class CXFA_Manifest final : public CXFA_Node {
public:
CXFA_Manifest(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Manifest() override;
diff --git a/xfa/fxfa/parser/cxfa_map.h b/xfa/fxfa/parser/cxfa_map.h
index c49568f..f8e0797 100644
--- a/xfa/fxfa/parser/cxfa_map.h
+++ b/xfa/fxfa/parser/cxfa_map.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Map : public CXFA_Node {
+class CXFA_Map final : public CXFA_Node {
public:
CXFA_Map(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Map() override;
diff --git a/xfa/fxfa/parser/cxfa_margin.h b/xfa/fxfa/parser/cxfa_margin.h
index e7f95b6..813bdfe 100644
--- a/xfa/fxfa/parser/cxfa_margin.h
+++ b/xfa/fxfa/parser/cxfa_margin.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Margin : public CXFA_Node {
+class CXFA_Margin final : public CXFA_Node {
public:
CXFA_Margin(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Margin() override;
diff --git a/xfa/fxfa/parser/cxfa_mdp.h b/xfa/fxfa/parser/cxfa_mdp.h
index 0ae626d..79b1480 100644
--- a/xfa/fxfa/parser/cxfa_mdp.h
+++ b/xfa/fxfa/parser/cxfa_mdp.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Mdp : public CXFA_Node {
+class CXFA_Mdp final : public CXFA_Node {
public:
CXFA_Mdp(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Mdp() override;
diff --git a/xfa/fxfa/parser/cxfa_medium.h b/xfa/fxfa/parser/cxfa_medium.h
index b9b9c5d..49be83f 100644
--- a/xfa/fxfa/parser/cxfa_medium.h
+++ b/xfa/fxfa/parser/cxfa_medium.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Medium : public CXFA_Node {
+class CXFA_Medium final : public CXFA_Node {
public:
CXFA_Medium(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Medium() override;
diff --git a/xfa/fxfa/parser/cxfa_mediuminfo.h b/xfa/fxfa/parser/cxfa_mediuminfo.h
index da100ea..65e58df 100644
--- a/xfa/fxfa/parser/cxfa_mediuminfo.h
+++ b/xfa/fxfa/parser/cxfa_mediuminfo.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_MediumInfo : public CXFA_Node {
+class CXFA_MediumInfo final : public CXFA_Node {
public:
CXFA_MediumInfo(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_MediumInfo() override;
diff --git a/xfa/fxfa/parser/cxfa_meridiem.h b/xfa/fxfa/parser/cxfa_meridiem.h
index 30bd4b0..40c956c 100644
--- a/xfa/fxfa/parser/cxfa_meridiem.h
+++ b/xfa/fxfa/parser/cxfa_meridiem.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Meridiem : public CXFA_Node {
+class CXFA_Meridiem final : public CXFA_Node {
public:
CXFA_Meridiem(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Meridiem() override;
diff --git a/xfa/fxfa/parser/cxfa_meridiemnames.h b/xfa/fxfa/parser/cxfa_meridiemnames.h
index 8cade21..00fbbb7 100644
--- a/xfa/fxfa/parser/cxfa_meridiemnames.h
+++ b/xfa/fxfa/parser/cxfa_meridiemnames.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_MeridiemNames : public CXFA_Node {
+class CXFA_MeridiemNames final : public CXFA_Node {
public:
CXFA_MeridiemNames(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_MeridiemNames() override;
diff --git a/xfa/fxfa/parser/cxfa_message.h b/xfa/fxfa/parser/cxfa_message.h
index f172e06..81cb751 100644
--- a/xfa/fxfa/parser/cxfa_message.h
+++ b/xfa/fxfa/parser/cxfa_message.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Message : public CXFA_Node {
+class CXFA_Message final : public CXFA_Node {
public:
CXFA_Message(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Message() override;
diff --git a/xfa/fxfa/parser/cxfa_messaging.h b/xfa/fxfa/parser/cxfa_messaging.h
index 48d16b3..86e16f3 100644
--- a/xfa/fxfa/parser/cxfa_messaging.h
+++ b/xfa/fxfa/parser/cxfa_messaging.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Messaging : public CXFA_Node {
+class CXFA_Messaging final : public CXFA_Node {
public:
CXFA_Messaging(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Messaging() override;
diff --git a/xfa/fxfa/parser/cxfa_mode.h b/xfa/fxfa/parser/cxfa_mode.h
index 1dfd426..46675db 100644
--- a/xfa/fxfa/parser/cxfa_mode.h
+++ b/xfa/fxfa/parser/cxfa_mode.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Mode : public CXFA_Node {
+class CXFA_Mode final : public CXFA_Node {
public:
CXFA_Mode(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Mode() override;
diff --git a/xfa/fxfa/parser/cxfa_modifyannots.h b/xfa/fxfa/parser/cxfa_modifyannots.h
index 4e10921..c92b05b 100644
--- a/xfa/fxfa/parser/cxfa_modifyannots.h
+++ b/xfa/fxfa/parser/cxfa_modifyannots.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_ModifyAnnots : public CXFA_Node {
+class CXFA_ModifyAnnots final : public CXFA_Node {
public:
CXFA_ModifyAnnots(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_ModifyAnnots() override;
diff --git a/xfa/fxfa/parser/cxfa_month.h b/xfa/fxfa/parser/cxfa_month.h
index 69361f5..f63095d 100644
--- a/xfa/fxfa/parser/cxfa_month.h
+++ b/xfa/fxfa/parser/cxfa_month.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Month : public CXFA_Node {
+class CXFA_Month final : public CXFA_Node {
public:
CXFA_Month(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Month() override;
diff --git a/xfa/fxfa/parser/cxfa_monthnames.h b/xfa/fxfa/parser/cxfa_monthnames.h
index f95512b..cf0c331 100644
--- a/xfa/fxfa/parser/cxfa_monthnames.h
+++ b/xfa/fxfa/parser/cxfa_monthnames.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_MonthNames : public CXFA_Node {
+class CXFA_MonthNames final : public CXFA_Node {
public:
CXFA_MonthNames(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_MonthNames() override;
diff --git a/xfa/fxfa/parser/cxfa_msgid.h b/xfa/fxfa/parser/cxfa_msgid.h
index 333085a..4c166d7 100644
--- a/xfa/fxfa/parser/cxfa_msgid.h
+++ b/xfa/fxfa/parser/cxfa_msgid.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_MsgId : public CXFA_Node {
+class CXFA_MsgId final : public CXFA_Node {
public:
CXFA_MsgId(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_MsgId() override;
diff --git a/xfa/fxfa/parser/cxfa_nameattr.h b/xfa/fxfa/parser/cxfa_nameattr.h
index 05514c0..f346bf6 100644
--- a/xfa/fxfa/parser/cxfa_nameattr.h
+++ b/xfa/fxfa/parser/cxfa_nameattr.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_NameAttr : public CXFA_Node {
+class CXFA_NameAttr final : public CXFA_Node {
public:
CXFA_NameAttr(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_NameAttr() override;
diff --git a/xfa/fxfa/parser/cxfa_neverembed.h b/xfa/fxfa/parser/cxfa_neverembed.h
index 11ec928..70f90a3 100644
--- a/xfa/fxfa/parser/cxfa_neverembed.h
+++ b/xfa/fxfa/parser/cxfa_neverembed.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_NeverEmbed : public CXFA_Node {
+class CXFA_NeverEmbed final : public CXFA_Node {
public:
CXFA_NeverEmbed(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_NeverEmbed() override;
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index 7e582c0..7d707d0 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -418,7 +418,7 @@
float m_fWidgetHeight = -1.0f;
};
-class CXFA_TextLayoutData : public CXFA_WidgetLayoutData {
+class CXFA_TextLayoutData final : public CXFA_WidgetLayoutData {
public:
CXFA_TextLayoutData() = default;
~CXFA_TextLayoutData() override = default;
@@ -443,7 +443,7 @@
std::unique_ptr<CXFA_TextProvider> m_pTextProvider;
};
-class CXFA_ImageLayoutData : public CXFA_WidgetLayoutData {
+class CXFA_ImageLayoutData final : public CXFA_WidgetLayoutData {
public:
CXFA_ImageLayoutData() = default;
~CXFA_ImageLayoutData() override = default;
@@ -503,7 +503,7 @@
std::vector<float> m_FieldSplitArray;
};
-class CXFA_TextEditData : public CXFA_FieldLayoutData {
+class CXFA_TextEditData final : public CXFA_FieldLayoutData {
public:
CXFA_TextEditData() = default;
~CXFA_TextEditData() override = default;
@@ -511,7 +511,7 @@
CXFA_TextEditData* AsTextEditData() override { return this; }
};
-class CXFA_ImageEditData : public CXFA_FieldLayoutData {
+class CXFA_ImageEditData final : public CXFA_FieldLayoutData {
public:
CXFA_ImageEditData() = default;
~CXFA_ImageEditData() override = default;
diff --git a/xfa/fxfa/parser/cxfa_node_unittest.cpp b/xfa/fxfa/parser/cxfa_node_unittest.cpp
index 81e2189..7b3c09d 100644
--- a/xfa/fxfa/parser/cxfa_node_unittest.cpp
+++ b/xfa/fxfa/parser/cxfa_node_unittest.cpp
@@ -10,7 +10,7 @@
namespace {
-class TestNode : public CXFA_Node {
+class TestNode final : public CXFA_Node {
public:
explicit TestNode(CXFA_Document* doc)
: CXFA_Node(doc,
diff --git a/xfa/fxfa/parser/cxfa_nodelocale.h b/xfa/fxfa/parser/cxfa_nodelocale.h
index e802cd9..da6846b 100644
--- a/xfa/fxfa/parser/cxfa_nodelocale.h
+++ b/xfa/fxfa/parser/cxfa_nodelocale.h
@@ -16,7 +16,7 @@
WideString XFA_PatternToString(FX_LOCALENUMSUBCATEGORY category);
-class CXFA_NodeLocale : public LocaleIface {
+class CXFA_NodeLocale final : public LocaleIface {
public:
explicit CXFA_NodeLocale(CXFA_Node* pLocale);
~CXFA_NodeLocale() override;
diff --git a/xfa/fxfa/parser/cxfa_numberofcopies.h b/xfa/fxfa/parser/cxfa_numberofcopies.h
index 04bb599..3215bb3 100644
--- a/xfa/fxfa/parser/cxfa_numberofcopies.h
+++ b/xfa/fxfa/parser/cxfa_numberofcopies.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_NumberOfCopies : public CXFA_Node {
+class CXFA_NumberOfCopies final : public CXFA_Node {
public:
CXFA_NumberOfCopies(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_NumberOfCopies() override;
diff --git a/xfa/fxfa/parser/cxfa_numberpattern.h b/xfa/fxfa/parser/cxfa_numberpattern.h
index 0a4fabd..5c42d46 100644
--- a/xfa/fxfa/parser/cxfa_numberpattern.h
+++ b/xfa/fxfa/parser/cxfa_numberpattern.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_NumberPattern : public CXFA_Node {
+class CXFA_NumberPattern final : public CXFA_Node {
public:
CXFA_NumberPattern(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_NumberPattern() override;
diff --git a/xfa/fxfa/parser/cxfa_numberpatterns.h b/xfa/fxfa/parser/cxfa_numberpatterns.h
index ef4f889..58c8cb6 100644
--- a/xfa/fxfa/parser/cxfa_numberpatterns.h
+++ b/xfa/fxfa/parser/cxfa_numberpatterns.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_NumberPatterns : public CXFA_Node {
+class CXFA_NumberPatterns final : public CXFA_Node {
public:
CXFA_NumberPatterns(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_NumberPatterns() override;
diff --git a/xfa/fxfa/parser/cxfa_numbersymbol.h b/xfa/fxfa/parser/cxfa_numbersymbol.h
index c164b03..404f366 100644
--- a/xfa/fxfa/parser/cxfa_numbersymbol.h
+++ b/xfa/fxfa/parser/cxfa_numbersymbol.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_NumberSymbol : public CXFA_Node {
+class CXFA_NumberSymbol final : public CXFA_Node {
public:
CXFA_NumberSymbol(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_NumberSymbol() override;
diff --git a/xfa/fxfa/parser/cxfa_numbersymbols.h b/xfa/fxfa/parser/cxfa_numbersymbols.h
index 972df9f..37bb6fc 100644
--- a/xfa/fxfa/parser/cxfa_numbersymbols.h
+++ b/xfa/fxfa/parser/cxfa_numbersymbols.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_NumberSymbols : public CXFA_Node {
+class CXFA_NumberSymbols final : public CXFA_Node {
public:
CXFA_NumberSymbols(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_NumberSymbols() override;
diff --git a/xfa/fxfa/parser/cxfa_numericedit.h b/xfa/fxfa/parser/cxfa_numericedit.h
index 1a96f46..145bf08 100644
--- a/xfa/fxfa/parser/cxfa_numericedit.h
+++ b/xfa/fxfa/parser/cxfa_numericedit.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_NumericEdit : public CXFA_Node {
+class CXFA_NumericEdit final : public CXFA_Node {
public:
CXFA_NumericEdit(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_NumericEdit() override;
diff --git a/xfa/fxfa/parser/cxfa_occur.h b/xfa/fxfa/parser/cxfa_occur.h
index 070c15c..58029a3 100644
--- a/xfa/fxfa/parser/cxfa_occur.h
+++ b/xfa/fxfa/parser/cxfa_occur.h
@@ -11,7 +11,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Occur : public CXFA_Node {
+class CXFA_Occur final : public CXFA_Node {
public:
static constexpr int32_t kDefaultMax = 1;
static constexpr int32_t kDefaultMin = 1;
diff --git a/xfa/fxfa/parser/cxfa_oid.h b/xfa/fxfa/parser/cxfa_oid.h
index 45abf8b..c9ccb71 100644
--- a/xfa/fxfa/parser/cxfa_oid.h
+++ b/xfa/fxfa/parser/cxfa_oid.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Oid : public CXFA_Node {
+class CXFA_Oid final : public CXFA_Node {
public:
CXFA_Oid(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Oid() override;
diff --git a/xfa/fxfa/parser/cxfa_oids.h b/xfa/fxfa/parser/cxfa_oids.h
index cc8cd9c..f537601 100644
--- a/xfa/fxfa/parser/cxfa_oids.h
+++ b/xfa/fxfa/parser/cxfa_oids.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Oids : public CXFA_Node {
+class CXFA_Oids final : public CXFA_Node {
public:
CXFA_Oids(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Oids() override;
diff --git a/xfa/fxfa/parser/cxfa_openaction.h b/xfa/fxfa/parser/cxfa_openaction.h
index d84eb29..2eff67c 100644
--- a/xfa/fxfa/parser/cxfa_openaction.h
+++ b/xfa/fxfa/parser/cxfa_openaction.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_OpenAction : public CXFA_Node {
+class CXFA_OpenAction final : public CXFA_Node {
public:
CXFA_OpenAction(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_OpenAction() override;
diff --git a/xfa/fxfa/parser/cxfa_operation.h b/xfa/fxfa/parser/cxfa_operation.h
index 454a354..4df63aa 100644
--- a/xfa/fxfa/parser/cxfa_operation.h
+++ b/xfa/fxfa/parser/cxfa_operation.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Operation : public CXFA_Node {
+class CXFA_Operation final : public CXFA_Node {
public:
CXFA_Operation(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Operation() override;
diff --git a/xfa/fxfa/parser/cxfa_output.h b/xfa/fxfa/parser/cxfa_output.h
index 2eb1391..45555be 100644
--- a/xfa/fxfa/parser/cxfa_output.h
+++ b/xfa/fxfa/parser/cxfa_output.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Output : public CXFA_Node {
+class CXFA_Output final : public CXFA_Node {
public:
CXFA_Output(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Output() override;
diff --git a/xfa/fxfa/parser/cxfa_outputbin.h b/xfa/fxfa/parser/cxfa_outputbin.h
index 25a1ae0..7ab4540 100644
--- a/xfa/fxfa/parser/cxfa_outputbin.h
+++ b/xfa/fxfa/parser/cxfa_outputbin.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_OutputBin : public CXFA_Node {
+class CXFA_OutputBin final : public CXFA_Node {
public:
CXFA_OutputBin(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_OutputBin() override;
diff --git a/xfa/fxfa/parser/cxfa_outputxsl.h b/xfa/fxfa/parser/cxfa_outputxsl.h
index 4535523..361ea42 100644
--- a/xfa/fxfa/parser/cxfa_outputxsl.h
+++ b/xfa/fxfa/parser/cxfa_outputxsl.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_OutputXSL : public CXFA_Node {
+class CXFA_OutputXSL final : public CXFA_Node {
public:
CXFA_OutputXSL(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_OutputXSL() override;
diff --git a/xfa/fxfa/parser/cxfa_overflow.h b/xfa/fxfa/parser/cxfa_overflow.h
index e6627ba..da2717a 100644
--- a/xfa/fxfa/parser/cxfa_overflow.h
+++ b/xfa/fxfa/parser/cxfa_overflow.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Overflow : public CXFA_Node {
+class CXFA_Overflow final : public CXFA_Node {
public:
CXFA_Overflow(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Overflow() override;
diff --git a/xfa/fxfa/parser/cxfa_overprint.h b/xfa/fxfa/parser/cxfa_overprint.h
index a9ec241..e5e360d 100644
--- a/xfa/fxfa/parser/cxfa_overprint.h
+++ b/xfa/fxfa/parser/cxfa_overprint.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Overprint : public CXFA_Node {
+class CXFA_Overprint final : public CXFA_Node {
public:
CXFA_Overprint(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Overprint() override;
diff --git a/xfa/fxfa/parser/cxfa_packet.h b/xfa/fxfa/parser/cxfa_packet.h
index 6bda61d..c94c74c 100644
--- a/xfa/fxfa/parser/cxfa_packet.h
+++ b/xfa/fxfa/parser/cxfa_packet.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Packet : public CXFA_Node {
+class CXFA_Packet final : public CXFA_Node {
public:
CXFA_Packet(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Packet() override;
diff --git a/xfa/fxfa/parser/cxfa_packets.h b/xfa/fxfa/parser/cxfa_packets.h
index ebf29b6..5e0f408 100644
--- a/xfa/fxfa/parser/cxfa_packets.h
+++ b/xfa/fxfa/parser/cxfa_packets.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Packets : public CXFA_Node {
+class CXFA_Packets final : public CXFA_Node {
public:
CXFA_Packets(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Packets() override;
diff --git a/xfa/fxfa/parser/cxfa_pagearea.h b/xfa/fxfa/parser/cxfa_pagearea.h
index f3cab1e..8a8afaa 100644
--- a/xfa/fxfa/parser/cxfa_pagearea.h
+++ b/xfa/fxfa/parser/cxfa_pagearea.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_PageArea : public CXFA_Node {
+class CXFA_PageArea final : public CXFA_Node {
public:
CXFA_PageArea(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_PageArea() override;
diff --git a/xfa/fxfa/parser/cxfa_pageoffset.h b/xfa/fxfa/parser/cxfa_pageoffset.h
index a396c57..d090b11 100644
--- a/xfa/fxfa/parser/cxfa_pageoffset.h
+++ b/xfa/fxfa/parser/cxfa_pageoffset.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_PageOffset : public CXFA_Node {
+class CXFA_PageOffset final : public CXFA_Node {
public:
CXFA_PageOffset(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_PageOffset() override;
diff --git a/xfa/fxfa/parser/cxfa_pagerange.h b/xfa/fxfa/parser/cxfa_pagerange.h
index 949276a..a0317b5 100644
--- a/xfa/fxfa/parser/cxfa_pagerange.h
+++ b/xfa/fxfa/parser/cxfa_pagerange.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_PageRange : public CXFA_Node {
+class CXFA_PageRange final : public CXFA_Node {
public:
CXFA_PageRange(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_PageRange() override;
diff --git a/xfa/fxfa/parser/cxfa_pageset.h b/xfa/fxfa/parser/cxfa_pageset.h
index 9cc3b17..da71581 100644
--- a/xfa/fxfa/parser/cxfa_pageset.h
+++ b/xfa/fxfa/parser/cxfa_pageset.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_PageSet : public CXFA_Node {
+class CXFA_PageSet final : public CXFA_Node {
public:
CXFA_PageSet(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_PageSet() override;
diff --git a/xfa/fxfa/parser/cxfa_pagination.h b/xfa/fxfa/parser/cxfa_pagination.h
index a455ecb..9bbd820 100644
--- a/xfa/fxfa/parser/cxfa_pagination.h
+++ b/xfa/fxfa/parser/cxfa_pagination.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Pagination : public CXFA_Node {
+class CXFA_Pagination final : public CXFA_Node {
public:
CXFA_Pagination(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Pagination() override;
diff --git a/xfa/fxfa/parser/cxfa_paginationoverride.h b/xfa/fxfa/parser/cxfa_paginationoverride.h
index 9cc9528..4f0efba 100644
--- a/xfa/fxfa/parser/cxfa_paginationoverride.h
+++ b/xfa/fxfa/parser/cxfa_paginationoverride.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_PaginationOverride : public CXFA_Node {
+class CXFA_PaginationOverride final : public CXFA_Node {
public:
CXFA_PaginationOverride(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_PaginationOverride() override;
diff --git a/xfa/fxfa/parser/cxfa_para.h b/xfa/fxfa/parser/cxfa_para.h
index afb48ce..7fd39a6 100644
--- a/xfa/fxfa/parser/cxfa_para.h
+++ b/xfa/fxfa/parser/cxfa_para.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Para : public CXFA_Node {
+class CXFA_Para final : public CXFA_Node {
public:
CXFA_Para(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Para() override;
diff --git a/xfa/fxfa/parser/cxfa_part.h b/xfa/fxfa/parser/cxfa_part.h
index 3db7639..99c2c59 100644
--- a/xfa/fxfa/parser/cxfa_part.h
+++ b/xfa/fxfa/parser/cxfa_part.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Part : public CXFA_Node {
+class CXFA_Part final : public CXFA_Node {
public:
CXFA_Part(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Part() override;
diff --git a/xfa/fxfa/parser/cxfa_password.h b/xfa/fxfa/parser/cxfa_password.h
index 904f91f..a2cbca7 100644
--- a/xfa/fxfa/parser/cxfa_password.h
+++ b/xfa/fxfa/parser/cxfa_password.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Password : public CXFA_Node {
+class CXFA_Password final : public CXFA_Node {
public:
CXFA_Password(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Password() override;
diff --git a/xfa/fxfa/parser/cxfa_passwordedit.h b/xfa/fxfa/parser/cxfa_passwordedit.h
index 6c8e8e5..fae812f 100644
--- a/xfa/fxfa/parser/cxfa_passwordedit.h
+++ b/xfa/fxfa/parser/cxfa_passwordedit.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_PasswordEdit : public CXFA_Node {
+class CXFA_PasswordEdit final : public CXFA_Node {
public:
CXFA_PasswordEdit(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_PasswordEdit() override;
diff --git a/xfa/fxfa/parser/cxfa_pattern.h b/xfa/fxfa/parser/cxfa_pattern.h
index 7533ac9..04119c4 100644
--- a/xfa/fxfa/parser/cxfa_pattern.h
+++ b/xfa/fxfa/parser/cxfa_pattern.h
@@ -14,7 +14,7 @@
class CXFA_Color;
class CXFA_Graphics;
-class CXFA_Pattern : public CXFA_Node {
+class CXFA_Pattern final : public CXFA_Node {
public:
static constexpr XFA_AttributeEnum kDefaultType = XFA_AttributeEnum::Unknown;
diff --git a/xfa/fxfa/parser/cxfa_pcl.h b/xfa/fxfa/parser/cxfa_pcl.h
index 9b78265..c9d94d6 100644
--- a/xfa/fxfa/parser/cxfa_pcl.h
+++ b/xfa/fxfa/parser/cxfa_pcl.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Pcl : public CXFA_Node {
+class CXFA_Pcl final : public CXFA_Node {
public:
CXFA_Pcl(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Pcl() override;
diff --git a/xfa/fxfa/parser/cxfa_pdf.h b/xfa/fxfa/parser/cxfa_pdf.h
index d0925c8..00e4d38 100644
--- a/xfa/fxfa/parser/cxfa_pdf.h
+++ b/xfa/fxfa/parser/cxfa_pdf.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Pdf : public CXFA_Node {
+class CXFA_Pdf final : public CXFA_Node {
public:
CXFA_Pdf(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Pdf() override;
diff --git a/xfa/fxfa/parser/cxfa_pdfa.h b/xfa/fxfa/parser/cxfa_pdfa.h
index d0816a2..e43f025 100644
--- a/xfa/fxfa/parser/cxfa_pdfa.h
+++ b/xfa/fxfa/parser/cxfa_pdfa.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Pdfa : public CXFA_Node {
+class CXFA_Pdfa final : public CXFA_Node {
public:
CXFA_Pdfa(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Pdfa() override;
diff --git a/xfa/fxfa/parser/cxfa_permissions.h b/xfa/fxfa/parser/cxfa_permissions.h
index dca9018..79b3bf1 100644
--- a/xfa/fxfa/parser/cxfa_permissions.h
+++ b/xfa/fxfa/parser/cxfa_permissions.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Permissions : public CXFA_Node {
+class CXFA_Permissions final : public CXFA_Node {
public:
CXFA_Permissions(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Permissions() override;
diff --git a/xfa/fxfa/parser/cxfa_picktraybypdfsize.h b/xfa/fxfa/parser/cxfa_picktraybypdfsize.h
index ef75e5c..3871552 100644
--- a/xfa/fxfa/parser/cxfa_picktraybypdfsize.h
+++ b/xfa/fxfa/parser/cxfa_picktraybypdfsize.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_PickTrayByPDFSize : public CXFA_Node {
+class CXFA_PickTrayByPDFSize final : public CXFA_Node {
public:
CXFA_PickTrayByPDFSize(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_PickTrayByPDFSize() override;
diff --git a/xfa/fxfa/parser/cxfa_picture.h b/xfa/fxfa/parser/cxfa_picture.h
index 9fd2c55..304c7b9 100644
--- a/xfa/fxfa/parser/cxfa_picture.h
+++ b/xfa/fxfa/parser/cxfa_picture.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Picture : public CXFA_Node {
+class CXFA_Picture final : public CXFA_Node {
public:
CXFA_Picture(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Picture() override;
diff --git a/xfa/fxfa/parser/cxfa_plaintextmetadata.h b/xfa/fxfa/parser/cxfa_plaintextmetadata.h
index 03dce65..65e0ded 100644
--- a/xfa/fxfa/parser/cxfa_plaintextmetadata.h
+++ b/xfa/fxfa/parser/cxfa_plaintextmetadata.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_PlaintextMetadata : public CXFA_Node {
+class CXFA_PlaintextMetadata final : public CXFA_Node {
public:
CXFA_PlaintextMetadata(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_PlaintextMetadata() override;
diff --git a/xfa/fxfa/parser/cxfa_presence.h b/xfa/fxfa/parser/cxfa_presence.h
index a9b7766..1bd6e45 100644
--- a/xfa/fxfa/parser/cxfa_presence.h
+++ b/xfa/fxfa/parser/cxfa_presence.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Presence : public CXFA_Node {
+class CXFA_Presence final : public CXFA_Node {
public:
CXFA_Presence(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Presence() override;
diff --git a/xfa/fxfa/parser/cxfa_present.h b/xfa/fxfa/parser/cxfa_present.h
index 13b3c61..36db503 100644
--- a/xfa/fxfa/parser/cxfa_present.h
+++ b/xfa/fxfa/parser/cxfa_present.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Present : public CXFA_Node {
+class CXFA_Present final : public CXFA_Node {
public:
CXFA_Present(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Present() override;
diff --git a/xfa/fxfa/parser/cxfa_print.h b/xfa/fxfa/parser/cxfa_print.h
index 5f2513e..7f6fff9 100644
--- a/xfa/fxfa/parser/cxfa_print.h
+++ b/xfa/fxfa/parser/cxfa_print.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Print : public CXFA_Node {
+class CXFA_Print final : public CXFA_Node {
public:
CXFA_Print(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Print() override;
diff --git a/xfa/fxfa/parser/cxfa_printername.h b/xfa/fxfa/parser/cxfa_printername.h
index 4f07885..a85d61e 100644
--- a/xfa/fxfa/parser/cxfa_printername.h
+++ b/xfa/fxfa/parser/cxfa_printername.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_PrinterName : public CXFA_Node {
+class CXFA_PrinterName final : public CXFA_Node {
public:
CXFA_PrinterName(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_PrinterName() override;
diff --git a/xfa/fxfa/parser/cxfa_printhighquality.h b/xfa/fxfa/parser/cxfa_printhighquality.h
index 6cd61125..6268489 100644
--- a/xfa/fxfa/parser/cxfa_printhighquality.h
+++ b/xfa/fxfa/parser/cxfa_printhighquality.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_PrintHighQuality : public CXFA_Node {
+class CXFA_PrintHighQuality final : public CXFA_Node {
public:
CXFA_PrintHighQuality(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_PrintHighQuality() override;
diff --git a/xfa/fxfa/parser/cxfa_printscaling.h b/xfa/fxfa/parser/cxfa_printscaling.h
index e21d427..76bf112 100644
--- a/xfa/fxfa/parser/cxfa_printscaling.h
+++ b/xfa/fxfa/parser/cxfa_printscaling.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_PrintScaling : public CXFA_Node {
+class CXFA_PrintScaling final : public CXFA_Node {
public:
CXFA_PrintScaling(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_PrintScaling() override;
diff --git a/xfa/fxfa/parser/cxfa_producer.h b/xfa/fxfa/parser/cxfa_producer.h
index 584826e..c40a334 100644
--- a/xfa/fxfa/parser/cxfa_producer.h
+++ b/xfa/fxfa/parser/cxfa_producer.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Producer : public CXFA_Node {
+class CXFA_Producer final : public CXFA_Node {
public:
CXFA_Producer(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Producer() override;
diff --git a/xfa/fxfa/parser/cxfa_proto.h b/xfa/fxfa/parser/cxfa_proto.h
index 8e1d84a..5af7ba2 100644
--- a/xfa/fxfa/parser/cxfa_proto.h
+++ b/xfa/fxfa/parser/cxfa_proto.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Proto : public CXFA_Node {
+class CXFA_Proto final : public CXFA_Node {
public:
CXFA_Proto(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Proto() override;
diff --git a/xfa/fxfa/parser/cxfa_ps.h b/xfa/fxfa/parser/cxfa_ps.h
index 5ef7e82..f51c510 100644
--- a/xfa/fxfa/parser/cxfa_ps.h
+++ b/xfa/fxfa/parser/cxfa_ps.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Ps : public CXFA_Node {
+class CXFA_Ps final : public CXFA_Node {
public:
CXFA_Ps(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Ps() override;
diff --git a/xfa/fxfa/parser/cxfa_psmap.h b/xfa/fxfa/parser/cxfa_psmap.h
index 8297aaa..802e123 100644
--- a/xfa/fxfa/parser/cxfa_psmap.h
+++ b/xfa/fxfa/parser/cxfa_psmap.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_PsMap : public CXFA_Node {
+class CXFA_PsMap final : public CXFA_Node {
public:
CXFA_PsMap(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_PsMap() override;
diff --git a/xfa/fxfa/parser/cxfa_query.h b/xfa/fxfa/parser/cxfa_query.h
index 548e7fc..7d62c68 100644
--- a/xfa/fxfa/parser/cxfa_query.h
+++ b/xfa/fxfa/parser/cxfa_query.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Query : public CXFA_Node {
+class CXFA_Query final : public CXFA_Node {
public:
CXFA_Query(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Query() override;
diff --git a/xfa/fxfa/parser/cxfa_radial.h b/xfa/fxfa/parser/cxfa_radial.h
index b7ce95c..8fb30b5 100644
--- a/xfa/fxfa/parser/cxfa_radial.h
+++ b/xfa/fxfa/parser/cxfa_radial.h
@@ -14,7 +14,7 @@
class CXFA_Color;
class CXFA_Graphics;
-class CXFA_Radial : public CXFA_Node {
+class CXFA_Radial final : public CXFA_Node {
public:
CXFA_Radial(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Radial() override;
diff --git a/xfa/fxfa/parser/cxfa_range.h b/xfa/fxfa/parser/cxfa_range.h
index 23c8d1f..5d8920d 100644
--- a/xfa/fxfa/parser/cxfa_range.h
+++ b/xfa/fxfa/parser/cxfa_range.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Range : public CXFA_Node {
+class CXFA_Range final : public CXFA_Node {
public:
CXFA_Range(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Range() override;
diff --git a/xfa/fxfa/parser/cxfa_reason.h b/xfa/fxfa/parser/cxfa_reason.h
index 451fd82..1475637 100644
--- a/xfa/fxfa/parser/cxfa_reason.h
+++ b/xfa/fxfa/parser/cxfa_reason.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Reason : public CXFA_Node {
+class CXFA_Reason final : public CXFA_Node {
public:
CXFA_Reason(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Reason() override;
diff --git a/xfa/fxfa/parser/cxfa_reasons.h b/xfa/fxfa/parser/cxfa_reasons.h
index 57e9e09..673a9b2 100644
--- a/xfa/fxfa/parser/cxfa_reasons.h
+++ b/xfa/fxfa/parser/cxfa_reasons.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Reasons : public CXFA_Node {
+class CXFA_Reasons final : public CXFA_Node {
public:
CXFA_Reasons(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Reasons() override;
diff --git a/xfa/fxfa/parser/cxfa_record.h b/xfa/fxfa/parser/cxfa_record.h
index bd2622d..de0d0c4 100644
--- a/xfa/fxfa/parser/cxfa_record.h
+++ b/xfa/fxfa/parser/cxfa_record.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Record : public CXFA_Node {
+class CXFA_Record final : public CXFA_Node {
public:
CXFA_Record(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Record() override;
diff --git a/xfa/fxfa/parser/cxfa_recordset.h b/xfa/fxfa/parser/cxfa_recordset.h
index c623516..a9895bd 100644
--- a/xfa/fxfa/parser/cxfa_recordset.h
+++ b/xfa/fxfa/parser/cxfa_recordset.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_RecordSet : public CXFA_Node {
+class CXFA_RecordSet final : public CXFA_Node {
public:
CXFA_RecordSet(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_RecordSet() override;
diff --git a/xfa/fxfa/parser/cxfa_ref.h b/xfa/fxfa/parser/cxfa_ref.h
index 630510f..5ab8e00 100644
--- a/xfa/fxfa/parser/cxfa_ref.h
+++ b/xfa/fxfa/parser/cxfa_ref.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Ref : public CXFA_Node {
+class CXFA_Ref final : public CXFA_Node {
public:
CXFA_Ref(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Ref() override;
diff --git a/xfa/fxfa/parser/cxfa_relevant.h b/xfa/fxfa/parser/cxfa_relevant.h
index 2018c95..03283c3 100644
--- a/xfa/fxfa/parser/cxfa_relevant.h
+++ b/xfa/fxfa/parser/cxfa_relevant.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Relevant : public CXFA_Node {
+class CXFA_Relevant final : public CXFA_Node {
public:
CXFA_Relevant(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Relevant() override;
diff --git a/xfa/fxfa/parser/cxfa_rename.h b/xfa/fxfa/parser/cxfa_rename.h
index 665c852..f50d852 100644
--- a/xfa/fxfa/parser/cxfa_rename.h
+++ b/xfa/fxfa/parser/cxfa_rename.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Rename : public CXFA_Node {
+class CXFA_Rename final : public CXFA_Node {
public:
CXFA_Rename(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Rename() override;
diff --git a/xfa/fxfa/parser/cxfa_renderpolicy.h b/xfa/fxfa/parser/cxfa_renderpolicy.h
index 24ddf46..4947289 100644
--- a/xfa/fxfa/parser/cxfa_renderpolicy.h
+++ b/xfa/fxfa/parser/cxfa_renderpolicy.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_RenderPolicy : public CXFA_Node {
+class CXFA_RenderPolicy final : public CXFA_Node {
public:
CXFA_RenderPolicy(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_RenderPolicy() override;
diff --git a/xfa/fxfa/parser/cxfa_rootelement.h b/xfa/fxfa/parser/cxfa_rootelement.h
index a995e8c..4a9218e 100644
--- a/xfa/fxfa/parser/cxfa_rootelement.h
+++ b/xfa/fxfa/parser/cxfa_rootelement.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_RootElement : public CXFA_Node {
+class CXFA_RootElement final : public CXFA_Node {
public:
CXFA_RootElement(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_RootElement() override;
diff --git a/xfa/fxfa/parser/cxfa_runscripts.h b/xfa/fxfa/parser/cxfa_runscripts.h
index d2ecaa0..2f80b0d 100644
--- a/xfa/fxfa/parser/cxfa_runscripts.h
+++ b/xfa/fxfa/parser/cxfa_runscripts.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_RunScripts : public CXFA_Node {
+class CXFA_RunScripts final : public CXFA_Node {
public:
CXFA_RunScripts(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_RunScripts() override;
diff --git a/xfa/fxfa/parser/cxfa_script.h b/xfa/fxfa/parser/cxfa_script.h
index 8ea7aac..5f48f45 100644
--- a/xfa/fxfa/parser/cxfa_script.h
+++ b/xfa/fxfa/parser/cxfa_script.h
@@ -10,7 +10,7 @@
#include "core/fxcrt/widestring.h"
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Script : public CXFA_Node {
+class CXFA_Script final : public CXFA_Node {
public:
enum class Type {
Formcalc = 0,
diff --git a/xfa/fxfa/parser/cxfa_scriptmodel.h b/xfa/fxfa/parser/cxfa_scriptmodel.h
index 40bc96e..a71073e 100644
--- a/xfa/fxfa/parser/cxfa_scriptmodel.h
+++ b/xfa/fxfa/parser/cxfa_scriptmodel.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_ScriptModel : public CXFA_Node {
+class CXFA_ScriptModel final : public CXFA_Node {
public:
CXFA_ScriptModel(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_ScriptModel() override;
diff --git a/xfa/fxfa/parser/cxfa_select.h b/xfa/fxfa/parser/cxfa_select.h
index 76651e0..82fc0d2 100644
--- a/xfa/fxfa/parser/cxfa_select.h
+++ b/xfa/fxfa/parser/cxfa_select.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Select : public CXFA_Node {
+class CXFA_Select final : public CXFA_Node {
public:
CXFA_Select(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Select() override;
diff --git a/xfa/fxfa/parser/cxfa_setproperty.h b/xfa/fxfa/parser/cxfa_setproperty.h
index 3f8f430..aab588b 100644
--- a/xfa/fxfa/parser/cxfa_setproperty.h
+++ b/xfa/fxfa/parser/cxfa_setproperty.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_SetProperty : public CXFA_Node {
+class CXFA_SetProperty final : public CXFA_Node {
public:
CXFA_SetProperty(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_SetProperty() override;
diff --git a/xfa/fxfa/parser/cxfa_severity.h b/xfa/fxfa/parser/cxfa_severity.h
index 7114455..b2283c9 100644
--- a/xfa/fxfa/parser/cxfa_severity.h
+++ b/xfa/fxfa/parser/cxfa_severity.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Severity : public CXFA_Node {
+class CXFA_Severity final : public CXFA_Node {
public:
CXFA_Severity(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Severity() override;
diff --git a/xfa/fxfa/parser/cxfa_sharptext.h b/xfa/fxfa/parser/cxfa_sharptext.h
index 89a050b..f2a41e8 100644
--- a/xfa/fxfa/parser/cxfa_sharptext.h
+++ b/xfa/fxfa/parser/cxfa_sharptext.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Sharptext : public CXFA_Node {
+class CXFA_Sharptext final : public CXFA_Node {
public:
CXFA_Sharptext(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Sharptext() override;
diff --git a/xfa/fxfa/parser/cxfa_sharpxhtml.h b/xfa/fxfa/parser/cxfa_sharpxhtml.h
index 3f6cf79..b73789d 100644
--- a/xfa/fxfa/parser/cxfa_sharpxhtml.h
+++ b/xfa/fxfa/parser/cxfa_sharpxhtml.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_SharpxHTML : public CXFA_Node {
+class CXFA_SharpxHTML final : public CXFA_Node {
public:
CXFA_SharpxHTML(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_SharpxHTML() override;
diff --git a/xfa/fxfa/parser/cxfa_sharpxml.h b/xfa/fxfa/parser/cxfa_sharpxml.h
index a065857..b2e467a 100644
--- a/xfa/fxfa/parser/cxfa_sharpxml.h
+++ b/xfa/fxfa/parser/cxfa_sharpxml.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Sharpxml : public CXFA_Node {
+class CXFA_Sharpxml final : public CXFA_Node {
public:
CXFA_Sharpxml(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Sharpxml() override;
diff --git a/xfa/fxfa/parser/cxfa_signature.h b/xfa/fxfa/parser/cxfa_signature.h
index 3491a1e..678e892 100644
--- a/xfa/fxfa/parser/cxfa_signature.h
+++ b/xfa/fxfa/parser/cxfa_signature.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Signature : public CXFA_Node {
+class CXFA_Signature final : public CXFA_Node {
public:
CXFA_Signature(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Signature() override;
diff --git a/xfa/fxfa/parser/cxfa_signatureproperties.h b/xfa/fxfa/parser/cxfa_signatureproperties.h
index 800b780..a66346e 100644
--- a/xfa/fxfa/parser/cxfa_signatureproperties.h
+++ b/xfa/fxfa/parser/cxfa_signatureproperties.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_SignatureProperties : public CXFA_Node {
+class CXFA_SignatureProperties final : public CXFA_Node {
public:
CXFA_SignatureProperties(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_SignatureProperties() override;
diff --git a/xfa/fxfa/parser/cxfa_signdata.h b/xfa/fxfa/parser/cxfa_signdata.h
index 3ad39f5..e28460d 100644
--- a/xfa/fxfa/parser/cxfa_signdata.h
+++ b/xfa/fxfa/parser/cxfa_signdata.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_SignData : public CXFA_Node {
+class CXFA_SignData final : public CXFA_Node {
public:
CXFA_SignData(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_SignData() override;
diff --git a/xfa/fxfa/parser/cxfa_signing.h b/xfa/fxfa/parser/cxfa_signing.h
index 6df9a18..7c37403 100644
--- a/xfa/fxfa/parser/cxfa_signing.h
+++ b/xfa/fxfa/parser/cxfa_signing.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Signing : public CXFA_Node {
+class CXFA_Signing final : public CXFA_Node {
public:
CXFA_Signing(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Signing() override;
diff --git a/xfa/fxfa/parser/cxfa_silentprint.h b/xfa/fxfa/parser/cxfa_silentprint.h
index 6ef5fcf..378084d 100644
--- a/xfa/fxfa/parser/cxfa_silentprint.h
+++ b/xfa/fxfa/parser/cxfa_silentprint.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_SilentPrint : public CXFA_Node {
+class CXFA_SilentPrint final : public CXFA_Node {
public:
CXFA_SilentPrint(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_SilentPrint() override;
diff --git a/xfa/fxfa/parser/cxfa_soapaction.h b/xfa/fxfa/parser/cxfa_soapaction.h
index b803eae..b7f7526 100644
--- a/xfa/fxfa/parser/cxfa_soapaction.h
+++ b/xfa/fxfa/parser/cxfa_soapaction.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_SoapAction : public CXFA_Node {
+class CXFA_SoapAction final : public CXFA_Node {
public:
CXFA_SoapAction(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_SoapAction() override;
diff --git a/xfa/fxfa/parser/cxfa_soapaddress.h b/xfa/fxfa/parser/cxfa_soapaddress.h
index b0feff4..130ddf3 100644
--- a/xfa/fxfa/parser/cxfa_soapaddress.h
+++ b/xfa/fxfa/parser/cxfa_soapaddress.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_SoapAddress : public CXFA_Node {
+class CXFA_SoapAddress final : public CXFA_Node {
public:
CXFA_SoapAddress(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_SoapAddress() override;
diff --git a/xfa/fxfa/parser/cxfa_solid.h b/xfa/fxfa/parser/cxfa_solid.h
index ec1e2d0..28666ef 100644
--- a/xfa/fxfa/parser/cxfa_solid.h
+++ b/xfa/fxfa/parser/cxfa_solid.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Solid : public CXFA_Node {
+class CXFA_Solid final : public CXFA_Node {
public:
CXFA_Solid(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Solid() override;
diff --git a/xfa/fxfa/parser/cxfa_source.h b/xfa/fxfa/parser/cxfa_source.h
index af74be8..96af083 100644
--- a/xfa/fxfa/parser/cxfa_source.h
+++ b/xfa/fxfa/parser/cxfa_source.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Source : public CXFA_Node {
+class CXFA_Source final : public CXFA_Node {
public:
CXFA_Source(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Source() override;
diff --git a/xfa/fxfa/parser/cxfa_sourceset.h b/xfa/fxfa/parser/cxfa_sourceset.h
index b07e12b..c31b94c 100644
--- a/xfa/fxfa/parser/cxfa_sourceset.h
+++ b/xfa/fxfa/parser/cxfa_sourceset.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_SourceSet : public CXFA_Node {
+class CXFA_SourceSet final : public CXFA_Node {
public:
CXFA_SourceSet(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_SourceSet() override;
diff --git a/xfa/fxfa/parser/cxfa_speak.h b/xfa/fxfa/parser/cxfa_speak.h
index 80ef54b..5497927 100644
--- a/xfa/fxfa/parser/cxfa_speak.h
+++ b/xfa/fxfa/parser/cxfa_speak.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Speak : public CXFA_Node {
+class CXFA_Speak final : public CXFA_Node {
public:
CXFA_Speak(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Speak() override;
diff --git a/xfa/fxfa/parser/cxfa_staple.h b/xfa/fxfa/parser/cxfa_staple.h
index 9651fa4..44ef654 100644
--- a/xfa/fxfa/parser/cxfa_staple.h
+++ b/xfa/fxfa/parser/cxfa_staple.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Staple : public CXFA_Node {
+class CXFA_Staple final : public CXFA_Node {
public:
CXFA_Staple(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Staple() override;
diff --git a/xfa/fxfa/parser/cxfa_startnode.h b/xfa/fxfa/parser/cxfa_startnode.h
index 51815e5..b8bab06 100644
--- a/xfa/fxfa/parser/cxfa_startnode.h
+++ b/xfa/fxfa/parser/cxfa_startnode.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_StartNode : public CXFA_Node {
+class CXFA_StartNode final : public CXFA_Node {
public:
CXFA_StartNode(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_StartNode() override;
diff --git a/xfa/fxfa/parser/cxfa_startpage.h b/xfa/fxfa/parser/cxfa_startpage.h
index 6262aa7..ae0ecee 100644
--- a/xfa/fxfa/parser/cxfa_startpage.h
+++ b/xfa/fxfa/parser/cxfa_startpage.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_StartPage : public CXFA_Node {
+class CXFA_StartPage final : public CXFA_Node {
public:
CXFA_StartPage(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_StartPage() override;
diff --git a/xfa/fxfa/parser/cxfa_stipple.h b/xfa/fxfa/parser/cxfa_stipple.h
index 839534b..af5581f 100644
--- a/xfa/fxfa/parser/cxfa_stipple.h
+++ b/xfa/fxfa/parser/cxfa_stipple.h
@@ -14,7 +14,7 @@
class CXFA_Color;
class CXFA_Graphics;
-class CXFA_Stipple : public CXFA_Node {
+class CXFA_Stipple final : public CXFA_Node {
public:
static int32_t GetDefaultRate() { return 50; }
diff --git a/xfa/fxfa/parser/cxfa_subform.h b/xfa/fxfa/parser/cxfa_subform.h
index 00b2e17..3d16d10 100644
--- a/xfa/fxfa/parser/cxfa_subform.h
+++ b/xfa/fxfa/parser/cxfa_subform.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Subform : public CXFA_Node {
+class CXFA_Subform final : public CXFA_Node {
public:
CXFA_Subform(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Subform() override;
diff --git a/xfa/fxfa/parser/cxfa_subformset.h b/xfa/fxfa/parser/cxfa_subformset.h
index 8e0f3ea..12b9e9f 100644
--- a/xfa/fxfa/parser/cxfa_subformset.h
+++ b/xfa/fxfa/parser/cxfa_subformset.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_SubformSet : public CXFA_Node {
+class CXFA_SubformSet final : public CXFA_Node {
public:
CXFA_SubformSet(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_SubformSet() override;
diff --git a/xfa/fxfa/parser/cxfa_subjectdn.h b/xfa/fxfa/parser/cxfa_subjectdn.h
index 0861d75..a4d94d7 100644
--- a/xfa/fxfa/parser/cxfa_subjectdn.h
+++ b/xfa/fxfa/parser/cxfa_subjectdn.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_SubjectDN : public CXFA_Node {
+class CXFA_SubjectDN final : public CXFA_Node {
public:
CXFA_SubjectDN(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_SubjectDN() override;
diff --git a/xfa/fxfa/parser/cxfa_subjectdns.h b/xfa/fxfa/parser/cxfa_subjectdns.h
index e9d739c..03d770b 100644
--- a/xfa/fxfa/parser/cxfa_subjectdns.h
+++ b/xfa/fxfa/parser/cxfa_subjectdns.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_SubjectDNs : public CXFA_Node {
+class CXFA_SubjectDNs final : public CXFA_Node {
public:
CXFA_SubjectDNs(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_SubjectDNs() override;
diff --git a/xfa/fxfa/parser/cxfa_submit.h b/xfa/fxfa/parser/cxfa_submit.h
index 24d5f11..8f7b4bf 100644
--- a/xfa/fxfa/parser/cxfa_submit.h
+++ b/xfa/fxfa/parser/cxfa_submit.h
@@ -10,7 +10,7 @@
#include "core/fxcrt/widestring.h"
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Submit : public CXFA_Node {
+class CXFA_Submit final : public CXFA_Node {
public:
CXFA_Submit(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Submit() override;
diff --git a/xfa/fxfa/parser/cxfa_submitformat.h b/xfa/fxfa/parser/cxfa_submitformat.h
index adca1e9..bd6df26 100644
--- a/xfa/fxfa/parser/cxfa_submitformat.h
+++ b/xfa/fxfa/parser/cxfa_submitformat.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_SubmitFormat : public CXFA_Node {
+class CXFA_SubmitFormat final : public CXFA_Node {
public:
CXFA_SubmitFormat(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_SubmitFormat() override;
diff --git a/xfa/fxfa/parser/cxfa_submiturl.h b/xfa/fxfa/parser/cxfa_submiturl.h
index 8d87db9..f1914db 100644
--- a/xfa/fxfa/parser/cxfa_submiturl.h
+++ b/xfa/fxfa/parser/cxfa_submiturl.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_SubmitUrl : public CXFA_Node {
+class CXFA_SubmitUrl final : public CXFA_Node {
public:
CXFA_SubmitUrl(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_SubmitUrl() override;
diff --git a/xfa/fxfa/parser/cxfa_subsetbelow.h b/xfa/fxfa/parser/cxfa_subsetbelow.h
index db912fe..230a563 100644
--- a/xfa/fxfa/parser/cxfa_subsetbelow.h
+++ b/xfa/fxfa/parser/cxfa_subsetbelow.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_SubsetBelow : public CXFA_Node {
+class CXFA_SubsetBelow final : public CXFA_Node {
public:
CXFA_SubsetBelow(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_SubsetBelow() override;
diff --git a/xfa/fxfa/parser/cxfa_suppressbanner.h b/xfa/fxfa/parser/cxfa_suppressbanner.h
index 79013a2..40057d0 100644
--- a/xfa/fxfa/parser/cxfa_suppressbanner.h
+++ b/xfa/fxfa/parser/cxfa_suppressbanner.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_SuppressBanner : public CXFA_Node {
+class CXFA_SuppressBanner final : public CXFA_Node {
public:
CXFA_SuppressBanner(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_SuppressBanner() override;
diff --git a/xfa/fxfa/parser/cxfa_tagged.h b/xfa/fxfa/parser/cxfa_tagged.h
index 50b1ba4..ff54423 100644
--- a/xfa/fxfa/parser/cxfa_tagged.h
+++ b/xfa/fxfa/parser/cxfa_tagged.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Tagged : public CXFA_Node {
+class CXFA_Tagged final : public CXFA_Node {
public:
CXFA_Tagged(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Tagged() override;
diff --git a/xfa/fxfa/parser/cxfa_template.h b/xfa/fxfa/parser/cxfa_template.h
index 34b035f..fa9b999 100644
--- a/xfa/fxfa/parser/cxfa_template.h
+++ b/xfa/fxfa/parser/cxfa_template.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Template : public CXFA_Node {
+class CXFA_Template final : public CXFA_Node {
public:
CXFA_Template(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Template() override;
diff --git a/xfa/fxfa/parser/cxfa_templatecache.h b/xfa/fxfa/parser/cxfa_templatecache.h
index 45953fe..dd0136d 100644
--- a/xfa/fxfa/parser/cxfa_templatecache.h
+++ b/xfa/fxfa/parser/cxfa_templatecache.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_TemplateCache : public CXFA_Node {
+class CXFA_TemplateCache final : public CXFA_Node {
public:
CXFA_TemplateCache(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_TemplateCache() override;
diff --git a/xfa/fxfa/parser/cxfa_text.h b/xfa/fxfa/parser/cxfa_text.h
index a75aef2..811ce1a 100644
--- a/xfa/fxfa/parser/cxfa_text.h
+++ b/xfa/fxfa/parser/cxfa_text.h
@@ -10,7 +10,7 @@
#include "core/fxcrt/fx_string.h"
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Text : public CXFA_Node {
+class CXFA_Text final : public CXFA_Node {
public:
CXFA_Text(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Text() override;
diff --git a/xfa/fxfa/parser/cxfa_textedit.h b/xfa/fxfa/parser/cxfa_textedit.h
index 97c9764..d4cafa4 100644
--- a/xfa/fxfa/parser/cxfa_textedit.h
+++ b/xfa/fxfa/parser/cxfa_textedit.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_TextEdit : public CXFA_Node {
+class CXFA_TextEdit final : public CXFA_Node {
public:
CXFA_TextEdit(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_TextEdit() override;
diff --git a/xfa/fxfa/parser/cxfa_thisproxy.h b/xfa/fxfa/parser/cxfa_thisproxy.h
index f429a2c..4ec6e4a 100644
--- a/xfa/fxfa/parser/cxfa_thisproxy.h
+++ b/xfa/fxfa/parser/cxfa_thisproxy.h
@@ -12,7 +12,7 @@
class CXFA_Node;
-class CXFA_ThisProxy : public CXFA_Object {
+class CXFA_ThisProxy final : public CXFA_Object {
public:
CXFA_ThisProxy(CXFA_Node* pThisNode, CXFA_Node* pScriptNode);
~CXFA_ThisProxy() override;
diff --git a/xfa/fxfa/parser/cxfa_threshold.h b/xfa/fxfa/parser/cxfa_threshold.h
index 4bde01a..597b134 100644
--- a/xfa/fxfa/parser/cxfa_threshold.h
+++ b/xfa/fxfa/parser/cxfa_threshold.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Threshold : public CXFA_Node {
+class CXFA_Threshold final : public CXFA_Node {
public:
CXFA_Threshold(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Threshold() override;
diff --git a/xfa/fxfa/parser/cxfa_time.h b/xfa/fxfa/parser/cxfa_time.h
index efc6d02..c189bc5 100644
--- a/xfa/fxfa/parser/cxfa_time.h
+++ b/xfa/fxfa/parser/cxfa_time.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Time : public CXFA_Node {
+class CXFA_Time final : public CXFA_Node {
public:
CXFA_Time(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Time() override;
diff --git a/xfa/fxfa/parser/cxfa_timepattern.h b/xfa/fxfa/parser/cxfa_timepattern.h
index f796047..7c150a9 100644
--- a/xfa/fxfa/parser/cxfa_timepattern.h
+++ b/xfa/fxfa/parser/cxfa_timepattern.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_TimePattern : public CXFA_Node {
+class CXFA_TimePattern final : public CXFA_Node {
public:
CXFA_TimePattern(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_TimePattern() override;
diff --git a/xfa/fxfa/parser/cxfa_timepatterns.h b/xfa/fxfa/parser/cxfa_timepatterns.h
index be9337d..13c05c8 100644
--- a/xfa/fxfa/parser/cxfa_timepatterns.h
+++ b/xfa/fxfa/parser/cxfa_timepatterns.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_TimePatterns : public CXFA_Node {
+class CXFA_TimePatterns final : public CXFA_Node {
public:
CXFA_TimePatterns(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_TimePatterns() override;
diff --git a/xfa/fxfa/parser/cxfa_timestamp.h b/xfa/fxfa/parser/cxfa_timestamp.h
index 7db73e9..6a6c1ac 100644
--- a/xfa/fxfa/parser/cxfa_timestamp.h
+++ b/xfa/fxfa/parser/cxfa_timestamp.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_TimeStamp : public CXFA_Node {
+class CXFA_TimeStamp final : public CXFA_Node {
public:
CXFA_TimeStamp(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_TimeStamp() override;
diff --git a/xfa/fxfa/parser/cxfa_to.h b/xfa/fxfa/parser/cxfa_to.h
index f418f59..8510bc2 100644
--- a/xfa/fxfa/parser/cxfa_to.h
+++ b/xfa/fxfa/parser/cxfa_to.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_To : public CXFA_Node {
+class CXFA_To final : public CXFA_Node {
public:
CXFA_To(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_To() override;
diff --git a/xfa/fxfa/parser/cxfa_tooltip.h b/xfa/fxfa/parser/cxfa_tooltip.h
index 0b13282..f46ca62 100644
--- a/xfa/fxfa/parser/cxfa_tooltip.h
+++ b/xfa/fxfa/parser/cxfa_tooltip.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_ToolTip : public CXFA_Node {
+class CXFA_ToolTip final : public CXFA_Node {
public:
CXFA_ToolTip(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_ToolTip() override;
diff --git a/xfa/fxfa/parser/cxfa_trace.h b/xfa/fxfa/parser/cxfa_trace.h
index dec95da..1d76f73 100644
--- a/xfa/fxfa/parser/cxfa_trace.h
+++ b/xfa/fxfa/parser/cxfa_trace.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Trace : public CXFA_Node {
+class CXFA_Trace final : public CXFA_Node {
public:
CXFA_Trace(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Trace() override;
diff --git a/xfa/fxfa/parser/cxfa_transform.h b/xfa/fxfa/parser/cxfa_transform.h
index fde54e6..6409c6c 100644
--- a/xfa/fxfa/parser/cxfa_transform.h
+++ b/xfa/fxfa/parser/cxfa_transform.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Transform : public CXFA_Node {
+class CXFA_Transform final : public CXFA_Node {
public:
CXFA_Transform(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Transform() override;
diff --git a/xfa/fxfa/parser/cxfa_traversal.h b/xfa/fxfa/parser/cxfa_traversal.h
index 47422b2..154211b 100644
--- a/xfa/fxfa/parser/cxfa_traversal.h
+++ b/xfa/fxfa/parser/cxfa_traversal.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Traversal : public CXFA_Node {
+class CXFA_Traversal final : public CXFA_Node {
public:
CXFA_Traversal(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Traversal() override;
diff --git a/xfa/fxfa/parser/cxfa_traverse.h b/xfa/fxfa/parser/cxfa_traverse.h
index de33cb7..dec5b89 100644
--- a/xfa/fxfa/parser/cxfa_traverse.h
+++ b/xfa/fxfa/parser/cxfa_traverse.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Traverse : public CXFA_Node {
+class CXFA_Traverse final : public CXFA_Node {
public:
CXFA_Traverse(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Traverse() override;
diff --git a/xfa/fxfa/parser/cxfa_type.h b/xfa/fxfa/parser/cxfa_type.h
index 5e7d467..ef696fd 100644
--- a/xfa/fxfa/parser/cxfa_type.h
+++ b/xfa/fxfa/parser/cxfa_type.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Type : public CXFA_Node {
+class CXFA_Type final : public CXFA_Node {
public:
CXFA_Type(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Type() override;
diff --git a/xfa/fxfa/parser/cxfa_typeface.h b/xfa/fxfa/parser/cxfa_typeface.h
index cbc90c4..7b07cae 100644
--- a/xfa/fxfa/parser/cxfa_typeface.h
+++ b/xfa/fxfa/parser/cxfa_typeface.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Typeface : public CXFA_Node {
+class CXFA_Typeface final : public CXFA_Node {
public:
CXFA_Typeface(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Typeface() override;
diff --git a/xfa/fxfa/parser/cxfa_typefaces.h b/xfa/fxfa/parser/cxfa_typefaces.h
index fa4b43f..b65c57d 100644
--- a/xfa/fxfa/parser/cxfa_typefaces.h
+++ b/xfa/fxfa/parser/cxfa_typefaces.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Typefaces : public CXFA_Node {
+class CXFA_Typefaces final : public CXFA_Node {
public:
CXFA_Typefaces(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Typefaces() override;
diff --git a/xfa/fxfa/parser/cxfa_ui.h b/xfa/fxfa/parser/cxfa_ui.h
index a4c46f4..d479e95 100644
--- a/xfa/fxfa/parser/cxfa_ui.h
+++ b/xfa/fxfa/parser/cxfa_ui.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Ui : public CXFA_Node {
+class CXFA_Ui final : public CXFA_Node {
public:
CXFA_Ui(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Ui() override;
diff --git a/xfa/fxfa/parser/cxfa_update.h b/xfa/fxfa/parser/cxfa_update.h
index 9e652ea..3e6bb6c 100644
--- a/xfa/fxfa/parser/cxfa_update.h
+++ b/xfa/fxfa/parser/cxfa_update.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Update : public CXFA_Node {
+class CXFA_Update final : public CXFA_Node {
public:
CXFA_Update(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Update() override;
diff --git a/xfa/fxfa/parser/cxfa_uri.h b/xfa/fxfa/parser/cxfa_uri.h
index bb31596..96252fc 100644
--- a/xfa/fxfa/parser/cxfa_uri.h
+++ b/xfa/fxfa/parser/cxfa_uri.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Uri : public CXFA_Node {
+class CXFA_Uri final : public CXFA_Node {
public:
CXFA_Uri(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Uri() override;
diff --git a/xfa/fxfa/parser/cxfa_user.h b/xfa/fxfa/parser/cxfa_user.h
index 3aad173..eca1a37 100644
--- a/xfa/fxfa/parser/cxfa_user.h
+++ b/xfa/fxfa/parser/cxfa_user.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_User : public CXFA_Node {
+class CXFA_User final : public CXFA_Node {
public:
CXFA_User(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_User() override;
diff --git a/xfa/fxfa/parser/cxfa_validate.h b/xfa/fxfa/parser/cxfa_validate.h
index a601308..140886f 100644
--- a/xfa/fxfa/parser/cxfa_validate.h
+++ b/xfa/fxfa/parser/cxfa_validate.h
@@ -11,7 +11,7 @@
class CXFA_Script;
-class CXFA_Validate : public CXFA_Node {
+class CXFA_Validate final : public CXFA_Node {
public:
CXFA_Validate(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Validate() override;
diff --git a/xfa/fxfa/parser/cxfa_validateapprovalsignatures.h b/xfa/fxfa/parser/cxfa_validateapprovalsignatures.h
index d7dac98..0504168 100644
--- a/xfa/fxfa/parser/cxfa_validateapprovalsignatures.h
+++ b/xfa/fxfa/parser/cxfa_validateapprovalsignatures.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_ValidateApprovalSignatures : public CXFA_Node {
+class CXFA_ValidateApprovalSignatures final : public CXFA_Node {
public:
CXFA_ValidateApprovalSignatures(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_ValidateApprovalSignatures() override;
diff --git a/xfa/fxfa/parser/cxfa_validationmessaging.h b/xfa/fxfa/parser/cxfa_validationmessaging.h
index 081b24c..1131788 100644
--- a/xfa/fxfa/parser/cxfa_validationmessaging.h
+++ b/xfa/fxfa/parser/cxfa_validationmessaging.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_ValidationMessaging : public CXFA_Node {
+class CXFA_ValidationMessaging final : public CXFA_Node {
public:
CXFA_ValidationMessaging(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_ValidationMessaging() override;
diff --git a/xfa/fxfa/parser/cxfa_value.h b/xfa/fxfa/parser/cxfa_value.h
index 47aeefe..ccd4c2c 100644
--- a/xfa/fxfa/parser/cxfa_value.h
+++ b/xfa/fxfa/parser/cxfa_value.h
@@ -17,7 +17,7 @@
class CXFA_Line;
class CXFA_Rectangle;
-class CXFA_Value : public CXFA_Node {
+class CXFA_Value final : public CXFA_Node {
public:
CXFA_Value(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Value() override;
diff --git a/xfa/fxfa/parser/cxfa_variables.h b/xfa/fxfa/parser/cxfa_variables.h
index 4c4cb4e..b9f6d72 100644
--- a/xfa/fxfa/parser/cxfa_variables.h
+++ b/xfa/fxfa/parser/cxfa_variables.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Variables : public CXFA_Node {
+class CXFA_Variables final : public CXFA_Node {
public:
CXFA_Variables(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Variables() override;
diff --git a/xfa/fxfa/parser/cxfa_version.h b/xfa/fxfa/parser/cxfa_version.h
index 34462fb..4b4f425 100644
--- a/xfa/fxfa/parser/cxfa_version.h
+++ b/xfa/fxfa/parser/cxfa_version.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Version : public CXFA_Node {
+class CXFA_Version final : public CXFA_Node {
public:
CXFA_Version(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Version() override;
diff --git a/xfa/fxfa/parser/cxfa_versioncontrol.h b/xfa/fxfa/parser/cxfa_versioncontrol.h
index 4688f55..733b817 100644
--- a/xfa/fxfa/parser/cxfa_versioncontrol.h
+++ b/xfa/fxfa/parser/cxfa_versioncontrol.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_VersionControl : public CXFA_Node {
+class CXFA_VersionControl final : public CXFA_Node {
public:
CXFA_VersionControl(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_VersionControl() override;
diff --git a/xfa/fxfa/parser/cxfa_viewerpreferences.h b/xfa/fxfa/parser/cxfa_viewerpreferences.h
index bf831ee..229061f 100644
--- a/xfa/fxfa/parser/cxfa_viewerpreferences.h
+++ b/xfa/fxfa/parser/cxfa_viewerpreferences.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_ViewerPreferences : public CXFA_Node {
+class CXFA_ViewerPreferences final : public CXFA_Node {
public:
CXFA_ViewerPreferences(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_ViewerPreferences() override;
diff --git a/xfa/fxfa/parser/cxfa_webclient.h b/xfa/fxfa/parser/cxfa_webclient.h
index b778689..41da046 100644
--- a/xfa/fxfa/parser/cxfa_webclient.h
+++ b/xfa/fxfa/parser/cxfa_webclient.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_WebClient : public CXFA_Node {
+class CXFA_WebClient final : public CXFA_Node {
public:
CXFA_WebClient(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_WebClient() override;
diff --git a/xfa/fxfa/parser/cxfa_whitespace.h b/xfa/fxfa/parser/cxfa_whitespace.h
index 62dde48..096a2da 100644
--- a/xfa/fxfa/parser/cxfa_whitespace.h
+++ b/xfa/fxfa/parser/cxfa_whitespace.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Whitespace : public CXFA_Node {
+class CXFA_Whitespace final : public CXFA_Node {
public:
CXFA_Whitespace(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Whitespace() override;
diff --git a/xfa/fxfa/parser/cxfa_window.h b/xfa/fxfa/parser/cxfa_window.h
index 852bc68..fc2fcb7 100644
--- a/xfa/fxfa/parser/cxfa_window.h
+++ b/xfa/fxfa/parser/cxfa_window.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Window : public CXFA_Node {
+class CXFA_Window final : public CXFA_Node {
public:
CXFA_Window(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Window() override;
diff --git a/xfa/fxfa/parser/cxfa_wsdladdress.h b/xfa/fxfa/parser/cxfa_wsdladdress.h
index 83c965c..e65bd6f 100644
--- a/xfa/fxfa/parser/cxfa_wsdladdress.h
+++ b/xfa/fxfa/parser/cxfa_wsdladdress.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_WsdlAddress : public CXFA_Node {
+class CXFA_WsdlAddress final : public CXFA_Node {
public:
CXFA_WsdlAddress(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_WsdlAddress() override;
diff --git a/xfa/fxfa/parser/cxfa_wsdlconnection.h b/xfa/fxfa/parser/cxfa_wsdlconnection.h
index 6c349cf..b2238fd 100644
--- a/xfa/fxfa/parser/cxfa_wsdlconnection.h
+++ b/xfa/fxfa/parser/cxfa_wsdlconnection.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_WsdlConnection : public CXFA_Node {
+class CXFA_WsdlConnection final : public CXFA_Node {
public:
CXFA_WsdlConnection(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_WsdlConnection() override;
diff --git a/xfa/fxfa/parser/cxfa_xdc.h b/xfa/fxfa/parser/cxfa_xdc.h
index 0eb43d5..81cbb57 100644
--- a/xfa/fxfa/parser/cxfa_xdc.h
+++ b/xfa/fxfa/parser/cxfa_xdc.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Xdc : public CXFA_Node {
+class CXFA_Xdc final : public CXFA_Node {
public:
CXFA_Xdc(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Xdc() override;
diff --git a/xfa/fxfa/parser/cxfa_xdp.h b/xfa/fxfa/parser/cxfa_xdp.h
index 38b450e..16ad5d8 100644
--- a/xfa/fxfa/parser/cxfa_xdp.h
+++ b/xfa/fxfa/parser/cxfa_xdp.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Xdp : public CXFA_Node {
+class CXFA_Xdp final : public CXFA_Node {
public:
CXFA_Xdp(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Xdp() override;
diff --git a/xfa/fxfa/parser/cxfa_xfa.h b/xfa/fxfa/parser/cxfa_xfa.h
index 137b601..d7d33df 100644
--- a/xfa/fxfa/parser/cxfa_xfa.h
+++ b/xfa/fxfa/parser/cxfa_xfa.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Xfa : public CXFA_Node {
+class CXFA_Xfa final : public CXFA_Node {
public:
CXFA_Xfa(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Xfa() override;
diff --git a/xfa/fxfa/parser/cxfa_xmlconnection.h b/xfa/fxfa/parser/cxfa_xmlconnection.h
index f9158c6..33cc038 100644
--- a/xfa/fxfa/parser/cxfa_xmlconnection.h
+++ b/xfa/fxfa/parser/cxfa_xmlconnection.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_XmlConnection : public CXFA_Node {
+class CXFA_XmlConnection final : public CXFA_Node {
public:
CXFA_XmlConnection(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_XmlConnection() override;
diff --git a/xfa/fxfa/parser/cxfa_xmllocale.h b/xfa/fxfa/parser/cxfa_xmllocale.h
index de3de41..07d417e 100644
--- a/xfa/fxfa/parser/cxfa_xmllocale.h
+++ b/xfa/fxfa/parser/cxfa_xmllocale.h
@@ -16,7 +16,7 @@
class CFX_XMLDocument;
class CFX_XMLElement;
-class CXFA_XMLLocale : public LocaleIface {
+class CXFA_XMLLocale final : public LocaleIface {
public:
static std::unique_ptr<CXFA_XMLLocale> Create(pdfium::span<uint8_t> data);
diff --git a/xfa/fxfa/parser/cxfa_xsdconnection.h b/xfa/fxfa/parser/cxfa_xsdconnection.h
index 652d45e..8cdef80 100644
--- a/xfa/fxfa/parser/cxfa_xsdconnection.h
+++ b/xfa/fxfa/parser/cxfa_xsdconnection.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_XsdConnection : public CXFA_Node {
+class CXFA_XsdConnection final : public CXFA_Node {
public:
CXFA_XsdConnection(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_XsdConnection() override;
diff --git a/xfa/fxfa/parser/cxfa_xsl.h b/xfa/fxfa/parser/cxfa_xsl.h
index d921125..1be8d4b 100644
--- a/xfa/fxfa/parser/cxfa_xsl.h
+++ b/xfa/fxfa/parser/cxfa_xsl.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Xsl : public CXFA_Node {
+class CXFA_Xsl final : public CXFA_Node {
public:
CXFA_Xsl(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Xsl() override;
diff --git a/xfa/fxfa/parser/cxfa_zpl.h b/xfa/fxfa/parser/cxfa_zpl.h
index ee8f925..6433015 100644
--- a/xfa/fxfa/parser/cxfa_zpl.h
+++ b/xfa/fxfa/parser/cxfa_zpl.h
@@ -9,7 +9,7 @@
#include "xfa/fxfa/parser/cxfa_node.h"
-class CXFA_Zpl : public CXFA_Node {
+class CXFA_Zpl final : public CXFA_Node {
public:
CXFA_Zpl(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Zpl() override;