Initialize various class members in the headers.
Then change ctors to "= default" when possible and also mark some
members as const.
Bug: pdfium:1669
Change-Id: I90b36f32567efb3dd663dde19ab3238f4a1fbb68
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/79876
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/edit/cpdf_creator.cpp b/core/fpdfapi/edit/cpdf_creator.cpp
index b74b08a..e259f01 100644
--- a/core/fpdfapi/edit/cpdf_creator.cpp
+++ b/core/fpdfapi/edit/cpdf_creator.cpp
@@ -47,18 +47,15 @@
private:
bool Flush();
- FX_FILESIZE offset_;
- size_t current_length_;
+ FX_FILESIZE offset_ = 0;
+ size_t current_length_ = 0;
std::vector<uint8_t, FxAllocAllocator<uint8_t>> buffer_;
RetainPtr<IFX_RetainableWriteStream> backing_file_;
};
CFX_FileBufferArchive::CFX_FileBufferArchive(
const RetainPtr<IFX_RetainableWriteStream>& file)
- : offset_(0),
- current_length_(0),
- buffer_(kArchiveBufferSize),
- backing_file_(file) {
+ : buffer_(kArchiveBufferSize), backing_file_(file) {
DCHECK(file);
}
diff --git a/core/fpdfapi/page/cpdf_textobject.cpp b/core/fpdfapi/page/cpdf_textobject.cpp
index 8c3825d..185606b 100644
--- a/core/fpdfapi/page/cpdf_textobject.cpp
+++ b/core/fpdfapi/page/cpdf_textobject.cpp
@@ -15,7 +15,7 @@
#define ISLATINWORD(u) (u != 0x20 && u <= 0x28FF)
-CPDF_TextObjectItem::CPDF_TextObjectItem() : m_CharCode(0) {}
+CPDF_TextObjectItem::CPDF_TextObjectItem() = default;
CPDF_TextObjectItem::~CPDF_TextObjectItem() = default;
diff --git a/core/fpdfapi/page/cpdf_textobject.h b/core/fpdfapi/page/cpdf_textobject.h
index cc8f64a..4735eea 100644
--- a/core/fpdfapi/page/cpdf_textobject.h
+++ b/core/fpdfapi/page/cpdf_textobject.h
@@ -20,7 +20,7 @@
CPDF_TextObjectItem();
~CPDF_TextObjectItem();
- uint32_t m_CharCode;
+ uint32_t m_CharCode = 0;
CFX_PointF m_Origin;
};
diff --git a/core/fpdfapi/parser/cpdf_flateencoder.cpp b/core/fpdfapi/parser/cpdf_flateencoder.cpp
index 7d47c1a..d3440f2 100644
--- a/core/fpdfapi/parser/cpdf_flateencoder.cpp
+++ b/core/fpdfapi/parser/cpdf_flateencoder.cpp
@@ -20,7 +20,7 @@
CPDF_FlateEncoder::CPDF_FlateEncoder(const CPDF_Stream* pStream,
bool bFlateEncode)
- : m_pAcc(pdfium::MakeRetain<CPDF_StreamAcc>(pStream)), m_dwSize(0) {
+ : m_pAcc(pdfium::MakeRetain<CPDF_StreamAcc>(pStream)) {
m_pAcc->LoadAllDataRaw();
bool bHasFilter = pStream->HasFilter();
diff --git a/core/fpdfapi/parser/cpdf_flateencoder.h b/core/fpdfapi/parser/cpdf_flateencoder.h
index 328fce7..4a86423 100644
--- a/core/fpdfapi/parser/cpdf_flateencoder.h
+++ b/core/fpdfapi/parser/cpdf_flateencoder.h
@@ -34,7 +34,7 @@
private:
RetainPtr<CPDF_StreamAcc> m_pAcc;
- uint32_t m_dwSize;
+ uint32_t m_dwSize = 0;
MaybeOwned<uint8_t, FxFreeDeleter> m_pData;
// Only one of these two pointers is valid at any time.
diff --git a/core/fpdfapi/parser/cpdf_indirect_object_holder.cpp b/core/fpdfapi/parser/cpdf_indirect_object_holder.cpp
index f30753d..568c0bb 100644
--- a/core/fpdfapi/parser/cpdf_indirect_object_holder.cpp
+++ b/core/fpdfapi/parser/cpdf_indirect_object_holder.cpp
@@ -22,7 +22,7 @@
} // namespace
CPDF_IndirectObjectHolder::CPDF_IndirectObjectHolder()
- : m_LastObjNum(0), m_pByteStringPool(std::make_unique<ByteStringPool>()) {}
+ : m_pByteStringPool(std::make_unique<ByteStringPool>()) {}
CPDF_IndirectObjectHolder::~CPDF_IndirectObjectHolder() {
m_pByteStringPool.DeleteObject(); // Make weak.
diff --git a/core/fpdfapi/parser/cpdf_indirect_object_holder.h b/core/fpdfapi/parser/cpdf_indirect_object_holder.h
index 51aecec..1b1f861 100644
--- a/core/fpdfapi/parser/cpdf_indirect_object_holder.h
+++ b/core/fpdfapi/parser/cpdf_indirect_object_holder.h
@@ -76,7 +76,7 @@
virtual RetainPtr<CPDF_Object> ParseIndirectObject(uint32_t objnum);
private:
- uint32_t m_LastObjNum;
+ uint32_t m_LastObjNum = 0;
std::map<uint32_t, RetainPtr<CPDF_Object>> m_IndirectObjs;
WeakPtr<ByteStringPool> m_pByteStringPool;
};
diff --git a/core/fxcrt/cfx_bitstream.cpp b/core/fxcrt/cfx_bitstream.cpp
index db0c852..7b1e502 100644
--- a/core/fxcrt/cfx_bitstream.cpp
+++ b/core/fxcrt/cfx_bitstream.cpp
@@ -13,7 +13,7 @@
#include "third_party/base/check.h"
CFX_BitStream::CFX_BitStream(pdfium::span<const uint8_t> pData)
- : m_BitPos(0), m_BitSize(pData.size() * 8), m_pData(pData.data()) {
+ : m_BitSize(pData.size() * 8), m_pData(pData.data()) {
DCHECK(pData.size() <= std::numeric_limits<uint32_t>::max() / 8);
}
diff --git a/core/fxcrt/cfx_bitstream.h b/core/fxcrt/cfx_bitstream.h
index baa2a9f..731a637 100644
--- a/core/fxcrt/cfx_bitstream.h
+++ b/core/fxcrt/cfx_bitstream.h
@@ -31,9 +31,9 @@
}
private:
- uint32_t m_BitPos;
- uint32_t m_BitSize;
- UnownedPtr<const uint8_t> m_pData;
+ uint32_t m_BitPos = 0;
+ const uint32_t m_BitSize;
+ UnownedPtr<const uint8_t> const m_pData;
};
#endif // CORE_FXCRT_CFX_BITSTREAM_H_
diff --git a/core/fxcrt/cfx_datetime.h b/core/fxcrt/cfx_datetime.h
index b49c153..9fd6763 100644
--- a/core/fxcrt/cfx_datetime.h
+++ b/core/fxcrt/cfx_datetime.h
@@ -16,14 +16,7 @@
public:
static CFX_DateTime Now();
- CFX_DateTime()
- : year_(0),
- month_(0),
- day_(0),
- hour_(0),
- minute_(0),
- second_(0),
- millisecond_(0) {}
+ CFX_DateTime() = default;
CFX_DateTime(int32_t year,
uint8_t month,
uint8_t day,
@@ -82,13 +75,13 @@
bool operator==(const CFX_DateTime& other) const;
private:
- int32_t year_;
- uint8_t month_;
- uint8_t day_;
- uint8_t hour_;
- uint8_t minute_;
- uint8_t second_;
- uint16_t millisecond_;
+ int32_t year_ = 0;
+ uint8_t month_ = 0;
+ uint8_t day_ = 0;
+ uint8_t hour_ = 0;
+ uint8_t minute_ = 0;
+ uint8_t second_ = 0;
+ uint16_t millisecond_ = 0;
};
#endif // CORE_FXCRT_CFX_DATETIME_H_
diff --git a/core/fxcrt/cfx_seekablestreamproxy.cpp b/core/fxcrt/cfx_seekablestreamproxy.cpp
index 76d5582..be1d1ec 100644
--- a/core/fxcrt/cfx_seekablestreamproxy.cpp
+++ b/core/fxcrt/cfx_seekablestreamproxy.cpp
@@ -17,7 +17,6 @@
#include <vector>
#include "build/build_config.h"
-#include "core/fxcrt/fx_codepage.h"
#include "core/fxcrt/fx_extension.h"
#include "core/fxcrt/fx_memory_wrappers.h"
#include "core/fxcrt/fx_safe_types.h"
@@ -105,10 +104,7 @@
CFX_SeekableStreamProxy::CFX_SeekableStreamProxy(
const RetainPtr<IFX_SeekableReadStream>& stream)
- : m_wCodePage(FX_CODEPAGE_DefANSI),
- m_wBOMLength(0),
- m_iPosition(0),
- m_pStream(stream) {
+ : m_pStream(stream) {
DCHECK(m_pStream);
Seek(From::Begin, 0);
diff --git a/core/fxcrt/cfx_seekablestreamproxy.h b/core/fxcrt/cfx_seekablestreamproxy.h
index b169606..bfff049 100644
--- a/core/fxcrt/cfx_seekablestreamproxy.h
+++ b/core/fxcrt/cfx_seekablestreamproxy.h
@@ -7,6 +7,7 @@
#ifndef CORE_FXCRT_CFX_SEEKABLESTREAMPROXY_H_
#define CORE_FXCRT_CFX_SEEKABLESTREAMPROXY_H_
+#include "core/fxcrt/fx_codepage.h"
#include "core/fxcrt/fx_stream.h"
#include "core/fxcrt/fx_system.h"
#include "core/fxcrt/retain_ptr.h"
@@ -38,10 +39,10 @@
void Seek(From eSeek, FX_FILESIZE iOffset);
size_t ReadData(uint8_t* pBuffer, size_t iBufferSize);
- uint16_t m_wCodePage;
- size_t m_wBOMLength;
- FX_FILESIZE m_iPosition;
- RetainPtr<IFX_SeekableReadStream> m_pStream;
+ uint16_t m_wCodePage = FX_CODEPAGE_DefANSI;
+ size_t m_wBOMLength = 0;
+ FX_FILESIZE m_iPosition = 0;
+ RetainPtr<IFX_SeekableReadStream> const m_pStream;
};
#endif // CORE_FXCRT_CFX_SEEKABLESTREAMPROXY_H_
diff --git a/core/fxcrt/css/cfx_cssrulecollection.cpp b/core/fxcrt/css/cfx_cssrulecollection.cpp
index b85d4e9..cbb799e 100644
--- a/core/fxcrt/css/cfx_cssrulecollection.cpp
+++ b/core/fxcrt/css/cfx_cssrulecollection.cpp
@@ -15,7 +15,7 @@
#include "core/fxcrt/css/cfx_cssstylesheet.h"
#include "core/fxcrt/css/cfx_csssyntaxparser.h"
-CFX_CSSRuleCollection::CFX_CSSRuleCollection() : m_iSelectors(0) {}
+CFX_CSSRuleCollection::CFX_CSSRuleCollection() = default;
CFX_CSSRuleCollection::~CFX_CSSRuleCollection() {
Clear();
diff --git a/core/fxcrt/css/cfx_cssrulecollection.h b/core/fxcrt/css/cfx_cssrulecollection.h
index 72ae58c..7b6d652 100644
--- a/core/fxcrt/css/cfx_cssrulecollection.h
+++ b/core/fxcrt/css/cfx_cssrulecollection.h
@@ -43,7 +43,7 @@
CFX_CSSStyleRule* pRule);
std::map<uint32_t, std::vector<std::unique_ptr<Data>>> m_TagRules;
- int32_t m_iSelectors;
+ int32_t m_iSelectors = 0;
};
#endif // CORE_FXCRT_CSS_CFX_CSSRULECOLLECTION_H_
diff --git a/core/fxcrt/string_data_template.cpp b/core/fxcrt/string_data_template.cpp
index 7b0edfb..ad87af6 100644
--- a/core/fxcrt/string_data_template.cpp
+++ b/core/fxcrt/string_data_template.cpp
@@ -90,7 +90,7 @@
template <typename CharType>
StringDataTemplate<CharType>::StringDataTemplate(size_t dataLen,
size_t allocLen)
- : m_nRefs(0), m_nDataLength(dataLen), m_nAllocLength(allocLen) {
+ : m_nDataLength(dataLen), m_nAllocLength(allocLen) {
DCHECK(dataLen >= 0);
DCHECK(dataLen <= allocLen);
m_String[dataLen] = 0;
diff --git a/core/fxcrt/string_data_template.h b/core/fxcrt/string_data_template.h
index da471af..8370186 100644
--- a/core/fxcrt/string_data_template.h
+++ b/core/fxcrt/string_data_template.h
@@ -33,13 +33,13 @@
// Since the count increments with each new pointer, the largest value is
// the number of pointers that can fit into the address space. The size of
// the address space itself is a good upper bound on it.
- intptr_t m_nRefs;
+ intptr_t m_nRefs = 0;
// These lengths are in terms of number of characters, not bytes, and do not
// include the terminating NUL character, but the underlying buffer is sized
// to be capable of holding it.
size_t m_nDataLength;
- size_t m_nAllocLength;
+ const size_t m_nAllocLength;
// Not really 1, variable size.
CharType m_String[1];
diff --git a/core/fxcrt/weak_ptr_unittest.cpp b/core/fxcrt/weak_ptr_unittest.cpp
index f4026fb..e2a2337 100644
--- a/core/fxcrt/weak_ptr_unittest.cpp
+++ b/core/fxcrt/weak_ptr_unittest.cpp
@@ -19,7 +19,7 @@
class PseudoDeletable {
public:
- PseudoDeletable() : delete_count_(0) {}
+ PseudoDeletable() = default;
void Release() {
++delete_count_;
next_.Reset();
@@ -28,7 +28,7 @@
int delete_count() const { return delete_count_; }
private:
- int delete_count_;
+ int delete_count_ = 0;
WeakTestPtr next_;
};
diff --git a/core/fxge/cfx_folderfontinfo.cpp b/core/fxge/cfx_folderfontinfo.cpp
index 787bbee..6109370 100644
--- a/core/fxge/cfx_folderfontinfo.cpp
+++ b/core/fxge/cfx_folderfontinfo.cpp
@@ -413,6 +413,4 @@
m_FaceName(faceName),
m_FontTables(fontTables),
m_FontOffset(fontOffset),
- m_FileSize(fileSize),
- m_Styles(0),
- m_Charsets(0) {}
+ m_FileSize(fileSize) {}
diff --git a/core/fxge/cfx_folderfontinfo.h b/core/fxge/cfx_folderfontinfo.h
index e05dae2..05e8fb7 100644
--- a/core/fxge/cfx_folderfontinfo.h
+++ b/core/fxge/cfx_folderfontinfo.h
@@ -60,8 +60,8 @@
const ByteString m_FontTables;
const uint32_t m_FontOffset;
const uint32_t m_FileSize;
- uint32_t m_Styles;
- uint32_t m_Charsets;
+ uint32_t m_Styles = 0;
+ uint32_t m_Charsets = 0;
};
void ScanPath(const ByteString& path);
diff --git a/core/fxge/dib/cfx_dibbase.cpp b/core/fxge/dib/cfx_dibbase.cpp
index 30248ff..493e449 100644
--- a/core/fxge/dib/cfx_dibbase.cpp
+++ b/core/fxge/dib/cfx_dibbase.cpp
@@ -65,11 +65,11 @@
std::vector<uint32_t> m_Palette;
// (Amount, Color) pairs
std::vector<std::pair<uint32_t, uint32_t>> m_Luts;
- int m_lut;
+ int m_lut = 0;
};
CFX_Palette::CFX_Palette(const RetainPtr<CFX_DIBBase>& pBitmap)
- : m_Palette(256), m_Luts(4096), m_lut(0) {
+ : m_Palette(256), m_Luts(4096) {
int bpp = pBitmap->GetBPP() / 8;
int width = pBitmap->GetWidth();
int height = pBitmap->GetHeight();
diff --git a/core/fxge/win32/cgdi_plus_ext.cpp b/core/fxge/win32/cgdi_plus_ext.cpp
index 2d43e7b..1b508c2 100644
--- a/core/fxge/win32/cgdi_plus_ext.cpp
+++ b/core/fxge/win32/cgdi_plus_ext.cpp
@@ -468,7 +468,7 @@
class GpStream final : public IStream {
public:
- GpStream() : m_RefCount(1), m_ReadPos(0) {}
+ GpStream() = default;
~GpStream() = default;
// IUnknown
@@ -597,8 +597,8 @@
}
private:
- LONG m_RefCount;
- std::streamoff m_ReadPos;
+ LONG m_RefCount = 1;
+ std::streamoff m_ReadPos = 0;
std::ostringstream m_InterStream;
};
diff --git a/testing/image_diff/image_diff.cpp b/testing/image_diff/image_diff.cpp
index 4afbc77..23109af 100644
--- a/testing/image_diff/image_diff.cpp
+++ b/testing/image_diff/image_diff.cpp
@@ -37,7 +37,7 @@
class Image {
public:
- Image() : w_(0), h_(0) {}
+ Image() = default;
Image(const Image& image) : w_(image.w_), h_(image.h_), data_(image.data_) {}
bool has_image() const { return w_ > 0 && h_ > 0; }
@@ -108,8 +108,8 @@
size_t pixel_address(int x, int y) const { return (y * w_ + x) * 4; }
// Pixel dimensions of the image.
- int w_;
- int h_;
+ int w_ = 0;
+ int h_ = 0;
std::vector<uint8_t> data_;
};
diff --git a/xfa/fde/cfde_texteditengine.cpp b/xfa/fde/cfde_texteditengine.cpp
index bba7988..29365c7 100644
--- a/xfa/fde/cfde_texteditengine.cpp
+++ b/xfa/fde/cfde_texteditengine.cpp
@@ -7,7 +7,6 @@
#include "xfa/fde/cfde_texteditengine.h"
#include <algorithm>
-#include <limits>
#include <utility>
#include "core/fxcrt/fx_extension.h"
@@ -20,10 +19,6 @@
namespace {
-constexpr size_t kMaxEditOperations = 128;
-constexpr size_t kGapSize = 128;
-constexpr size_t kPageWidthMax = 0xffff;
-
class InsertOperation final : public CFDE_TextEditEngine::Operation {
public:
InsertOperation(CFDE_TextEditEngine* engine,
@@ -123,32 +118,7 @@
} // namespace
-CFDE_TextEditEngine::CFDE_TextEditEngine()
- : font_color_(0xff000000),
- font_size_(10.0f),
- line_spacing_(10.0f),
- text_length_(0),
- gap_position_(0),
- gap_size_(kGapSize),
- available_width_(kPageWidthMax),
- character_limit_(std::numeric_limits<size_t>::max()),
- visible_line_count_(1),
- next_operation_index_to_undo_(kMaxEditOperations - 1),
- next_operation_index_to_insert_(0),
- max_edit_operations_(kMaxEditOperations),
- character_alignment_(CFX_TxtLineAlignment_Left),
- has_character_limit_(false),
- is_comb_text_(false),
- is_dirty_(false),
- validation_enabled_(false),
- is_multiline_(false),
- is_linewrap_enabled_(false),
- limit_horizontal_area_(false),
- limit_vertical_area_(false),
- password_mode_(false),
- password_alias_(L'*'),
- has_selection_(false),
- selection_({0, 0}) {
+CFDE_TextEditEngine::CFDE_TextEditEngine() {
content_.resize(gap_size_);
operation_buffer_.resize(max_edit_operations_);
@@ -1219,7 +1189,7 @@
}
CFDE_TextEditEngine::Iterator::Iterator(const CFDE_TextEditEngine* engine)
- : engine_(engine), current_position_(-1) {}
+ : engine_(engine) {}
CFDE_TextEditEngine::Iterator::~Iterator() = default;
diff --git a/xfa/fde/cfde_texteditengine.h b/xfa/fde/cfde_texteditengine.h
index dd039a0..58948b1 100644
--- a/xfa/fde/cfde_texteditengine.h
+++ b/xfa/fde/cfde_texteditengine.h
@@ -7,6 +7,7 @@
#ifndef XFA_FDE_CFDE_TEXTEDITENGINE_H_
#define XFA_FDE_CFDE_TEXTEDITENGINE_H_
+#include <limits>
#include <memory>
#include <utility>
#include <vector>
@@ -51,8 +52,8 @@
bool IsEOF(bool bPrev) const;
private:
- UnownedPtr<const CFDE_TextEditEngine> engine_;
- int32_t current_position_;
+ UnownedPtr<const CFDE_TextEditEngine> const engine_;
+ int32_t current_position_ = -1;
};
class Operation {
@@ -183,6 +184,15 @@
void SetMaxEditOperationsForTesting(size_t max);
private:
+ struct Selection {
+ size_t start_idx;
+ size_t count;
+ };
+
+ static constexpr size_t kGapSize = 128;
+ static constexpr size_t kMaxEditOperations = 128;
+ static constexpr size_t kPageWidthMax = 0xffff;
+
void SetCombTextWidth();
void AdjustGap(size_t idx, size_t length);
void RebuildPieces();
@@ -198,50 +208,45 @@
}
std::vector<CFX_RectF> GetCharRects(const FDE_TEXTEDITPIECE& piece);
- struct Selection {
- size_t start_idx;
- size_t count;
- };
-
CFX_RectF contents_bounding_box_;
UnownedPtr<Delegate> delegate_;
std::vector<FDE_TEXTEDITPIECE> text_piece_info_;
std::vector<size_t> char_widths_;
CFGAS_TxtBreak text_break_;
RetainPtr<CFGAS_GEFont> font_;
- FX_ARGB font_color_;
- float font_size_;
- float line_spacing_;
+ FX_ARGB font_color_ = 0xff000000;
+ float font_size_ = 10.0f;
+ float line_spacing_ = 10.0f;
std::vector<WideString::CharType> content_;
- size_t text_length_;
+ size_t text_length_ = 0;
// See e.g. https://en.wikipedia.org/wiki/Gap_buffer
- size_t gap_position_;
- size_t gap_size_;
+ size_t gap_position_ = 0;
+ size_t gap_size_ = kGapSize;
- size_t available_width_;
- size_t character_limit_;
- size_t visible_line_count_;
+ size_t available_width_ = kPageWidthMax;
+ size_t character_limit_ = std::numeric_limits<size_t>::max();
+ size_t visible_line_count_ = 1;
// Ring buffer of edit operations
std::vector<std::unique_ptr<Operation>> operation_buffer_;
// Next edit operation to undo.
- size_t next_operation_index_to_undo_;
+ size_t next_operation_index_to_undo_ = kMaxEditOperations - 1;
// Next index to insert an edit operation into.
- size_t next_operation_index_to_insert_;
- size_t max_edit_operations_;
- uint32_t character_alignment_;
- bool has_character_limit_;
- bool is_comb_text_;
- bool is_dirty_;
- bool validation_enabled_;
- bool is_multiline_;
- bool is_linewrap_enabled_;
- bool limit_horizontal_area_;
- bool limit_vertical_area_;
- bool password_mode_;
- wchar_t password_alias_;
- bool has_selection_;
- Selection selection_;
+ size_t next_operation_index_to_insert_ = 0;
+ size_t max_edit_operations_ = kMaxEditOperations;
+ uint32_t character_alignment_ = CFX_TxtLineAlignment_Left;
+ bool has_character_limit_ = false;
+ bool is_comb_text_ = false;
+ bool is_dirty_ = false;
+ bool validation_enabled_ = false;
+ bool is_multiline_ = false;
+ bool is_linewrap_enabled_ = false;
+ bool limit_horizontal_area_ = false;
+ bool limit_vertical_area_ = false;
+ bool password_mode_ = false;
+ wchar_t password_alias_ = L'*';
+ bool has_selection_ = false;
+ Selection selection_{0, 0};
};
#endif // XFA_FDE_CFDE_TEXTEDITENGINE_H_
diff --git a/xfa/fgas/font/cfgas_fontmgr.cpp b/xfa/fgas/font/cfgas_fontmgr.cpp
index 9a45efc..af46421 100644
--- a/xfa/fgas/font/cfgas_fontmgr.cpp
+++ b/xfa/fgas/font/cfgas_fontmgr.cpp
@@ -599,8 +599,7 @@
} // namespace
-CFGAS_FontDescriptor::CFGAS_FontDescriptor()
- : m_nFaceIndex(0), m_dwFontStyles(0), m_dwUsb(), m_dwCsb() {}
+CFGAS_FontDescriptor::CFGAS_FontDescriptor() = default;
CFGAS_FontDescriptor::~CFGAS_FontDescriptor() = default;
diff --git a/xfa/fgas/font/cfgas_fontmgr.h b/xfa/fgas/font/cfgas_fontmgr.h
index 4b5d59e..ac7171b 100644
--- a/xfa/fgas/font/cfgas_fontmgr.h
+++ b/xfa/fgas/font/cfgas_fontmgr.h
@@ -68,12 +68,12 @@
CFGAS_FontDescriptor();
~CFGAS_FontDescriptor();
- int32_t m_nFaceIndex;
- uint32_t m_dwFontStyles;
+ int32_t m_nFaceIndex = 0;
+ uint32_t m_dwFontStyles = 0;
WideString m_wsFaceName;
std::vector<WideString> m_wsFamilyNames;
- uint32_t m_dwUsb[4];
- uint32_t m_dwCsb[2];
+ uint32_t m_dwUsb[4] = {};
+ uint32_t m_dwCsb[2] = {};
};
class CFGAS_FontDescriptorInfo {