Switch from absl::optional to std::optional Since absl::optional is using std::optional underneath, just switch to using std::optional directly. Change-Id: Ide39da5ac9c7551a710e653a60e15f022046df7b Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/116290 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Thomas Sepez <tsepez@google.com>
diff --git a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp index c39493d..aa16328 100644 --- a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp +++ b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
@@ -591,7 +591,7 @@ } ByteString name; - absl::optional<ByteString> maybe_name = + std::optional<ByteString> maybe_name = m_pObjHolder->GraphicsMapSearch(graphD); if (maybe_name.has_value()) { name = std::move(maybe_name.value()); @@ -630,7 +630,7 @@ defaultGraphics.strokeAlpha = 1.0f; defaultGraphics.blendType = BlendMode::kNormal; - absl::optional<ByteString> maybe_name = + std::optional<ByteString> maybe_name = m_pObjHolder->GraphicsMapSearch(defaultGraphics); if (maybe_name.has_value()) return maybe_name.value(); @@ -675,7 +675,7 @@ data.baseFont = pFont->GetBaseFontName(); ByteString dict_name; - absl::optional<ByteString> maybe_name = m_pObjHolder->FontsMapSearch(data); + std::optional<ByteString> maybe_name = m_pObjHolder->FontsMapSearch(data); if (maybe_name.has_value()) { dict_name = std::move(maybe_name.value()); } else {
diff --git a/core/fpdfapi/font/cfx_cttgsubtable.cpp b/core/fpdfapi/font/cfx_cttgsubtable.cpp index c19649e..bf9566c 100644 --- a/core/fpdfapi/font/cfx_cttgsubtable.cpp +++ b/core/fpdfapi/font/cfx_cttgsubtable.cpp
@@ -72,7 +72,7 @@ uint32_t CFX_CTTGSUBTable::GetVerticalGlyph(uint32_t glyphnum) const { for (uint32_t item : feature_set_) { - absl::optional<uint32_t> result = + std::optional<uint32_t> result = GetVerticalGlyphSub(feature_list_[item], glyphnum); if (result.has_value()) return result.value(); @@ -80,7 +80,7 @@ return 0; } -absl::optional<uint32_t> CFX_CTTGSUBTable::GetVerticalGlyphSub( +std::optional<uint32_t> CFX_CTTGSUBTable::GetVerticalGlyphSub( const FeatureRecord& feature, uint32_t glyphnum) const { for (int index : feature.lookup_list_indices) { @@ -90,15 +90,15 @@ if (lookup_list_[index].lookup_type != 1) { continue; } - absl::optional<uint32_t> result = + std::optional<uint32_t> result = GetVerticalGlyphSub2(lookup_list_[index], glyphnum); if (result.has_value()) return result.value(); } - return absl::nullopt; + return std::nullopt; } -absl::optional<uint32_t> CFX_CTTGSUBTable::GetVerticalGlyphSub2( +std::optional<uint32_t> CFX_CTTGSUBTable::GetVerticalGlyphSub2( const Lookup& lookup, uint32_t glyphnum) const { for (const auto& sub_table : lookup.sub_tables) { @@ -118,7 +118,7 @@ } } } - return absl::nullopt; + return std::nullopt; } int CFX_CTTGSUBTable::GetCoverageIndex(const CoverageFormat& coverage,
diff --git a/core/fpdfapi/font/cfx_cttgsubtable.h b/core/fpdfapi/font/cfx_cttgsubtable.h index e6b797a..30bc353 100644 --- a/core/fpdfapi/font/cfx_cttgsubtable.h +++ b/core/fpdfapi/font/cfx_cttgsubtable.h
@@ -9,11 +9,11 @@ #include <stdint.h> +#include <optional> #include <set> #include <vector> #include "core/fxcrt/data_vector.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/abseil-cpp/absl/types/variant.h" #include "third_party/base/containers/span.h" @@ -91,10 +91,10 @@ CoverageFormat ParseCoverage(const uint8_t* raw); SubTable ParseSingleSubst(const uint8_t* raw); - absl::optional<uint32_t> GetVerticalGlyphSub(const FeatureRecord& feature, + std::optional<uint32_t> GetVerticalGlyphSub(const FeatureRecord& feature, + uint32_t glyphnum) const; + std::optional<uint32_t> GetVerticalGlyphSub2(const Lookup& lookup, uint32_t glyphnum) const; - absl::optional<uint32_t> GetVerticalGlyphSub2(const Lookup& lookup, - uint32_t glyphnum) const; int GetCoverageIndex(const CoverageFormat& coverage, uint32_t g) const; uint8_t GetUInt8(const uint8_t*& p) const;
diff --git a/core/fpdfapi/font/cpdf_cidfont.cpp b/core/fpdfapi/font/cpdf_cidfont.cpp index b0bcfd5..709517a 100644 --- a/core/fpdfapi/font/cpdf_cidfont.cpp +++ b/core/fpdfapi/font/cpdf_cidfont.cpp
@@ -763,7 +763,7 @@ return cid; } - absl::optional<fxge::FontEncoding> charmap = + std::optional<fxge::FontEncoding> charmap = face->GetCurrentCharMapEncoding(); if (!charmap.has_value()) { return cid;
diff --git a/core/fpdfapi/font/cpdf_cmapparser.cpp b/core/fpdfapi/font/cpdf_cmapparser.cpp index e026cb1..97d72ed 100644 --- a/core/fpdfapi/font/cpdf_cmapparser.cpp +++ b/core/fpdfapi/font/cpdf_cmapparser.cpp
@@ -112,7 +112,7 @@ return; if (m_CodeSeq % 2) { - absl::optional<CPDF_CMap::CodeRange> range = + std::optional<CPDF_CMap::CodeRange> range = GetCodeRange(m_LastWord.AsStringView(), word); if (range.has_value()) m_PendingRanges.push_back(range.value()); @@ -161,11 +161,11 @@ } // static -absl::optional<CPDF_CMap::CodeRange> CPDF_CMapParser::GetCodeRange( +std::optional<CPDF_CMap::CodeRange> CPDF_CMapParser::GetCodeRange( ByteStringView first, ByteStringView second) { if (first.IsEmpty() || first[0] != '<') - return absl::nullopt; + return std::nullopt; size_t i; for (i = 1; i < first.GetLength(); ++i) { @@ -174,7 +174,7 @@ } size_t char_size = (i - 1) / 2; if (char_size > 4) - return absl::nullopt; + return std::nullopt; CPDF_CMap::CodeRange range; range.m_CharSize = char_size;
diff --git a/core/fpdfapi/font/cpdf_cmapparser.h b/core/fpdfapi/font/cpdf_cmapparser.h index 9219814..25d1e18 100644 --- a/core/fpdfapi/font/cpdf_cmapparser.h +++ b/core/fpdfapi/font/cpdf_cmapparser.h
@@ -7,13 +7,13 @@ #ifndef CORE_FPDFAPI_FONT_CPDF_CMAPPARSER_H_ #define CORE_FPDFAPI_FONT_CPDF_CMAPPARSER_H_ +#include <optional> #include <utility> #include <vector> #include "core/fpdfapi/font/cpdf_cidfont.h" #include "core/fpdfapi/font/cpdf_cmap.h" #include "core/fxcrt/unowned_ptr.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CPDF_CMapParser { public: @@ -43,7 +43,7 @@ void HandleCodeSpaceRange(ByteStringView word); static uint32_t GetCode(ByteStringView word); - static absl::optional<CPDF_CMap::CodeRange> GetCodeRange( + static std::optional<CPDF_CMap::CodeRange> GetCodeRange( ByteStringView first, ByteStringView second);
diff --git a/core/fpdfapi/font/cpdf_cmapparser_unittest.cpp b/core/fpdfapi/font/cpdf_cmapparser_unittest.cpp index a9cdc71..d62c1b9 100644 --- a/core/fpdfapi/font/cpdf_cmapparser_unittest.cpp +++ b/core/fpdfapi/font/cpdf_cmapparser_unittest.cpp
@@ -37,7 +37,7 @@ } TEST(cpdf_cmapparser, GetCodeRange) { - absl::optional<CPDF_CMap::CodeRange> range; + std::optional<CPDF_CMap::CodeRange> range; // Must start with a < range = CPDF_CMapParser::GetCodeRange("", "");
diff --git a/core/fpdfapi/font/cpdf_font.cpp b/core/fpdfapi/font/cpdf_font.cpp index 66e385d..52695d4 100644 --- a/core/fpdfapi/font/cpdf_font.cpp +++ b/core/fpdfapi/font/cpdf_font.cpp
@@ -274,7 +274,7 @@ RetainPtr<CPDF_Font> CPDF_Font::GetStockFont(CPDF_Document* pDoc, ByteStringView name) { ByteString fontname(name); - absl::optional<CFX_FontMapper::StandardFont> font_id = + std::optional<CFX_FontMapper::StandardFont> font_id = CFX_FontMapper::GetStandardFontName(&fontname); if (!font_id.has_value()) return nullptr; @@ -344,10 +344,10 @@ return AsType1Font()->IsBase14Font(); } -absl::optional<FX_Charset> CPDF_Font::GetSubstFontCharset() const { +std::optional<FX_Charset> CPDF_Font::GetSubstFontCharset() const { CFX_SubstFont* pFont = m_Font.GetSubstFont(); if (!pFont) - return absl::nullopt; + return std::nullopt; return pFont->m_Charset; }
diff --git a/core/fpdfapi/font/cpdf_font.h b/core/fpdfapi/font/cpdf_font.h index af0a82b..edfbc9f 100644 --- a/core/fpdfapi/font/cpdf_font.h +++ b/core/fpdfapi/font/cpdf_font.h
@@ -10,6 +10,7 @@ #include <stdint.h> #include <memory> +#include <optional> #include <utility> #include <vector> @@ -22,7 +23,6 @@ #include "core/fxcrt/retain_ptr.h" #include "core/fxcrt/unowned_ptr.h" #include "core/fxge/cfx_font.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CFX_DIBitmap; class CPDF_CIDFont; @@ -44,7 +44,7 @@ virtual void ParseContentForType3Char(CPDF_Type3Char* pChar) = 0; virtual bool HasPageObjects() const = 0; virtual CFX_FloatRect CalcBoundingBox() const = 0; - virtual absl::optional<std::pair<RetainPtr<CFX_DIBitmap>, CFX_Matrix>> + virtual std::optional<std::pair<RetainPtr<CFX_DIBitmap>, CFX_Matrix>> GetBitmapAndMatrixFromSoleImageOfForm() const = 0; }; @@ -96,7 +96,7 @@ virtual bool HasFontWidths() const; ByteString GetBaseFontName() const { return m_BaseFontName; } - absl::optional<FX_Charset> GetSubstFontCharset() const; + std::optional<FX_Charset> GetSubstFontCharset() const; bool IsEmbedded() const { return IsType3Font() || m_pFontFile != nullptr; } RetainPtr<CPDF_Dictionary> GetMutableFontDict() { return m_pFontDict; } RetainPtr<const CPDF_Dictionary> GetFontDict() const { return m_pFontDict; }
diff --git a/core/fpdfapi/font/cpdf_fontencoding.cpp b/core/fpdfapi/font/cpdf_fontencoding.cpp index 7ed59c0..481487a 100644 --- a/core/fpdfapi/font/cpdf_fontencoding.cpp +++ b/core/fpdfapi/font/cpdf_fontencoding.cpp
@@ -7,6 +7,7 @@ #include "core/fpdfapi/font/cpdf_fontencoding.h" #include <iterator> +#include <optional> #include "constants/font_encodings.h" #include "core/fpdfapi/parser/cpdf_array.h" @@ -16,7 +17,6 @@ #include "core/fpdfapi/parser/fpdf_parser_decode.h" #include "core/fxge/fx_font.h" #include "core/fxge/fx_fontencoding.h" -#include "third_party/abseil-cpp/absl/types/optional.h" namespace { @@ -1688,7 +1688,7 @@ FontEncoding::kAdobeSymbol, }; - absl::optional<FontEncoding> predefined; + std::optional<FontEncoding> predefined; for (FontEncoding cs : kEncodings) { pdfium::span<const uint16_t> src = UnicodesForPredefinedCharSet(cs); bool match = true;
diff --git a/core/fpdfapi/font/cpdf_tounicodemap.cpp b/core/fpdfapi/font/cpdf_tounicodemap.cpp index 9cb77ba..2e4dbe5 100644 --- a/core/fpdfapi/font/cpdf_tounicodemap.cpp +++ b/core/fpdfapi/font/cpdf_tounicodemap.cpp
@@ -79,7 +79,7 @@ } // static -absl::optional<uint32_t> CPDF_ToUnicodeMap::StringToCode(ByteStringView input) { +std::optional<uint32_t> CPDF_ToUnicodeMap::StringToCode(ByteStringView input) { // Ignore whitespaces within `input`. See https://crbug.com/pdfium/2065. std::set<char> seen_whitespace_chars; for (char c : input) { @@ -103,18 +103,18 @@ size_t len = str.GetLength(); if (len <= 2 || str[0] != '<' || str[len - 1] != '>') - return absl::nullopt; + return std::nullopt; FX_SAFE_UINT32 code = 0; for (char c : str.Substr(1, len - 2)) { if (!FXSYS_IsHexDigit(c)) - return absl::nullopt; + return std::nullopt; code = code * 16 + FXSYS_HexCharToInt(c); if (!code.IsValid()) - return absl::nullopt; + return std::nullopt; } - return absl::optional<uint32_t>(code.ValueOrDie()); + return std::optional<uint32_t>(code.ValueOrDie()); } // static @@ -175,7 +175,7 @@ if (word.IsEmpty() || word == "endbfchar") return; - absl::optional<uint32_t> code = StringToCode(word); + std::optional<uint32_t> code = StringToCode(word); if (!code.has_value()) return; @@ -189,12 +189,12 @@ if (lowcode_str.IsEmpty() || lowcode_str == "endbfrange") return; - absl::optional<uint32_t> lowcode_opt = StringToCode(lowcode_str); + std::optional<uint32_t> lowcode_opt = StringToCode(lowcode_str); if (!lowcode_opt.has_value()) return; ByteStringView highcode_str = pParser->GetWord(); - absl::optional<uint32_t> highcode_opt = StringToCode(highcode_str); + std::optional<uint32_t> highcode_opt = StringToCode(highcode_str); if (!highcode_opt.has_value()) return; @@ -215,7 +215,7 @@ WideString destcode = StringToWideString(start); if (destcode.GetLength() == 1) { - absl::optional<uint32_t> value_or_error = StringToCode(start); + std::optional<uint32_t> value_or_error = StringToCode(start); if (!value_or_error.has_value()) return;
diff --git a/core/fpdfapi/font/cpdf_tounicodemap.h b/core/fpdfapi/font/cpdf_tounicodemap.h index 7f4ba03..d464ca4 100644 --- a/core/fpdfapi/font/cpdf_tounicodemap.h +++ b/core/fpdfapi/font/cpdf_tounicodemap.h
@@ -8,13 +8,13 @@ #define CORE_FPDFAPI_FONT_CPDF_TOUNICODEMAP_H_ #include <map> +#include <optional> #include <set> #include <vector> #include "core/fxcrt/fx_string.h" #include "core/fxcrt/retain_ptr.h" #include "core/fxcrt/unowned_ptr.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CPDF_CID2UnicodeMap; class CPDF_SimpleParser; @@ -34,7 +34,7 @@ friend class cpdf_tounicodemap_StringToCode_Test; friend class cpdf_tounicodemap_StringToWideString_Test; - static absl::optional<uint32_t> StringToCode(ByteStringView input); + static std::optional<uint32_t> StringToCode(ByteStringView input); static WideString StringToWideString(ByteStringView str); void Load(RetainPtr<const CPDF_Stream> pStream);
diff --git a/core/fpdfapi/font/cpdf_type1font.h b/core/fpdfapi/font/cpdf_type1font.h index 55f542f..60e1ffa 100644 --- a/core/fpdfapi/font/cpdf_type1font.h +++ b/core/fpdfapi/font/cpdf_type1font.h
@@ -49,7 +49,7 @@ uint16_t m_ExtGID[kInternalTableSize]; #endif - absl::optional<CFX_FontMapper::StandardFont> m_Base14Font; + std::optional<CFX_FontMapper::StandardFont> m_Base14Font; }; #endif // CORE_FPDFAPI_FONT_CPDF_TYPE1FONT_H_
diff --git a/core/fpdfapi/font/cpdf_type3char.h b/core/fpdfapi/font/cpdf_type3char.h index 990fb77..555873c 100644 --- a/core/fpdfapi/font/cpdf_type3char.h +++ b/core/fpdfapi/font/cpdf_type3char.h
@@ -8,12 +8,12 @@ #define CORE_FPDFAPI_FONT_CPDF_TYPE3CHAR_H_ #include <memory> +#include <optional> #include <utility> #include "core/fpdfapi/font/cpdf_font.h" #include "core/fxcrt/fx_coordinates.h" #include "core/fxcrt/retain_ptr.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/containers/span.h" class CFX_DIBitmap;
diff --git a/core/fpdfapi/page/cpdf_dib.cpp b/core/fpdfapi/page/cpdf_dib.cpp index c538e43..50bcef7 100644 --- a/core/fpdfapi/page/cpdf_dib.cpp +++ b/core/fpdfapi/page/cpdf_dib.cpp
@@ -248,7 +248,7 @@ m_Format = MakeRGBFormat(CalculateBitsPerPixel(m_bpc, m_nComponents)); } - absl::optional<uint32_t> pitch = + std::optional<uint32_t> pitch = fxge::CalculatePitch32(GetBppFromFormat(m_Format), m_Width); if (!pitch.has_value()) return false; @@ -384,7 +384,7 @@ bool CPDF_DIB::LoadColorInfo(const CPDF_Dictionary* pFormResources, const CPDF_Dictionary* pPageResources) { - absl::optional<DecoderArray> decoder_array = GetDecoderArray(m_pDict); + std::optional<DecoderArray> decoder_array = GetDecoderArray(m_pDict); if (!decoder_array.has_value()) return false; @@ -543,11 +543,11 @@ if (!m_pDecoder) return LoadState::kFail; - const absl::optional<uint32_t> requested_pitch = + const std::optional<uint32_t> requested_pitch = fxge::CalculatePitch8(m_bpc, m_nComponents, m_Width); if (!requested_pitch.has_value()) return LoadState::kFail; - const absl::optional<uint32_t> provided_pitch = fxge::CalculatePitch8( + const std::optional<uint32_t> provided_pitch = fxge::CalculatePitch8( m_pDecoder->GetBPC(), m_pDecoder->CountComps(), m_pDecoder->GetWidth()); if (!provided_pitch.has_value()) return LoadState::kFail; @@ -564,7 +564,7 @@ if (m_pDecoder) return true; - absl::optional<JpegModule::ImageInfo> info_opt = + std::optional<JpegModule::ImageInfo> info_opt = JpegModule::LoadInfo(src_span); if (!info_opt.has_value()) return false; @@ -802,7 +802,7 @@ if (m_bDoBpcCheck && (m_bpc == 0 || m_nComponents == 0)) return false; - const absl::optional<uint32_t> maybe_size = + const std::optional<uint32_t> maybe_size = fxge::CalculatePitch8(m_bpc, m_nComponents, m_Width); if (!maybe_size.has_value()) return false; @@ -1133,7 +1133,7 @@ if (m_bpc == 0) return pdfium::span<const uint8_t>(); - const absl::optional<uint32_t> src_pitch = + const std::optional<uint32_t> src_pitch = fxge::CalculatePitch8(m_bpc, m_nComponents, m_Width); if (!src_pitch.has_value()) return pdfium::span<const uint8_t>();
diff --git a/core/fpdfapi/page/cpdf_docpagedata.cpp b/core/fpdfapi/page/cpdf_docpagedata.cpp index 01ea481..ca45164 100644 --- a/core/fpdfapi/page/cpdf_docpagedata.cpp +++ b/core/fpdfapi/page/cpdf_docpagedata.cpp
@@ -488,7 +488,7 @@ const ByteString& fontName, const CPDF_FontEncoding* pEncoding) { ByteString mutable_name(fontName); - absl::optional<CFX_FontMapper::StandardFont> font_id = + std::optional<CFX_FontMapper::StandardFont> font_id = CFX_FontMapper::GetStandardFontName(&mutable_name); if (!font_id.has_value()) return nullptr;
diff --git a/core/fpdfapi/page/cpdf_form.cpp b/core/fpdfapi/page/cpdf_form.cpp index e66ff0b..eae6bd1 100644 --- a/core/fpdfapi/page/cpdf_form.cpp +++ b/core/fpdfapi/page/cpdf_form.cpp
@@ -115,14 +115,14 @@ return m_pFormStream; } -absl::optional<std::pair<RetainPtr<CFX_DIBitmap>, CFX_Matrix>> +std::optional<std::pair<RetainPtr<CFX_DIBitmap>, CFX_Matrix>> CPDF_Form::GetBitmapAndMatrixFromSoleImageOfForm() const { if (GetPageObjectCount() != 1) - return absl::nullopt; + return std::nullopt; CPDF_ImageObject* pImageObject = (*begin())->AsImage(); if (!pImageObject) - return absl::nullopt; + return std::nullopt; return {{pImageObject->GetIndependentBitmap(), pImageObject->matrix()}}; }
diff --git a/core/fpdfapi/page/cpdf_form.h b/core/fpdfapi/page/cpdf_form.h index 3ced731..aa9f540 100644 --- a/core/fpdfapi/page/cpdf_form.h +++ b/core/fpdfapi/page/cpdf_form.h
@@ -49,7 +49,7 @@ void ParseContentForType3Char(CPDF_Type3Char* pType3Char) override; bool HasPageObjects() const override; CFX_FloatRect CalcBoundingBox() const override; - absl::optional<std::pair<RetainPtr<CFX_DIBitmap>, CFX_Matrix>> + std::optional<std::pair<RetainPtr<CFX_DIBitmap>, CFX_Matrix>> GetBitmapAndMatrixFromSoleImageOfForm() const override; void ParseContent();
diff --git a/core/fpdfapi/page/cpdf_function.cpp b/core/fpdfapi/page/cpdf_function.cpp index 2cd2bc1..be9ddaf 100644 --- a/core/fpdfapi/page/cpdf_function.cpp +++ b/core/fpdfapi/page/cpdf_function.cpp
@@ -128,23 +128,22 @@ return true; } -absl::optional<uint32_t> CPDF_Function::Call( - pdfium::span<const float> inputs, - pdfium::span<float> results) const { +std::optional<uint32_t> CPDF_Function::Call(pdfium::span<const float> inputs, + pdfium::span<float> results) const { if (m_nInputs != inputs.size()) - return absl::nullopt; + return std::nullopt; std::vector<float> clamped_inputs(m_nInputs); for (uint32_t i = 0; i < m_nInputs; i++) { float domain1 = m_Domains[i * 2]; float domain2 = m_Domains[i * 2 + 1]; if (domain1 > domain2) - return absl::nullopt; + return std::nullopt; clamped_inputs[i] = std::clamp(inputs[i], domain1, domain2); } if (!v_Call(clamped_inputs, results)) - return absl::nullopt; + return std::nullopt; if (m_Ranges.empty()) return m_nOutputs; @@ -153,7 +152,7 @@ float range1 = m_Ranges[i * 2]; float range2 = m_Ranges[i * 2 + 1]; if (range1 > range2) - return absl::nullopt; + return std::nullopt; results[i] = std::clamp(results[i], range1, range2); }
diff --git a/core/fpdfapi/page/cpdf_function.h b/core/fpdfapi/page/cpdf_function.h index 8fc4e72..0aee6bd 100644 --- a/core/fpdfapi/page/cpdf_function.h +++ b/core/fpdfapi/page/cpdf_function.h
@@ -8,11 +8,11 @@ #define CORE_FPDFAPI_PAGE_CPDF_FUNCTION_H_ #include <memory> +#include <optional> #include <set> #include <vector> #include "core/fxcrt/retain_ptr.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/containers/span.h" class CPDF_ExpIntFunc; @@ -36,8 +36,8 @@ virtual ~CPDF_Function(); - absl::optional<uint32_t> Call(pdfium::span<const float> inputs, - pdfium::span<float> results) const; + std::optional<uint32_t> Call(pdfium::span<const float> inputs, + pdfium::span<float> results) const; uint32_t CountInputs() const { return m_nInputs; } uint32_t CountOutputs() const { return m_nOutputs; } float GetDomain(int i) const { return m_Domains[i]; }
diff --git a/core/fpdfapi/page/cpdf_image.cpp b/core/fpdfapi/page/cpdf_image.cpp index 663bde0..aa0b120 100644 --- a/core/fpdfapi/page/cpdf_image.cpp +++ b/core/fpdfapi/page/cpdf_image.cpp
@@ -96,7 +96,7 @@ RetainPtr<CPDF_Dictionary> CPDF_Image::InitJPEG( pdfium::span<uint8_t> src_span) { - absl::optional<JpegModule::ImageInfo> info_opt = + std::optional<JpegModule::ImageInfo> info_opt = JpegModule::LoadInfo(src_span); if (!info_opt.has_value()) return nullptr;
diff --git a/core/fpdfapi/page/cpdf_page.cpp b/core/fpdfapi/page/cpdf_page.cpp index d3493de..7c7a603 100644 --- a/core/fpdfapi/page/cpdf_page.cpp +++ b/core/fpdfapi/page/cpdf_page.cpp
@@ -104,7 +104,7 @@ return box; } -absl::optional<CFX_PointF> CPDF_Page::DeviceToPage( +std::optional<CFX_PointF> CPDF_Page::DeviceToPage( const FX_RECT& rect, int rotate, const CFX_PointF& device_point) const { @@ -112,7 +112,7 @@ return page2device.GetInverse().Transform(device_point); } -absl::optional<CFX_PointF> CPDF_Page::PageToDevice( +std::optional<CFX_PointF> CPDF_Page::PageToDevice( const FX_RECT& rect, int rotate, const CFX_PointF& page_point) const {
diff --git a/core/fpdfapi/page/cpdf_page.h b/core/fpdfapi/page/cpdf_page.h index 2b659e6..70d50d6 100644 --- a/core/fpdfapi/page/cpdf_page.h +++ b/core/fpdfapi/page/cpdf_page.h
@@ -8,6 +8,7 @@ #define CORE_FPDFAPI_PAGE_CPDF_PAGE_H_ #include <memory> +#include <optional> #include <utility> #include "core/fpdfapi/page/cpdf_pageobjectholder.h" @@ -17,7 +18,6 @@ #include "core/fxcrt/observed_ptr.h" #include "core/fxcrt/retain_ptr.h" #include "core/fxcrt/unowned_ptr.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CPDF_Array; class CPDF_Dictionary; @@ -58,11 +58,11 @@ float GetPageWidth() const override; float GetPageHeight() const override; CFX_Matrix GetDisplayMatrix(const FX_RECT& rect, int iRotate) const override; - absl::optional<CFX_PointF> DeviceToPage( + std::optional<CFX_PointF> DeviceToPage( const FX_RECT& rect, int rotate, const CFX_PointF& device_point) const override; - absl::optional<CFX_PointF> PageToDevice( + std::optional<CFX_PointF> PageToDevice( const FX_RECT& rect, int rotate, const CFX_PointF& page_point) const override;
diff --git a/core/fpdfapi/page/cpdf_pageobjectholder.cpp b/core/fpdfapi/page/cpdf_pageobjectholder.cpp index d52f129..3b4e071 100644 --- a/core/fpdfapi/page/cpdf_pageobjectholder.cpp +++ b/core/fpdfapi/page/cpdf_pageobjectholder.cpp
@@ -86,11 +86,11 @@ return dirty_streams; } -absl::optional<ByteString> CPDF_PageObjectHolder::GraphicsMapSearch( +std::optional<ByteString> CPDF_PageObjectHolder::GraphicsMapSearch( const GraphicsData& gd) { auto it = m_GraphicsMap.find(gd); if (it == m_GraphicsMap.end()) - return absl::nullopt; + return std::nullopt; return it->second; } @@ -100,11 +100,11 @@ m_GraphicsMap[gd] = str; } -absl::optional<ByteString> CPDF_PageObjectHolder::FontsMapSearch( +std::optional<ByteString> CPDF_PageObjectHolder::FontsMapSearch( const FontData& fd) { auto it = m_FontsMap.find(fd); if (it == m_FontsMap.end()) - return absl::nullopt; + return std::nullopt; return it->second; }
diff --git a/core/fpdfapi/page/cpdf_pageobjectholder.h b/core/fpdfapi/page/cpdf_pageobjectholder.h index 629c028..6afe13b 100644 --- a/core/fpdfapi/page/cpdf_pageobjectholder.h +++ b/core/fpdfapi/page/cpdf_pageobjectholder.h
@@ -13,6 +13,7 @@ #include <deque> #include <map> #include <memory> +#include <optional> #include <set> #include <utility> #include <vector> @@ -24,7 +25,6 @@ #include "core/fxcrt/retain_ptr.h" #include "core/fxcrt/unowned_ptr.h" #include "core/fxge/dib/fx_dib.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CPDF_ContentParser; class CPDF_Document; @@ -113,10 +113,10 @@ bool HasDirtyStreams() const { return !m_DirtyStreams.empty(); } std::set<int32_t> TakeDirtyStreams(); - absl::optional<ByteString> GraphicsMapSearch(const GraphicsData& gd); + std::optional<ByteString> GraphicsMapSearch(const GraphicsData& gd); void GraphicsMapInsert(const GraphicsData& gd, const ByteString& str); - absl::optional<ByteString> FontsMapSearch(const FontData& fd); + std::optional<ByteString> FontsMapSearch(const FontData& fd); void FontsMapInsert(const FontData& fd, const ByteString& str); protected:
diff --git a/core/fpdfapi/page/cpdf_stitchfunc.cpp b/core/fpdfapi/page/cpdf_stitchfunc.cpp index 21e5c80..61e04bb 100644 --- a/core/fpdfapi/page/cpdf_stitchfunc.cpp +++ b/core/fpdfapi/page/cpdf_stitchfunc.cpp
@@ -63,7 +63,7 @@ // Check sub-functions. { - absl::optional<uint32_t> nOutputs; + std::optional<uint32_t> nOutputs; for (uint32_t i = 0; i < nSubs; ++i) { RetainPtr<const CPDF_Object> pSub = pFunctionsArray->GetDirectObjectAt(i); if (pSub == pObj)
diff --git a/core/fpdfapi/page/cpdf_streamparser.cpp b/core/fpdfapi/page/cpdf_streamparser.cpp index dd0a76d..a842f98 100644 --- a/core/fpdfapi/page/cpdf_streamparser.cpp +++ b/core/fpdfapi/page/cpdf_streamparser.cpp
@@ -54,7 +54,7 @@ if (width <= 0 || height <= 0) return FX_INVALID_OFFSET; - absl::optional<uint32_t> maybe_size = + std::optional<uint32_t> maybe_size = fxge::CalculatePitch8(bpc, ncomps, width); if (!maybe_size.has_value()) return FX_INVALID_OFFSET; @@ -165,7 +165,7 @@ nComponents = pCS ? pCS->CountComponents() : 3; bpc = pDict->GetIntegerFor("BitsPerComponent"); } - absl::optional<uint32_t> maybe_size = + std::optional<uint32_t> maybe_size = fxge::CalculatePitch8(bpc, nComponents, width); if (!maybe_size.has_value()) return nullptr;
diff --git a/core/fpdfapi/page/ipdf_page.h b/core/fpdfapi/page/ipdf_page.h index a71106b..a37155f 100644 --- a/core/fpdfapi/page/ipdf_page.h +++ b/core/fpdfapi/page/ipdf_page.h
@@ -7,9 +7,10 @@ #ifndef CORE_FPDFAPI_PAGE_IPDF_PAGE_H_ #define CORE_FPDFAPI_PAGE_IPDF_PAGE_H_ +#include <optional> + #include "core/fxcrt/fx_coordinates.h" #include "core/fxcrt/retain_ptr.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CPDF_Document; class CPDF_Page; @@ -35,12 +36,12 @@ virtual CFX_Matrix GetDisplayMatrix(const FX_RECT& rect, int iRotate) const = 0; - virtual absl::optional<CFX_PointF> DeviceToPage( + virtual std::optional<CFX_PointF> DeviceToPage( const FX_RECT& rect, int rotate, const CFX_PointF& device_point) const = 0; - virtual absl::optional<CFX_PointF> PageToDevice( + virtual std::optional<CFX_PointF> PageToDevice( const FX_RECT& rect, int rotate, const CFX_PointF& page_point) const = 0;
diff --git a/core/fpdfapi/parser/cpdf_array.cpp b/core/fpdfapi/parser/cpdf_array.cpp index 3d51a9f..9a6ee88 100644 --- a/core/fpdfapi/parser/cpdf_array.cpp +++ b/core/fpdfapi/parser/cpdf_array.cpp
@@ -81,12 +81,12 @@ GetFloatAt(4), GetFloatAt(5)); } -absl::optional<size_t> CPDF_Array::Find(const CPDF_Object* pThat) const { +std::optional<size_t> CPDF_Array::Find(const CPDF_Object* pThat) const { for (size_t i = 0; i < size(); ++i) { if (GetDirectObjectAt(i) == pThat) return i; } - return absl::nullopt; + return std::nullopt; } bool CPDF_Array::Contains(const CPDF_Object* pThat) const {
diff --git a/core/fpdfapi/parser/cpdf_array.h b/core/fpdfapi/parser/cpdf_array.h index 2554809..a103133 100644 --- a/core/fpdfapi/parser/cpdf_array.h +++ b/core/fpdfapi/parser/cpdf_array.h
@@ -9,6 +9,7 @@ #include <stddef.h> +#include <optional> #include <set> #include <type_traits> #include <utility> @@ -18,7 +19,6 @@ #include "core/fpdfapi/parser/cpdf_object.h" #include "core/fxcrt/fx_coordinates.h" #include "core/fxcrt/retain_ptr.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/check.h" // Arrays never contain nullptrs for objects within bounds, but some of the @@ -72,7 +72,7 @@ CFX_FloatRect GetRect() const; CFX_Matrix GetMatrix() const; - absl::optional<size_t> Find(const CPDF_Object* pThat) const; + std::optional<size_t> Find(const CPDF_Object* pThat) const; bool Contains(const CPDF_Object* pThat) const; // Creates object owned by the array, and returns a retained pointer to it.
diff --git a/core/fpdfapi/parser/cpdf_array_unittest.cpp b/core/fpdfapi/parser/cpdf_array_unittest.cpp index 9b3e841..c3c9ef0 100644 --- a/core/fpdfapi/parser/cpdf_array_unittest.cpp +++ b/core/fpdfapi/parser/cpdf_array_unittest.cpp
@@ -197,7 +197,7 @@ arr->Append(dict0); arr->Append(dict1); - absl::optional<size_t> maybe_found = arr->Find(nullptr); + std::optional<size_t> maybe_found = arr->Find(nullptr); EXPECT_FALSE(maybe_found.has_value()); maybe_found = arr->Find(dict0.Get());
diff --git a/core/fpdfapi/parser/cpdf_data_avail.cpp b/core/fpdfapi/parser/cpdf_data_avail.cpp index bc3ff33..1605a1a 100644 --- a/core/fpdfapi/parser/cpdf_data_avail.cpp +++ b/core/fpdfapi/parser/cpdf_data_avail.cpp
@@ -490,7 +490,7 @@ return kDataAvailable; CPDF_ReadValidator::ScopedSession read_session(GetValidator()); - const absl::optional<FX_FILESIZE> header_offset = + const std::optional<FX_FILESIZE> header_offset = GetHeaderOffset(GetValidator()); if (GetValidator()->has_read_problems()) return kDataNotAvailable;
diff --git a/core/fpdfapi/parser/cpdf_document.cpp b/core/fpdfapi/parser/cpdf_document.cpp index fa336ab..373b8bd 100644 --- a/core/fpdfapi/parser/cpdf_document.cpp +++ b/core/fpdfapi/parser/cpdf_document.cpp
@@ -8,6 +8,7 @@ #include <algorithm> #include <functional> +#include <optional> #include <utility> #include "core/fpdfapi/parser/cpdf_array.h" @@ -25,7 +26,6 @@ #include "core/fxcrt/fx_codepage.h" #include "core/fxcrt/scoped_set_insertion.h" #include "core/fxcrt/stl_util.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/check.h" #include "third_party/base/check_op.h" #include "third_party/base/containers/contains.h" @@ -64,7 +64,7 @@ // violations. By normalizing the in-memory representation, other code that // reads the object do not have to deal with the same spec violations again. // If the PDF gets saved, the saved copy will also be more spec-compliant. -absl::optional<int> CountPages( +std::optional<int> CountPages( RetainPtr<CPDF_Dictionary> pages_dict, std::set<RetainPtr<CPDF_Dictionary>>* visited_pages) { // Required. See ISO 32000-1:2008 spec, table 29, but tolerate page tree nodes @@ -91,10 +91,10 @@ // Use |visited_pages| to help detect circular references of pages. ScopedSetInsertion<RetainPtr<CPDF_Dictionary>> local_add(visited_pages, kid_dict); - absl::optional<int> local_count = + std::optional<int> local_count = CountPages(std::move(kid_dict), visited_pages); if (!local_count.has_value()) { - return absl::nullopt; // Propagate error. + return std::nullopt; // Propagate error. } count += local_count.value(); } else { @@ -103,7 +103,7 @@ } if (count >= CPDF_Document::kPageMaxNum) { - return absl::nullopt; // Error: too many pages. + return std::nullopt; // Error: too many pages. } } // Fix the in-memory representation for page tree nodes that violate the spec.
diff --git a/core/fpdfapi/parser/cpdf_parser.cpp b/core/fpdfapi/parser/cpdf_parser.cpp index d502c42..b28deeb 100644 --- a/core/fpdfapi/parser/cpdf_parser.cpp +++ b/core/fpdfapi/parser/cpdf_parser.cpp
@@ -203,7 +203,7 @@ } bool CPDF_Parser::InitSyntaxParser(RetainPtr<CPDF_ReadValidator> validator) { - const absl::optional<FX_FILESIZE> header_offset = GetHeaderOffset(validator); + const std::optional<FX_FILESIZE> header_offset = GetHeaderOffset(validator); if (!header_offset.has_value()) return false; if (validator->GetSize() < header_offset.value() + kPDFHeaderSize)
diff --git a/core/fpdfapi/parser/cpdf_stream_acc.cpp b/core/fpdfapi/parser/cpdf_stream_acc.cpp index e3c14af..02e3450 100644 --- a/core/fpdfapi/parser/cpdf_stream_acc.cpp +++ b/core/fpdfapi/parser/cpdf_stream_acc.cpp
@@ -138,7 +138,7 @@ std::unique_ptr<uint8_t, FxFreeDeleter> pDecodedData; uint32_t dwDecodedSize = 0; - absl::optional<DecoderArray> decoder_array = + std::optional<DecoderArray> decoder_array = GetDecoderArray(m_pStream->GetDict()); if (!decoder_array.has_value() || decoder_array.value().empty() || !PDF_DataDecode(src_span, estimated_size, bImageAcc,
diff --git a/core/fpdfapi/parser/fpdf_parser_decode.cpp b/core/fpdfapi/parser/fpdf_parser_decode.cpp index 79fcb1f..181a2ff 100644 --- a/core/fpdfapi/parser/fpdf_parser_decode.cpp +++ b/core/fpdfapi/parser/fpdf_parser_decode.cpp
@@ -360,14 +360,14 @@ estimated_size, dest_buf, dest_size); } -absl::optional<DecoderArray> GetDecoderArray( +std::optional<DecoderArray> GetDecoderArray( RetainPtr<const CPDF_Dictionary> pDict) { RetainPtr<const CPDF_Object> pFilter = pDict->GetDirectObjectFor("Filter"); if (!pFilter) return DecoderArray(); if (!pFilter->IsArray() && !pFilter->IsName()) - return absl::nullopt; + return std::nullopt; RetainPtr<const CPDF_Object> pParams = pDict->GetDirectObjectFor(pdfium::stream::kDecodeParms); @@ -375,7 +375,7 @@ DecoderArray decoder_array; if (const CPDF_Array* pDecoders = pFilter->AsArray()) { if (!ValidateDecoderPipeline(pDecoders)) - return absl::nullopt; + return std::nullopt; RetainPtr<const CPDF_Array> pParamsArray = ToArray(pParams); for (size_t i = 0; i < pDecoders->size(); ++i) {
diff --git a/core/fpdfapi/parser/fpdf_parser_decode.h b/core/fpdfapi/parser/fpdf_parser_decode.h index 757f4cf..b84da06 100644 --- a/core/fpdfapi/parser/fpdf_parser_decode.h +++ b/core/fpdfapi/parser/fpdf_parser_decode.h
@@ -10,6 +10,7 @@ #include <stdint.h> #include <memory> +#include <optional> #include <utility> #include <vector> @@ -17,7 +18,6 @@ #include "core/fxcrt/fx_memory_wrappers.h" #include "core/fxcrt/fx_string.h" #include "core/fxcrt/retain_ptr.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/containers/span.h" class CPDF_Array; @@ -71,14 +71,14 @@ std::unique_ptr<uint8_t, FxFreeDeleter>* dest_buf, uint32_t* dest_size); -// Returns absl::nullopt if the filter in |pDict| is the wrong type or an +// Returns std::nullopt if the filter in |pDict| is the wrong type or an // invalid decoder pipeline. // Returns an empty vector if there is no filter, or if the filter is an empty // array. // Otherwise, returns a vector of decoders. using DecoderArray = std::vector<std::pair<ByteString, RetainPtr<const CPDF_Object>>>; -absl::optional<DecoderArray> GetDecoderArray( +std::optional<DecoderArray> GetDecoderArray( RetainPtr<const CPDF_Dictionary> pDict); bool PDF_DataDecode(pdfium::span<const uint8_t> src_span,
diff --git a/core/fpdfapi/parser/fpdf_parser_decode_unittest.cpp b/core/fpdfapi/parser/fpdf_parser_decode_unittest.cpp index 6b3bc1e..cc9b6d9 100644 --- a/core/fpdfapi/parser/fpdf_parser_decode_unittest.cpp +++ b/core/fpdfapi/parser/fpdf_parser_decode_unittest.cpp
@@ -201,7 +201,7 @@ { // Treat no filter as an empty filter array. auto dict = pdfium::MakeRetain<CPDF_Dictionary>(); - absl::optional<DecoderArray> decoder_array = GetDecoderArray(dict); + std::optional<DecoderArray> decoder_array = GetDecoderArray(dict); ASSERT_TRUE(decoder_array.has_value()); EXPECT_TRUE(decoder_array.value().empty()); } @@ -209,14 +209,14 @@ // Wrong filter type. auto dict = pdfium::MakeRetain<CPDF_Dictionary>(); dict->SetNewFor<CPDF_String>("Filter", "RL", false); - absl::optional<DecoderArray> decoder_array = GetDecoderArray(dict); + std::optional<DecoderArray> decoder_array = GetDecoderArray(dict); EXPECT_FALSE(decoder_array.has_value()); } { // Filter name. auto dict = pdfium::MakeRetain<CPDF_Dictionary>(); dict->SetNewFor<CPDF_Name>("Filter", "RL"); - absl::optional<DecoderArray> decoder_array = GetDecoderArray(dict); + std::optional<DecoderArray> decoder_array = GetDecoderArray(dict); ASSERT_TRUE(decoder_array.has_value()); ASSERT_EQ(1u, decoder_array.value().size()); EXPECT_EQ("RL", decoder_array.value()[0].first); @@ -225,7 +225,7 @@ // Empty filter array. auto dict = pdfium::MakeRetain<CPDF_Dictionary>(); dict->SetNewFor<CPDF_Array>("Filter"); - absl::optional<DecoderArray> decoder_array = GetDecoderArray(dict); + std::optional<DecoderArray> decoder_array = GetDecoderArray(dict); ASSERT_TRUE(decoder_array.has_value()); EXPECT_TRUE(decoder_array.value().empty()); } @@ -234,7 +234,7 @@ auto dict = pdfium::MakeRetain<CPDF_Dictionary>(); auto filter_array = dict->SetNewFor<CPDF_Array>("Filter"); filter_array->AppendNew<CPDF_Name>("FooBar"); - absl::optional<DecoderArray> decoder_array = GetDecoderArray(dict); + std::optional<DecoderArray> decoder_array = GetDecoderArray(dict); ASSERT_TRUE(decoder_array.has_value()); ASSERT_EQ(1u, decoder_array.value().size()); EXPECT_EQ("FooBar", decoder_array.value()[0].first); @@ -245,7 +245,7 @@ auto filter_array = dict->SetNewFor<CPDF_Array>("Filter"); filter_array->AppendNew<CPDF_Name>("AHx"); filter_array->AppendNew<CPDF_Name>("LZWDecode"); - absl::optional<DecoderArray> decoder_array = GetDecoderArray(dict); + std::optional<DecoderArray> decoder_array = GetDecoderArray(dict); ASSERT_TRUE(decoder_array.has_value()); ASSERT_EQ(2u, decoder_array.value().size()); EXPECT_EQ("AHx", decoder_array.value()[0].first); @@ -257,7 +257,7 @@ auto invalid_filter_array = dict->SetNewFor<CPDF_Array>("Filter"); invalid_filter_array->AppendNew<CPDF_Name>("DCTDecode"); invalid_filter_array->AppendNew<CPDF_Name>("CCITTFaxDecode"); - absl::optional<DecoderArray> decoder_array = GetDecoderArray(dict); + std::optional<DecoderArray> decoder_array = GetDecoderArray(dict); EXPECT_FALSE(decoder_array.has_value()); } }
diff --git a/core/fpdfapi/parser/fpdf_parser_utility.cpp b/core/fpdfapi/parser/fpdf_parser_utility.cpp index e31131e..ac5df9d 100644 --- a/core/fpdfapi/parser/fpdf_parser_utility.cpp +++ b/core/fpdfapi/parser/fpdf_parser_utility.cpp
@@ -75,18 +75,18 @@ 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'R', 'W'}; -absl::optional<FX_FILESIZE> GetHeaderOffset( +std::optional<FX_FILESIZE> GetHeaderOffset( const RetainPtr<IFX_SeekableReadStream>& pFile) { static constexpr size_t kBufSize = 4; uint8_t buf[kBufSize]; for (FX_FILESIZE offset = 0; offset <= 1024; ++offset) { if (!pFile->ReadBlockAtOffset(buf, offset)) - return absl::nullopt; + return std::nullopt; if (memcmp(buf, "%PDF", 4) == 0) return offset; } - return absl::nullopt; + return std::nullopt; } ByteString PDF_NameDecode(ByteStringView orig) {
diff --git a/core/fpdfapi/parser/fpdf_parser_utility.h b/core/fpdfapi/parser/fpdf_parser_utility.h index 521e20a..509661a 100644 --- a/core/fpdfapi/parser/fpdf_parser_utility.h +++ b/core/fpdfapi/parser/fpdf_parser_utility.h
@@ -8,11 +8,11 @@ #define CORE_FPDFAPI_PARSER_FPDF_PARSER_UTILITY_H_ #include <iosfwd> +#include <optional> #include <vector> #include "core/fxcrt/bytestring.h" #include "core/fxcrt/retain_ptr.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CPDF_Array; class CPDF_Dictionary; @@ -42,7 +42,7 @@ // On success, return a positive offset value to the PDF header. If the header // cannot be found, or if there is an error reading from |pFile|, then return // nullopt. -absl::optional<FX_FILESIZE> GetHeaderOffset( +std::optional<FX_FILESIZE> GetHeaderOffset( const RetainPtr<IFX_SeekableReadStream>& pFile); ByteString PDF_NameDecode(ByteStringView orig);
diff --git a/core/fpdfapi/render/charposlist.cpp b/core/fpdfapi/render/charposlist.cpp index aba0ada..83d363f 100644 --- a/core/fpdfapi/render/charposlist.cpp +++ b/core/fpdfapi/render/charposlist.cpp
@@ -55,7 +55,7 @@ subst_font_name.Remove(' '); subst_font_name.MakeLower(); - absl::optional<size_t> find = + std::optional<size_t> find = base_font_name.Find(subst_font_name.AsStringView()); return find.has_value() && find.value() == 0; }
diff --git a/core/fpdfapi/render/cpdf_imagerenderer.cpp b/core/fpdfapi/render/cpdf_imagerenderer.cpp index 7f37161..faa2896 100644 --- a/core/fpdfapi/render/cpdf_imagerenderer.cpp +++ b/core/fpdfapi/render/cpdf_imagerenderer.cpp
@@ -409,7 +409,7 @@ return false; } - absl::optional<FX_RECT> image_rect = GetUnitRect(); + std::optional<FX_RECT> image_rect = GetUnitRect(); if (!image_rect.has_value()) return false; @@ -421,7 +421,7 @@ return true; } - absl::optional<FX_RECT> image_rect = GetUnitRect(); + std::optional<FX_RECT> image_rect = GetUnitRect(); if (!image_rect.has_value()) return false; @@ -503,7 +503,7 @@ return false; } - absl::optional<FX_RECT> image_rect = GetUnitRect(); + std::optional<FX_RECT> image_rect = GetUnitRect(); if (!image_rect.has_value()) return false; @@ -579,7 +579,7 @@ } void CPDF_ImageRenderer::HandleFilters() { - absl::optional<DecoderArray> decoder_array = + std::optional<DecoderArray> decoder_array = GetDecoderArray(m_pImageObject->GetImage()->GetStream()->GetDict()); if (!decoder_array.has_value()) return; @@ -592,11 +592,11 @@ } } -absl::optional<FX_RECT> CPDF_ImageRenderer::GetUnitRect() const { +std::optional<FX_RECT> CPDF_ImageRenderer::GetUnitRect() const { CFX_FloatRect image_rect_f = m_ImageMatrix.GetUnitRect(); FX_RECT image_rect = image_rect_f.GetOuterRect(); if (!image_rect.Valid()) - return absl::nullopt; + return std::nullopt; return image_rect; }
diff --git a/core/fpdfapi/render/cpdf_imagerenderer.h b/core/fpdfapi/render/cpdf_imagerenderer.h index 0bab169..eea78b7 100644 --- a/core/fpdfapi/render/cpdf_imagerenderer.h +++ b/core/fpdfapi/render/cpdf_imagerenderer.h
@@ -8,13 +8,13 @@ #define CORE_FPDFAPI_RENDER_CPDF_IMAGERENDERER_H_ #include <memory> +#include <optional> #include "core/fxcrt/fx_coordinates.h" #include "core/fxcrt/retain_ptr.h" #include "core/fxcrt/unowned_ptr.h" #include "core/fxge/dib/cfx_imagerenderer.h" #include "core/fxge/dib/fx_dib.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CFX_DIBBase; class CFX_DefaultRenderDevice; @@ -72,7 +72,7 @@ const FX_RECT& rect) const; const CPDF_RenderOptions& GetRenderOptions() const; void HandleFilters(); - absl::optional<FX_RECT> GetUnitRect() const; + std::optional<FX_RECT> GetUnitRect() const; bool GetDimensionsFromUnitRect(const FX_RECT& rect, int* left, int* top,
diff --git a/core/fpdfapi/render/cpdf_rendershading.cpp b/core/fpdfapi/render/cpdf_rendershading.cpp index 99cdf50..5575205 100644 --- a/core/fpdfapi/render/cpdf_rendershading.cpp +++ b/core/fpdfapi/render/cpdf_rendershading.cpp
@@ -76,7 +76,7 @@ for (const auto& func : funcs) { if (!func) continue; - absl::optional<uint32_t> nresults = + std::optional<uint32_t> nresults = func->Call(pdfium::span_from_ref(input), result_span); if (nresults.has_value()) result_span = result_span.subspan(nresults.value()); @@ -303,7 +303,7 @@ for (const auto& func : funcs) { if (!func) continue; - absl::optional<uint32_t> nresults = func->Call(input, result_span); + std::optional<uint32_t> nresults = func->Call(input, result_span); if (nresults.has_value()) result_span = result_span.subspan(nresults.value()); }
diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp index db4ae7f..a80676d 100644 --- a/core/fpdfapi/render/cpdf_renderstatus.cpp +++ b/core/fpdfapi/render/cpdf_renderstatus.cpp
@@ -911,7 +911,7 @@ if (!glyph.m_pGlyph) continue; - absl::optional<CFX_Point> point = glyph.GetOrigin({0, 0}); + std::optional<CFX_Point> point = glyph.GetOrigin({0, 0}); if (!point.has_value()) continue; @@ -1025,7 +1025,7 @@ if (!glyph.m_pGlyph || !glyph.m_pGlyph->GetBitmap()->IsMaskFormat()) continue; - absl::optional<CFX_Point> point = glyph.GetOrigin({rect.left, rect.top}); + std::optional<CFX_Point> point = glyph.GetOrigin({rect.left, rect.top}); if (!point.has_value()) continue;
diff --git a/core/fpdfapi/render/cpdf_scaledrenderbuffer.cpp b/core/fpdfapi/render/cpdf_scaledrenderbuffer.cpp index 534511a..bcfb6e7 100644 --- a/core/fpdfapi/render/cpdf_scaledrenderbuffer.cpp +++ b/core/fpdfapi/render/cpdf_scaledrenderbuffer.cpp
@@ -46,7 +46,7 @@ int32_t height = bitmap_rect.Height(); // Set to 0 to make CalculatePitchAndSize() calculate it. constexpr uint32_t kNoPitch = 0; - absl::optional<CFX_DIBitmap::PitchAndSize> pitch_size = + std::optional<CFX_DIBitmap::PitchAndSize> pitch_size = CFX_DIBitmap::CalculatePitchAndSize(width, height, dibFormat, kNoPitch); if (!pitch_size.has_value()) return false;
diff --git a/core/fpdfdoc/cpdf_action.cpp b/core/fpdfdoc/cpdf_action.cpp index 1370c7f..2463c36 100644 --- a/core/fpdfdoc/cpdf_action.cpp +++ b/core/fpdfdoc/cpdf_action.cpp
@@ -146,10 +146,10 @@ return result; } -absl::optional<WideString> CPDF_Action::MaybeGetJavaScript() const { +std::optional<WideString> CPDF_Action::MaybeGetJavaScript() const { RetainPtr<const CPDF_Object> pObject = GetJavaScriptObject(); if (!pObject) - return absl::nullopt; + return std::nullopt; return pObject->GetUnicodeText(); }
diff --git a/core/fpdfdoc/cpdf_action.h b/core/fpdfdoc/cpdf_action.h index cb9e930..624a413 100644 --- a/core/fpdfdoc/cpdf_action.h +++ b/core/fpdfdoc/cpdf_action.h
@@ -7,12 +7,12 @@ #ifndef CORE_FPDFDOC_CPDF_ACTION_H_ #define CORE_FPDFDOC_CPDF_ACTION_H_ +#include <optional> #include <vector> #include "core/fpdfdoc/cpdf_dest.h" #include "core/fxcrt/fx_string.h" #include "core/fxcrt/retain_ptr.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CPDF_Dictionary; class CPDF_Document; @@ -62,7 +62,7 @@ std::vector<RetainPtr<const CPDF_Object>> GetAllFields() const; // Differentiates between empty JS entry and no JS entry. - absl::optional<WideString> MaybeGetJavaScript() const; + std::optional<WideString> MaybeGetJavaScript() const; // Returns empty string for empty JS entry and no JS entry. WideString GetJavaScript() const;
diff --git a/core/fpdfdoc/cpdf_annot.cpp b/core/fpdfdoc/cpdf_annot.cpp index e0ecd88..375889e 100644 --- a/core/fpdfdoc/cpdf_annot.cpp +++ b/core/fpdfdoc/cpdf_annot.cpp
@@ -225,9 +225,9 @@ m_pPopupAnnot->SetOpenState(bOpenState); } -absl::optional<CFX_FloatRect> CPDF_Annot::GetPopupAnnotRect() const { +std::optional<CFX_FloatRect> CPDF_Annot::GetPopupAnnotRect() const { if (!m_pPopupAnnot) - return absl::nullopt; + return std::nullopt; return m_pPopupAnnot->GetRect(); }
diff --git a/core/fpdfdoc/cpdf_annot.h b/core/fpdfdoc/cpdf_annot.h index 4f8b2f8..5db98fd 100644 --- a/core/fpdfdoc/cpdf_annot.h +++ b/core/fpdfdoc/cpdf_annot.h
@@ -12,6 +12,7 @@ #include <map> #include <memory> +#include <optional> #include "core/fpdfapi/parser/cpdf_stream.h" #include "core/fxcrt/bytestring.h" @@ -19,7 +20,6 @@ #include "core/fxcrt/maybe_owned.h" #include "core/fxcrt/retain_ptr.h" #include "core/fxcrt/unowned_ptr.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CFX_RenderDevice; class CPDF_Array; @@ -99,7 +99,7 @@ CPDF_Form* GetAPForm(CPDF_Page* pPage, AppearanceMode mode); void SetOpenState(bool bOpenState) { m_bOpenState = bOpenState; } void SetPopupAnnotOpenState(bool bOpenState); - absl::optional<CFX_FloatRect> GetPopupAnnotRect() const; + std::optional<CFX_FloatRect> GetPopupAnnotRect() const; void SetPopupAnnot(CPDF_Annot* pAnnot) { m_pPopupAnnot = pAnnot; } private:
diff --git a/core/fpdfdoc/cpdf_bafontmap.cpp b/core/fpdfdoc/cpdf_bafontmap.cpp index f60e832..694778c 100644 --- a/core/fpdfdoc/cpdf_bafontmap.cpp +++ b/core/fpdfdoc/cpdf_bafontmap.cpp
@@ -253,7 +253,7 @@ CPDF_DefaultAppearance appearance(sDA); float font_size; - absl::optional<ByteString> font = appearance.GetFont(&font_size); + std::optional<ByteString> font = appearance.GetFont(&font_size); *sAlias = font.value_or(ByteString()); RetainPtr<CPDF_Dictionary> pFontDict;
diff --git a/core/fpdfdoc/cpdf_defaultappearance.cpp b/core/fpdfdoc/cpdf_defaultappearance.cpp index e3b91a9..0d8f85c 100644 --- a/core/fpdfdoc/cpdf_defaultappearance.cpp +++ b/core/fpdfdoc/cpdf_defaultappearance.cpp
@@ -64,11 +64,11 @@ CPDF_DefaultAppearance::~CPDF_DefaultAppearance() = default; -absl::optional<ByteString> CPDF_DefaultAppearance::GetFont( +std::optional<ByteString> CPDF_DefaultAppearance::GetFont( float* fFontSize) const { *fFontSize = 0.0f; if (m_csDA.IsEmpty()) - return absl::nullopt; + return std::nullopt; ByteString csFontNameTag; CPDF_SimpleParser syntax(m_csDA.AsStringView().raw_span()); @@ -80,9 +80,9 @@ return PDF_NameDecode(csFontNameTag.AsStringView()); } -absl::optional<CFX_Color> CPDF_DefaultAppearance::GetColor() const { +std::optional<CFX_Color> CPDF_DefaultAppearance::GetColor() const { if (m_csDA.IsEmpty()) - return absl::nullopt; + return std::nullopt; CPDF_SimpleParser syntax(m_csDA.AsStringView().raw_span()); if (FindTagParamFromStart(&syntax, "g", 1)) { @@ -102,14 +102,14 @@ float k = StringToFloat(syntax.GetWord()); return CFX_Color(CFX_Color::Type::kCMYK, c, m, y, k); } - return absl::nullopt; + return std::nullopt; } -absl::optional<CFX_Color::TypeAndARGB> CPDF_DefaultAppearance::GetColorARGB() +std::optional<CFX_Color::TypeAndARGB> CPDF_DefaultAppearance::GetColorARGB() const { - absl::optional<CFX_Color> maybe_color = GetColor(); + std::optional<CFX_Color> maybe_color = GetColor(); if (!maybe_color.has_value()) - return absl::nullopt; + return std::nullopt; const CFX_Color& color = maybe_color.value(); if (color.nColorType == CFX_Color::Type::kGray) {
diff --git a/core/fpdfdoc/cpdf_defaultappearance.h b/core/fpdfdoc/cpdf_defaultappearance.h index 42389ec..2ec725c 100644 --- a/core/fpdfdoc/cpdf_defaultappearance.h +++ b/core/fpdfdoc/cpdf_defaultappearance.h
@@ -7,9 +7,10 @@ #ifndef CORE_FPDFDOC_CPDF_DEFAULTAPPEARANCE_H_ #define CORE_FPDFDOC_CPDF_DEFAULTAPPEARANCE_H_ +#include <optional> + #include "core/fxcrt/bytestring.h" #include "core/fxge/cfx_color.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CPDF_SimpleParser; @@ -20,10 +21,10 @@ CPDF_DefaultAppearance(const CPDF_DefaultAppearance& cDA); ~CPDF_DefaultAppearance(); - absl::optional<ByteString> GetFont(float* fFontSize) const; + std::optional<ByteString> GetFont(float* fFontSize) const; - absl::optional<CFX_Color> GetColor() const; - absl::optional<CFX_Color::TypeAndARGB> GetColorARGB() const; + std::optional<CFX_Color> GetColor() const; + std::optional<CFX_Color::TypeAndARGB> GetColorARGB() const; static bool FindTagParamFromStartForTesting(CPDF_SimpleParser* parser, ByteStringView token,
diff --git a/core/fpdfdoc/cpdf_formcontrol.cpp b/core/fpdfdoc/cpdf_formcontrol.cpp index 31bbdf3..929f3a9 100644 --- a/core/fpdfdoc/cpdf_formcontrol.cpp +++ b/core/fpdfdoc/cpdf_formcontrol.cpp
@@ -192,10 +192,10 @@ return m_pForm->GetDefaultAppearance(); } -absl::optional<WideString> CPDF_FormControl::GetDefaultControlFontName() const { +std::optional<WideString> CPDF_FormControl::GetDefaultControlFontName() const { RetainPtr<CPDF_Font> pFont = GetDefaultControlFont(); if (!pFont) - return absl::nullopt; + return std::nullopt; return WideString::FromDefANSI(pFont->GetBaseFontName().AsStringView()); } @@ -203,7 +203,7 @@ RetainPtr<CPDF_Font> CPDF_FormControl::GetDefaultControlFont() const { float fFontSize; CPDF_DefaultAppearance cDA = GetDefaultAppearance(); - absl::optional<ByteString> csFontNameTag = cDA.GetFont(&fFontSize); + std::optional<ByteString> csFontNameTag = cDA.GetFont(&fFontSize); if (!csFontNameTag.has_value() || csFontNameTag->IsEmpty()) return nullptr;
diff --git a/core/fpdfdoc/cpdf_formcontrol.h b/core/fpdfdoc/cpdf_formcontrol.h index 59eec21..0f11653 100644 --- a/core/fpdfdoc/cpdf_formcontrol.h +++ b/core/fpdfdoc/cpdf_formcontrol.h
@@ -7,6 +7,8 @@ #ifndef CORE_FPDFDOC_CPDF_FORMCONTROL_H_ #define CORE_FPDFDOC_CPDF_FORMCONTROL_H_ +#include <optional> + #include "constants/appearance.h" #include "core/fpdfdoc/cpdf_aaction.h" #include "core/fpdfdoc/cpdf_action.h" @@ -22,7 +24,6 @@ #include "core/fxcrt/unowned_ptr.h" #include "core/fxge/cfx_color.h" #include "core/fxge/dib/fx_dib.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CFX_RenderDevice; class CPDF_Dictionary; @@ -92,7 +93,7 @@ int GetTextPosition() const; CPDF_DefaultAppearance GetDefaultAppearance() const; - absl::optional<WideString> GetDefaultControlFontName() const; + std::optional<WideString> GetDefaultControlFontName() const; int GetControlAlignment() const; ByteString GetOnStateName() const;
diff --git a/core/fpdfdoc/cpdf_formfield.cpp b/core/fpdfdoc/cpdf_formfield.cpp index bfcb797..83dd665 100644 --- a/core/fpdfdoc/cpdf_formfield.cpp +++ b/core/fpdfdoc/cpdf_formfield.cpp
@@ -75,12 +75,12 @@ } // namespace // static -absl::optional<FormFieldType> CPDF_FormField::IntToFormFieldType(int value) { +std::optional<FormFieldType> CPDF_FormField::IntToFormFieldType(int value) { if (value >= static_cast<int>(FormFieldType::kUnknown) && value < static_cast<int>(kFormFieldTypeCount)) { return static_cast<FormFieldType>(value); } - return absl::nullopt; + return std::nullopt; } // static
diff --git a/core/fpdfdoc/cpdf_formfield.h b/core/fpdfdoc/cpdf_formfield.h index 118cdd9..fa7bf33 100644 --- a/core/fpdfdoc/cpdf_formfield.h +++ b/core/fpdfdoc/cpdf_formfield.h
@@ -72,7 +72,7 @@ CPDF_FormField(CPDF_InteractiveForm* pForm, RetainPtr<CPDF_Dictionary> pDict); ~CPDF_FormField(); - static absl::optional<FormFieldType> IntToFormFieldType(int value); + static std::optional<FormFieldType> IntToFormFieldType(int value); static WideString GetFullNameForDict(const CPDF_Dictionary* pFieldDict); static RetainPtr<const CPDF_Object> GetFieldAttrForDict( const CPDF_Dictionary* pFieldDict,
diff --git a/core/fpdfdoc/cpdf_generateap.cpp b/core/fpdfdoc/cpdf_generateap.cpp index abb58db..bff3182 100644 --- a/core/fpdfdoc/cpdf_generateap.cpp +++ b/core/fpdfdoc/cpdf_generateap.cpp
@@ -931,7 +931,7 @@ CPDF_DefaultAppearance appearance(DA); float fFontSize = 0; - absl::optional<ByteString> font = appearance.GetFont(&fFontSize); + std::optional<ByteString> font = appearance.GetFont(&fFontSize); if (!font.has_value()) return;
diff --git a/core/fpdfdoc/cpdf_interactiveform.cpp b/core/fpdfdoc/cpdf_interactiveform.cpp index de7fd71..f8b19db 100644 --- a/core/fpdfdoc/cpdf_interactiveform.cpp +++ b/core/fpdfdoc/cpdf_interactiveform.cpp
@@ -6,6 +6,7 @@ #include "core/fpdfdoc/cpdf_interactiveform.h" +#include <optional> #include <utility> #include <vector> @@ -31,7 +32,6 @@ #include "core/fxcrt/fx_codepage.h" #include "core/fxcrt/stl_util.h" #include "core/fxge/fx_font.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/check.h" #include "third_party/base/containers/contains.h" #include "third_party/base/numerics/safe_conversions.h" @@ -688,7 +688,7 @@ if (!pArray) return -1; - absl::optional<size_t> maybe_found = pArray->Find(pField->GetFieldDict()); + std::optional<size_t> maybe_found = pArray->Find(pField->GetFieldDict()); if (!maybe_found.has_value()) return -1;
diff --git a/core/fpdfdoc/cpdf_nametree.cpp b/core/fpdfdoc/cpdf_nametree.cpp index 95d540f..a745953 100644 --- a/core/fpdfdoc/cpdf_nametree.cpp +++ b/core/fpdfdoc/cpdf_nametree.cpp
@@ -299,26 +299,26 @@ // Find the `nTargetPairIndex` node in the tree with root `pNode`. `nLevel` // tracks the recursion level and `nCurPairIndex` tracks the progress towards // `nTargetPairIndex`. -absl::optional<IndexSearchResult> SearchNameNodeByIndexInternal( +std::optional<IndexSearchResult> SearchNameNodeByIndexInternal( CPDF_Dictionary* pNode, size_t nTargetPairIndex, int nLevel, size_t* nCurPairIndex) { if (nLevel > kNameTreeMaxRecursion) - return absl::nullopt; + return std::nullopt; RetainPtr<CPDF_Array> pNames = pNode->GetMutableArrayFor("Names"); if (pNames) { size_t nCount = pNames->size() / 2; if (nTargetPairIndex >= *nCurPairIndex + nCount) { *nCurPairIndex += nCount; - return absl::nullopt; + return std::nullopt; } size_t index = 2 * (nTargetPairIndex - *nCurPairIndex); RetainPtr<CPDF_Object> value = pNames->GetMutableDirectObjectAt(index + 1); if (!value) - return absl::nullopt; + return std::nullopt; IndexSearchResult result; result.key = pNames->GetUnicodeTextAt(index); @@ -330,23 +330,23 @@ RetainPtr<CPDF_Array> pKids = pNode->GetMutableArrayFor("Kids"); if (!pKids) - return absl::nullopt; + return std::nullopt; for (size_t i = 0; i < pKids->size(); i++) { RetainPtr<CPDF_Dictionary> pKid = pKids->GetMutableDictAt(i); if (!pKid) continue; - absl::optional<IndexSearchResult> result = SearchNameNodeByIndexInternal( + std::optional<IndexSearchResult> result = SearchNameNodeByIndexInternal( pKid.Get(), nTargetPairIndex, nLevel + 1, nCurPairIndex); if (result.has_value()) return result; } - return absl::nullopt; + return std::nullopt; } // Wrapper for SearchNameNodeByIndexInternal() so callers do not need to know // about the details. -absl::optional<IndexSearchResult> SearchNameNodeByIndex( +std::optional<IndexSearchResult> SearchNameNodeByIndex( CPDF_Dictionary* pNode, size_t nTargetPairIndex) { size_t nCurPairIndex = 0; @@ -505,7 +505,7 @@ // |name| into. We instead will find the leftmost leaf array in which to place // |name| and |pObj|. if (!pFind) { - absl::optional<IndexSearchResult> result = + std::optional<IndexSearchResult> result = SearchNameNodeByIndex(m_pRoot.Get(), 0); if (!result.has_value()) { // Give up if that fails too. @@ -541,7 +541,7 @@ } bool CPDF_NameTree::DeleteValueAndName(size_t nIndex) { - absl::optional<IndexSearchResult> result = + std::optional<IndexSearchResult> result = SearchNameNodeByIndex(m_pRoot.Get(), nIndex); if (!result) { // Fail if the tree does not contain |nIndex|. @@ -562,7 +562,7 @@ RetainPtr<CPDF_Object> CPDF_NameTree::LookupValueAndName( size_t nIndex, WideString* csName) const { - absl::optional<IndexSearchResult> result = + std::optional<IndexSearchResult> result = SearchNameNodeByIndex(m_pRoot.Get(), nIndex); if (!result) { csName->clear();
diff --git a/core/fpdfdoc/cpdf_pagelabel.cpp b/core/fpdfdoc/cpdf_pagelabel.cpp index 2611936..73b2f56 100644 --- a/core/fpdfdoc/cpdf_pagelabel.cpp +++ b/core/fpdfdoc/cpdf_pagelabel.cpp
@@ -81,20 +81,20 @@ CPDF_PageLabel::~CPDF_PageLabel() = default; -absl::optional<WideString> CPDF_PageLabel::GetLabel(int nPage) const { +std::optional<WideString> CPDF_PageLabel::GetLabel(int nPage) const { if (!m_pDocument) - return absl::nullopt; + return std::nullopt; if (nPage < 0 || nPage >= m_pDocument->GetPageCount()) - return absl::nullopt; + return std::nullopt; const CPDF_Dictionary* pPDFRoot = m_pDocument->GetRoot(); if (!pPDFRoot) - return absl::nullopt; + return std::nullopt; RetainPtr<const CPDF_Dictionary> pLabels = pPDFRoot->GetDictFor("PageLabels"); if (!pLabels) - return absl::nullopt; + return std::nullopt; CPDF_NumberTree numberTree(std::move(pLabels)); RetainPtr<const CPDF_Object> pValue;
diff --git a/core/fpdfdoc/cpdf_pagelabel.h b/core/fpdfdoc/cpdf_pagelabel.h index 05ec237..a428065 100644 --- a/core/fpdfdoc/cpdf_pagelabel.h +++ b/core/fpdfdoc/cpdf_pagelabel.h
@@ -7,9 +7,10 @@ #ifndef CORE_FPDFDOC_CPDF_PAGELABEL_H_ #define CORE_FPDFDOC_CPDF_PAGELABEL_H_ +#include <optional> + #include "core/fxcrt/unowned_ptr.h" #include "core/fxcrt/widestring.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CPDF_Document; @@ -18,7 +19,7 @@ explicit CPDF_PageLabel(CPDF_Document* pDocument); ~CPDF_PageLabel(); - absl::optional<WideString> GetLabel(int nPage) const; + std::optional<WideString> GetLabel(int nPage) const; private: UnownedPtr<CPDF_Document> const m_pDocument;
diff --git a/core/fpdfdoc/cpdf_structelement.cpp b/core/fpdfdoc/cpdf_structelement.cpp index 18ca39e..1e5399f 100644 --- a/core/fpdfdoc/cpdf_structelement.cpp +++ b/core/fpdfdoc/cpdf_structelement.cpp
@@ -56,17 +56,17 @@ return m_pDict->GetUnicodeTextFor("T"); } -absl::optional<WideString> CPDF_StructElement::GetID() const { +std::optional<WideString> CPDF_StructElement::GetID() const { RetainPtr<const CPDF_Object> obj = m_pDict->GetObjectFor("ID"); if (!obj || !obj->IsString()) - return absl::nullopt; + return std::nullopt; return obj->GetUnicodeText(); } -absl::optional<WideString> CPDF_StructElement::GetLang() const { +std::optional<WideString> CPDF_StructElement::GetLang() const { RetainPtr<const CPDF_Object> obj = m_pDict->GetObjectFor("Lang"); if (!obj || !obj->IsString()) - return absl::nullopt; + return std::nullopt; return obj->GetUnicodeText(); }
diff --git a/core/fpdfdoc/cpdf_structelement.h b/core/fpdfdoc/cpdf_structelement.h index 95c3f9e..fe714db 100644 --- a/core/fpdfdoc/cpdf_structelement.h +++ b/core/fpdfdoc/cpdf_structelement.h
@@ -7,12 +7,12 @@ #ifndef CORE_FPDFDOC_CPDF_STRUCTELEMENT_H_ #define CORE_FPDFDOC_CPDF_STRUCTELEMENT_H_ +#include <optional> #include <vector> #include "core/fxcrt/fx_string.h" #include "core/fxcrt/retain_ptr.h" #include "core/fxcrt/unowned_ptr.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CPDF_Dictionary; class CPDF_Object; @@ -27,8 +27,8 @@ WideString GetAltText() const; WideString GetActualText() const; WideString GetTitle() const; - absl::optional<WideString> GetID() const; - absl::optional<WideString> GetLang() const; + std::optional<WideString> GetID() const; + std::optional<WideString> GetLang() const; RetainPtr<const CPDF_Object> GetA() const; RetainPtr<const CPDF_Object> GetK() const;
diff --git a/core/fpdfdoc/cpdf_viewerpreferences.cpp b/core/fpdfdoc/cpdf_viewerpreferences.cpp index e3f15f0..436f670 100644 --- a/core/fpdfdoc/cpdf_viewerpreferences.cpp +++ b/core/fpdfdoc/cpdf_viewerpreferences.cpp
@@ -41,15 +41,15 @@ return pDict ? pDict->GetByteStringFor("Duplex") : ByteString("None"); } -absl::optional<ByteString> CPDF_ViewerPreferences::GenericName( +std::optional<ByteString> CPDF_ViewerPreferences::GenericName( const ByteString& bsKey) const { RetainPtr<const CPDF_Dictionary> pDict = GetViewerPreferences(); if (!pDict) - return absl::nullopt; + return std::nullopt; RetainPtr<const CPDF_Name> pName = ToName(pDict->GetObjectFor(bsKey)); if (!pName) - return absl::nullopt; + return std::nullopt; return pName->GetString(); }
diff --git a/core/fpdfdoc/cpdf_viewerpreferences.h b/core/fpdfdoc/cpdf_viewerpreferences.h index 3e17048..4fb86ce 100644 --- a/core/fpdfdoc/cpdf_viewerpreferences.h +++ b/core/fpdfdoc/cpdf_viewerpreferences.h
@@ -9,10 +9,11 @@ #include <stdint.h> +#include <optional> + #include "core/fxcrt/bytestring.h" #include "core/fxcrt/retain_ptr.h" #include "core/fxcrt/unowned_ptr.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CPDF_Array; class CPDF_Dictionary; @@ -30,7 +31,7 @@ ByteString Duplex() const; // Gets the entry for |bsKey|. - absl::optional<ByteString> GenericName(const ByteString& bsKey) const; + std::optional<ByteString> GenericName(const ByteString& bsKey) const; private: RetainPtr<const CPDF_Dictionary> GetViewerPreferences() const;
diff --git a/core/fpdftext/cpdf_linkextract.cpp b/core/fpdftext/cpdf_linkextract.cpp index 66a3dda..4f4c5a6 100644 --- a/core/fpdftext/cpdf_linkextract.cpp +++ b/core/fpdftext/cpdf_linkextract.cpp
@@ -176,7 +176,7 @@ } } -absl::optional<CPDF_LinkExtract::Link> CPDF_LinkExtract::CheckWebLink( +std::optional<CPDF_LinkExtract::Link> CPDF_LinkExtract::CheckWebLink( const WideString& strBeCheck) { static const wchar_t kHttpScheme[] = L"http"; static const wchar_t kWWWAddrStart[] = L"www."; @@ -227,7 +227,7 @@ } } - return absl::nullopt; + return std::nullopt; } bool CPDF_LinkExtract::CheckMailLink(WideString* str) { @@ -311,9 +311,9 @@ m_LinkArray[index].m_Count); } -absl::optional<CPDF_LinkExtract::Range> CPDF_LinkExtract::GetTextRange( +std::optional<CPDF_LinkExtract::Range> CPDF_LinkExtract::GetTextRange( size_t index) const { if (index >= m_LinkArray.size()) - return absl::nullopt; + return std::nullopt; return m_LinkArray[index]; }
diff --git a/core/fpdftext/cpdf_linkextract.h b/core/fpdftext/cpdf_linkextract.h index 3f0fa61..87f1c18 100644 --- a/core/fpdftext/cpdf_linkextract.h +++ b/core/fpdftext/cpdf_linkextract.h
@@ -10,12 +10,12 @@ #include <stddef.h> #include <stdint.h> +#include <optional> #include <vector> #include "core/fxcrt/fx_coordinates.h" #include "core/fxcrt/unowned_ptr.h" #include "core/fxcrt/widestring.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CPDF_TextPage; @@ -33,14 +33,14 @@ size_t CountLinks() const { return m_LinkArray.size(); } WideString GetURL(size_t index) const; std::vector<CFX_FloatRect> GetRects(size_t index) const; - absl::optional<Range> GetTextRange(size_t index) const; + std::optional<Range> GetTextRange(size_t index) const; protected: struct Link : public Range { WideString m_strUrl; }; - absl::optional<Link> CheckWebLink(const WideString& str); + std::optional<Link> CheckWebLink(const WideString& str); bool CheckMailLink(WideString* str); UnownedPtr<const CPDF_TextPage> const m_pTextPage;
diff --git a/core/fpdftext/cpdf_textpage.cpp b/core/fpdftext/cpdf_textpage.cpp index 86bae9c..1d6aa77 100644 --- a/core/fpdftext/cpdf_textpage.cpp +++ b/core/fpdftext/cpdf_textpage.cpp
@@ -606,7 +606,7 @@ void CPDF_TextPage::AppendGeneratedCharacter(wchar_t unicode, const CFX_Matrix& formMatrix) { - absl::optional<CharInfo> pGenerateChar = GenerateCharInfo(unicode); + std::optional<CharInfo> pGenerateChar = GenerateCharInfo(unicode); if (!pGenerateChar.has_value()) return; @@ -976,7 +976,7 @@ case GenerateCharacter::kNone: break; case GenerateCharacter::kSpace: { - absl::optional<CharInfo> pGenerateChar = GenerateCharInfo(L' '); + std::optional<CharInfo> pGenerateChar = GenerateCharInfo(L' '); if (pGenerateChar.has_value()) { if (!form_matrix.IsIdentity()) pGenerateChar->m_Matrix = form_matrix; @@ -1417,11 +1417,11 @@ return false; } -absl::optional<CPDF_TextPage::CharInfo> CPDF_TextPage::GenerateCharInfo( +std::optional<CPDF_TextPage::CharInfo> CPDF_TextPage::GenerateCharInfo( wchar_t unicode) { const CharInfo* pPrevCharInfo = GetPrevCharInfo(); if (!pPrevCharInfo) - return absl::nullopt; + return std::nullopt; CharInfo info; info.m_Index = m_TextBuf.GetLength();
diff --git a/core/fpdftext/cpdf_textpage.h b/core/fpdftext/cpdf_textpage.h index 325e2a4..93c4080 100644 --- a/core/fpdftext/cpdf_textpage.h +++ b/core/fpdftext/cpdf_textpage.h
@@ -11,6 +11,7 @@ #include <deque> #include <functional> +#include <optional> #include <vector> #include "core/fpdfapi/page/cpdf_pageobjectholder.h" @@ -20,7 +21,6 @@ #include "core/fxcrt/unowned_ptr.h" #include "core/fxcrt/widestring.h" #include "core/fxcrt/widetext_buffer.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CPDF_FormObject; class CPDF_Page; @@ -124,7 +124,7 @@ GenerateCharacter ProcessInsertObject(const CPDF_TextObject* pObj, const CFX_Matrix& formMatrix); const CharInfo* GetPrevCharInfo() const; - absl::optional<CharInfo> GenerateCharInfo(wchar_t unicode); + std::optional<CharInfo> GenerateCharInfo(wchar_t unicode); bool IsSameAsPreTextObject(CPDF_TextObject* pTextObj, const CPDF_PageObjectHolder* pObjList, CPDF_PageObjectHolder::const_iterator iter) const;
diff --git a/core/fpdftext/cpdf_textpagefind.cpp b/core/fpdftext/cpdf_textpagefind.cpp index 92810ca..a26692c 100644 --- a/core/fpdftext/cpdf_textpagefind.cpp +++ b/core/fpdftext/cpdf_textpagefind.cpp
@@ -91,14 +91,14 @@ return wsLower; } -absl::optional<WideString> ExtractSubString(const wchar_t* lpszFullString, - int iSubString) { +std::optional<WideString> ExtractSubString(const wchar_t* lpszFullString, + int iSubString) { DCHECK(lpszFullString); while (iSubString--) { lpszFullString = wcschr(lpszFullString, L' '); if (!lpszFullString) - return absl::nullopt; + return std::nullopt; lpszFullString++; while (*lpszFullString == L' ') @@ -109,7 +109,7 @@ int nLen = lpchEnd ? static_cast<int>(lpchEnd - lpszFullString) : static_cast<int>(wcslen(lpszFullString)); if (nLen < 0) - return absl::nullopt; + return std::nullopt; return WideString(lpszFullString, static_cast<size_t>(nLen)); } @@ -129,7 +129,7 @@ int index = 0; while (true) { - absl::optional<WideString> word = ExtractSubString(findwhat.c_str(), index); + std::optional<WideString> word = ExtractSubString(findwhat.c_str(), index); if (!word.has_value()) break; @@ -176,7 +176,7 @@ const CPDF_TextPage* pTextPage, const WideString& findwhat, const Options& options, - absl::optional<size_t> startPos) { + std::optional<size_t> startPos) { std::vector<WideString> findwhat_array = ExtractFindWhat(GetStringCase(findwhat, options.bMatchCase)); auto find = pdfium::WrapUnique( @@ -189,7 +189,7 @@ const CPDF_TextPage* pTextPage, const std::vector<WideString>& findwhat_array, const Options& options, - absl::optional<size_t> startPos) + std::optional<size_t> startPos) : m_pTextPage(pTextPage), m_strText(GetStringCase(pTextPage->GetAllPageText(), options.bMatchCase)), m_csFindWhatArray(findwhat_array), @@ -221,7 +221,7 @@ } int nCount = fxcrt::CollectionSize<int>(m_csFindWhatArray); - absl::optional<size_t> nResultPos = 0; + std::optional<size_t> nResultPos = 0; bool bSpaceStart = false; for (int iWord = 0; iWord < nCount; iWord++) { WideString csWord = m_csFindWhatArray[iWord];
diff --git a/core/fpdftext/cpdf_textpagefind.h b/core/fpdftext/cpdf_textpagefind.h index ee5c46e..fa0653d 100644 --- a/core/fpdftext/cpdf_textpagefind.h +++ b/core/fpdftext/cpdf_textpagefind.h
@@ -10,12 +10,12 @@ #include <stddef.h> #include <memory> +#include <optional> #include <vector> #include "core/fxcrt/fx_coordinates.h" #include "core/fxcrt/unowned_ptr.h" #include "core/fxcrt/widestring.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CPDF_TextPage; @@ -31,7 +31,7 @@ const CPDF_TextPage* pTextPage, const WideString& findwhat, const Options& options, - absl::optional<size_t> startPos); + std::optional<size_t> startPos); ~CPDF_TextPageFind(); @@ -44,7 +44,7 @@ CPDF_TextPageFind(const CPDF_TextPage* pTextPage, const std::vector<WideString>& findwhat_array, const Options& options, - absl::optional<size_t> startPos); + std::optional<size_t> startPos); // Should be called immediately after construction. bool FindFirst(); @@ -54,8 +54,8 @@ UnownedPtr<const CPDF_TextPage> const m_pTextPage; const WideString m_strText; const std::vector<WideString> m_csFindWhatArray; - absl::optional<size_t> m_findNextStart; - absl::optional<size_t> m_findPreStart; + std::optional<size_t> m_findNextStart; + std::optional<size_t> m_findPreStart; int m_resStart = 0; int m_resEnd = -1; const Options m_options;
diff --git a/core/fxcodec/bmp/cfx_bmpdecompressor.cpp b/core/fxcodec/bmp/cfx_bmpdecompressor.cpp index 40a8163..1566038 100644 --- a/core/fxcodec/bmp/cfx_bmpdecompressor.cpp +++ b/core/fxcodec/bmp/cfx_bmpdecompressor.cpp
@@ -229,7 +229,7 @@ default: return BmpDecoder::Status::kFail; } - absl::optional<uint32_t> stride = fxge::CalculatePitch32(bit_counts_, width_); + std::optional<uint32_t> stride = fxge::CalculatePitch32(bit_counts_, width_); if (!stride.has_value()) return BmpDecoder::Status::kFail;
diff --git a/core/fxcodec/jbig2/JBig2_TrdProc.cpp b/core/fxcodec/jbig2/JBig2_TrdProc.cpp index 0ea171b..99865ef 100644 --- a/core/fxcodec/jbig2/JBig2_TrdProc.cpp +++ b/core/fxcodec/jbig2/JBig2_TrdProc.cpp
@@ -7,6 +7,7 @@ #include "core/fxcodec/jbig2/JBig2_TrdProc.h" #include <memory> +#include <optional> #include "core/fxcodec/jbig2/JBig2_ArithDecoder.h" #include "core/fxcodec/jbig2/JBig2_ArithIntDecoder.h" @@ -14,25 +15,24 @@ #include "core/fxcodec/jbig2/JBig2_HuffmanDecoder.h" #include "core/fxcrt/fx_safe_types.h" #include "core/fxcrt/maybe_owned.h" -#include "third_party/abseil-cpp/absl/types/optional.h" namespace { -absl::optional<uint32_t> CheckTRDDimension(uint32_t dimension, int32_t delta) { +std::optional<uint32_t> CheckTRDDimension(uint32_t dimension, int32_t delta) { FX_SAFE_UINT32 result = dimension; result += delta; if (!result.IsValid()) - return absl::nullopt; + return std::nullopt; return result.ValueOrDie(); } -absl::optional<int32_t> CheckTRDReferenceDimension(int32_t dimension, - uint32_t shift, - int32_t offset) { +std::optional<int32_t> CheckTRDReferenceDimension(int32_t dimension, + uint32_t shift, + int32_t offset) { FX_SAFE_INT32 result = offset; result += dimension >> shift; if (!result.IsValid()) - return absl::nullopt; + return std::nullopt; return result.ValueOrDie(); } @@ -159,14 +159,14 @@ if (!IBOI) return nullptr; - absl::optional<uint32_t> WOI = CheckTRDDimension(IBOI->width(), RDWI); - absl::optional<uint32_t> HOI = CheckTRDDimension(IBOI->height(), RDHI); + std::optional<uint32_t> WOI = CheckTRDDimension(IBOI->width(), RDWI); + std::optional<uint32_t> HOI = CheckTRDDimension(IBOI->height(), RDHI); if (!WOI.has_value() || !HOI.has_value()) return nullptr; - absl::optional<int32_t> GRREFERENCEDX = + std::optional<int32_t> GRREFERENCEDX = CheckTRDReferenceDimension(RDWI, 2, RDXI); - absl::optional<int32_t> GRREFERENCEDY = + std::optional<int32_t> GRREFERENCEDY = CheckTRDReferenceDimension(RDHI, 2, RDYI); if (!GRREFERENCEDX.has_value() || !GRREFERENCEDY.has_value()) return nullptr; @@ -339,14 +339,14 @@ if (!IBOI) return nullptr; - absl::optional<uint32_t> WOI = CheckTRDDimension(IBOI->width(), RDWI); - absl::optional<uint32_t> HOI = CheckTRDDimension(IBOI->height(), RDHI); + std::optional<uint32_t> WOI = CheckTRDDimension(IBOI->width(), RDWI); + std::optional<uint32_t> HOI = CheckTRDDimension(IBOI->height(), RDHI); if (!WOI.has_value() || !HOI.has_value()) return nullptr; - absl::optional<int32_t> GRREFERENCEDX = + std::optional<int32_t> GRREFERENCEDX = CheckTRDReferenceDimension(RDWI, 1, RDXI); - absl::optional<int32_t> GRREFERENCEDY = + std::optional<int32_t> GRREFERENCEDY = CheckTRDReferenceDimension(RDHI, 1, RDYI); if (!GRREFERENCEDX.has_value() || !GRREFERENCEDY.has_value()) return nullptr;
diff --git a/core/fxcodec/jpeg/jpeg_progressive_decoder.cpp b/core/fxcodec/jpeg/jpeg_progressive_decoder.cpp index d4d8839..ad09cc1 100644 --- a/core/fxcodec/jpeg/jpeg_progressive_decoder.cpp +++ b/core/fxcodec/jpeg/jpeg_progressive_decoder.cpp
@@ -6,6 +6,7 @@ #include "core/fxcodec/jpeg/jpeg_progressive_decoder.h" +#include <optional> #include <utility> #include "core/fxcodec/cfx_codec_memory.h" @@ -15,7 +16,6 @@ #include "core/fxcrt/fx_safe_types.h" #include "core/fxge/dib/cfx_dibbase.h" #include "core/fxge/dib/fx_dib.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/check.h" #include "third_party/base/memory/ptr_util.h"
diff --git a/core/fxcodec/jpeg/jpegmodule.cpp b/core/fxcodec/jpeg/jpegmodule.cpp index 7daefac..3ac906d 100644 --- a/core/fxcodec/jpeg/jpegmodule.cpp +++ b/core/fxcodec/jpeg/jpegmodule.cpp
@@ -11,6 +11,7 @@ #include <string.h> #include <memory> +#include <optional> #include <utility> #include "build/build_config.h" @@ -21,7 +22,6 @@ #include "core/fxcrt/fx_safe_types.h" #include "core/fxge/dib/cfx_dibbase.h" #include "core/fxge/dib/fx_dib.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/check.h" #include "third_party/base/check_op.h" @@ -190,7 +190,7 @@ m_bInited = true; if (setjmp(m_JmpBuf) == -1) { - absl::optional<size_t> known_bad_header_offset; + std::optional<size_t> known_bad_header_offset; if (bAcceptKnownBadHeader) { for (size_t offset : kKnownBadHeaderWithInvalidHeightByteOffsetStarts) { if (HasKnownBadHeaderWithInvalidHeight(offset)) { @@ -393,11 +393,11 @@ } // static -absl::optional<JpegModule::ImageInfo> JpegModule::LoadInfo( +std::optional<JpegModule::ImageInfo> JpegModule::LoadInfo( pdfium::span<const uint8_t> src_span) { ImageInfo info; if (!JpegLoadInfo(src_span, &info)) - return absl::nullopt; + return std::nullopt; return info; }
diff --git a/core/fxcodec/jpeg/jpegmodule.h b/core/fxcodec/jpeg/jpegmodule.h index ac54fa8..80dd406 100644 --- a/core/fxcodec/jpeg/jpegmodule.h +++ b/core/fxcodec/jpeg/jpegmodule.h
@@ -10,9 +10,9 @@ #include <stdint.h> #include <memory> +#include <optional> #include "build/build_config.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/containers/span.h" #if BUILDFLAG(IS_WIN) @@ -42,7 +42,7 @@ int nComps, bool ColorTransform); - static absl::optional<ImageInfo> LoadInfo( + static std::optional<ImageInfo> LoadInfo( pdfium::span<const uint8_t> src_span); #if BUILDFLAG(IS_WIN)
diff --git a/core/fxcodec/jpx/cjpx_decoder.cpp b/core/fxcodec/jpx/cjpx_decoder.cpp index 2e7a72a..9fb1b4b 100644 --- a/core/fxcodec/jpx/cjpx_decoder.cpp +++ b/core/fxcodec/jpx/cjpx_decoder.cpp
@@ -10,6 +10,7 @@ #include <algorithm> #include <limits> +#include <optional> #include <utility> #include <vector> @@ -17,7 +18,6 @@ #include "core/fxcrt/fx_safe_types.h" #include "core/fxcrt/span_util.h" #include "core/fxge/calculate_pitch.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/memory/ptr_util.h" #if !defined(USE_SYSTEM_LIBOPENJPEG2) @@ -60,19 +60,19 @@ return stream; } -absl::optional<OpjImageRgbData> alloc_rgb(size_t size) { +std::optional<OpjImageRgbData> alloc_rgb(size_t size) { OpjImageRgbData data; data.r.reset(static_cast<int*>(opj_image_data_alloc(size))); if (!data.r) - return absl::nullopt; + return std::nullopt; data.g.reset(static_cast<int*>(opj_image_data_alloc(size))); if (!data.g) - return absl::nullopt; + return std::nullopt; data.b.reset(static_cast<int*>(opj_image_data_alloc(size))); if (!data.b) - return absl::nullopt; + return std::nullopt; return data; } @@ -115,7 +115,7 @@ if (!y || !cb || !cr) return; - absl::optional<OpjImageRgbData> data = alloc_rgb(max_size.ValueOrDie()); + std::optional<OpjImageRgbData> data = alloc_rgb(max_size.ValueOrDie()); if (!data.has_value()) return; @@ -180,7 +180,7 @@ if (!y || !cb || !cr) return; - absl::optional<OpjImageRgbData> data = alloc_rgb(safe_size.ValueOrDie()); + std::optional<OpjImageRgbData> data = alloc_rgb(safe_size.ValueOrDie()); if (!data.has_value()) return; @@ -317,7 +317,7 @@ if (!y || !cb || !cr) return; - absl::optional<OpjImageRgbData> data = alloc_rgb(max_size.ValueOrDie()); + std::optional<OpjImageRgbData> data = alloc_rgb(max_size.ValueOrDie()); if (!data.has_value()) return; @@ -524,7 +524,7 @@ channel_count = 4; } - absl::optional<uint32_t> calculated_pitch = + std::optional<uint32_t> calculated_pitch = fxge::CalculatePitch32(8 * channel_count, m_Image->comps[0].w); if (!calculated_pitch.has_value() || pitch < calculated_pitch.value()) { return false;
diff --git a/core/fxcodec/progressive_decoder.cpp b/core/fxcodec/progressive_decoder.cpp index feb6abb..669949e 100644 --- a/core/fxcodec/progressive_decoder.cpp +++ b/core/fxcodec/progressive_decoder.cpp
@@ -684,7 +684,7 @@ // Set to 0 to make CalculatePitchAndSize() calculate it. constexpr uint32_t kNoPitch = 0; - absl::optional<CFX_DIBitmap::PitchAndSize> needed_data = + std::optional<CFX_DIBitmap::PitchAndSize> needed_data = CFX_DIBitmap::CalculatePitchAndSize(m_SrcWidth, m_SrcHeight, format, kNoPitch); if (!needed_data.has_value()) {
diff --git a/core/fxcrt/bytestring.cpp b/core/fxcrt/bytestring.cpp index 41d46e2..40b41b0 100644 --- a/core/fxcrt/bytestring.cpp +++ b/core/fxcrt/bytestring.cpp
@@ -34,10 +34,10 @@ constexpr char kTrimChars[] = "\x09\x0a\x0b\x0c\x0d\x20"; -absl::optional<size_t> FX_strpos(pdfium::span<const char> haystack, - pdfium::span<const char> needle) { +std::optional<size_t> FX_strpos(pdfium::span<const char> haystack, + pdfium::span<const char> needle) { if (needle.empty() || needle.size() > haystack.size()) { - return absl::nullopt; + return std::nullopt; } // After `end_pos`, not enough characters remain in `haystack` for // a full match to occur. @@ -48,7 +48,7 @@ return haystack_pos; } } - return absl::nullopt; + return std::nullopt; } } // namespace @@ -537,46 +537,46 @@ return new_length; } -absl::optional<size_t> ByteString::Find(char ch, size_t start) const { +std::optional<size_t> ByteString::Find(char ch, size_t start) const { if (!m_pData) - return absl::nullopt; + return std::nullopt; if (!IsValidIndex(start)) - return absl::nullopt; + return std::nullopt; const char* pStr = static_cast<const char*>(FXSYS_memchr( m_pData->m_String + start, ch, m_pData->m_nDataLength - start)); - return pStr ? absl::optional<size_t>( + return pStr ? std::optional<size_t>( static_cast<size_t>(pStr - m_pData->m_String)) - : absl::nullopt; + : std::nullopt; } -absl::optional<size_t> ByteString::Find(ByteStringView subStr, - size_t start) const { +std::optional<size_t> ByteString::Find(ByteStringView subStr, + size_t start) const { if (!m_pData) { - return absl::nullopt; + return std::nullopt; } if (!IsValidIndex(start)) { - return absl::nullopt; + return std::nullopt; } - absl::optional<size_t> result = + std::optional<size_t> result = FX_strpos(m_pData->span().subspan(start), subStr.span()); if (!result.has_value()) { - return absl::nullopt; + return std::nullopt; } return start + result.value(); } -absl::optional<size_t> ByteString::ReverseFind(char ch) const { +std::optional<size_t> ByteString::ReverseFind(char ch) const { if (!m_pData) - return absl::nullopt; + return std::nullopt; size_t nLength = m_pData->m_nDataLength; while (nLength--) { if (m_pData->m_String[nLength] == ch) return nLength; } - return absl::nullopt; + return std::nullopt; } void ByteString::MakeLower() { @@ -638,7 +638,7 @@ // Limit span lifetime. pdfium::span<char> search_span = m_pData->span(); while (true) { - absl::optional<size_t> found = FX_strpos(search_span, pOld.span()); + std::optional<size_t> found = FX_strpos(search_span, pOld.span()); if (!found.has_value()) { break; }
diff --git a/core/fxcrt/bytestring.h b/core/fxcrt/bytestring.h index f863087..6986674 100644 --- a/core/fxcrt/bytestring.h +++ b/core/fxcrt/bytestring.h
@@ -15,13 +15,13 @@ #include <functional> #include <iosfwd> #include <iterator> +#include <optional> #include <utility> #include "core/fxcrt/fx_string_wrappers.h" #include "core/fxcrt/retain_ptr.h" #include "core/fxcrt/string_data_template.h" #include "core/fxcrt/string_view_template.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/check.h" #include "third_party/base/containers/span.h" @@ -180,9 +180,9 @@ ByteString First(size_t count) const; ByteString Last(size_t count) const; - absl::optional<size_t> Find(ByteStringView subStr, size_t start = 0) const; - absl::optional<size_t> Find(char ch, size_t start = 0) const; - absl::optional<size_t> ReverseFind(char ch) const; + std::optional<size_t> Find(ByteStringView subStr, size_t start = 0) const; + std::optional<size_t> Find(char ch, size_t start = 0) const; + std::optional<size_t> ReverseFind(char ch) const; bool Contains(ByteStringView lpszSub, size_t start = 0) const { return Find(lpszSub, start).has_value();
diff --git a/core/fxcrt/bytestring_unittest.cpp b/core/fxcrt/bytestring_unittest.cpp index a66959e..ae6a02c 100644 --- a/core/fxcrt/bytestring_unittest.cpp +++ b/core/fxcrt/bytestring_unittest.cpp
@@ -735,7 +735,7 @@ EXPECT_FALSE(empty_string.Find('\0').has_value()); ByteString single_string("a"); - absl::optional<size_t> result = single_string.Find('a'); + std::optional<size_t> result = single_string.Find('a'); ASSERT_TRUE(result.has_value()); EXPECT_EQ(0u, result.value()); EXPECT_FALSE(single_string.Find('b').has_value()); @@ -783,7 +783,7 @@ EXPECT_FALSE(empty_string.ReverseFind('\0').has_value()); ByteString single_string("a"); - absl::optional<size_t> result = single_string.ReverseFind('a'); + std::optional<size_t> result = single_string.ReverseFind('a'); ASSERT_TRUE(result.has_value()); EXPECT_EQ(0u, result.value()); EXPECT_FALSE(single_string.ReverseFind('b').has_value()); @@ -1313,7 +1313,7 @@ EXPECT_FALSE(empty_string.Find('\0').has_value()); ByteStringView single_string("a"); - absl::optional<size_t> result = single_string.Find('a'); + std::optional<size_t> result = single_string.Find('a'); ASSERT_TRUE(result.has_value()); EXPECT_EQ(0u, result.value()); EXPECT_FALSE(single_string.Find('b').has_value());
diff --git a/core/fxcrt/css/cfx_csscomputedstyle.cpp b/core/fxcrt/css/cfx_csscomputedstyle.cpp index 489eed1..cff50db 100644 --- a/core/fxcrt/css/cfx_csscomputedstyle.cpp +++ b/core/fxcrt/css/cfx_csscomputedstyle.cpp
@@ -25,10 +25,10 @@ return false; } -absl::optional<WideString> CFX_CSSComputedStyle::GetLastFontFamily() const { +std::optional<WideString> CFX_CSSComputedStyle::GetLastFontFamily() const { if (!m_InheritedData.m_pFontFamily || m_InheritedData.m_pFontFamily->values().empty()) { - return absl::nullopt; + return std::nullopt; } return m_InheritedData.m_pFontFamily->values()
diff --git a/core/fxcrt/css/cfx_csscomputedstyle.h b/core/fxcrt/css/cfx_csscomputedstyle.h index 9e685c4..76b2430 100644 --- a/core/fxcrt/css/cfx_csscomputedstyle.h +++ b/core/fxcrt/css/cfx_csscomputedstyle.h
@@ -7,6 +7,7 @@ #ifndef CORE_FXCRT_CSS_CFX_CSSCOMPUTEDSTYLE_H_ #define CORE_FXCRT_CSS_CFX_CSSCOMPUTEDSTYLE_H_ +#include <optional> #include <vector> #include "core/fxcrt/css/cfx_css.h" @@ -15,7 +16,6 @@ #include "core/fxcrt/retain_ptr.h" #include "core/fxcrt/widestring.h" #include "core/fxge/dib/fx_dib.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CFX_CSSValueList; @@ -61,7 +61,7 @@ CONSTRUCT_VIA_MAKE_RETAIN; - absl::optional<WideString> GetLastFontFamily() const; + std::optional<WideString> GetLastFontFamily() const; uint16_t GetFontWeight() const; CFX_CSSFontVariant GetFontVariant() const; CFX_CSSFontStyle GetFontStyle() const;
diff --git a/core/fxcrt/fx_string.h b/core/fxcrt/fx_string.h index a73d587..c714eb3 100644 --- a/core/fxcrt/fx_string.h +++ b/core/fxcrt/fx_string.h
@@ -39,7 +39,7 @@ std::vector<StrType> result; StringViewTemplate<typename StrType::CharType> remaining(that.span()); while (true) { - absl::optional<size_t> index = remaining.Find(ch); + std::optional<size_t> index = remaining.Find(ch); if (!index.has_value()) break; result.emplace_back(remaining.First(index.value()));
diff --git a/core/fxcrt/string_view_template.h b/core/fxcrt/string_view_template.h index 069b803..58b04e1 100644 --- a/core/fxcrt/string_view_template.h +++ b/core/fxcrt/string_view_template.h
@@ -11,11 +11,11 @@ #include <algorithm> #include <iterator> +#include <optional> #include <type_traits> #include "core/fxcrt/fx_memcpy_wrappers.h" #include "core/fxcrt/fx_system.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/containers/span.h" namespace fxcrt { @@ -187,12 +187,11 @@ return static_cast<CharType>(m_Span[index]); } - absl::optional<size_t> Find(CharType ch) const { + std::optional<size_t> Find(CharType ch) const { const auto* found = reinterpret_cast<const UnsignedType*>(FXSYS_chr( reinterpret_cast<const CharType*>(m_Span.data()), ch, m_Span.size())); - return found ? absl::optional<size_t>(found - m_Span.data()) - : absl::nullopt; + return found ? std::optional<size_t>(found - m_Span.data()) : std::nullopt; } bool Contains(CharType ch) const { return Find(ch).has_value(); }
diff --git a/core/fxcrt/widestring.cpp b/core/fxcrt/widestring.cpp index 82358ef..132393f 100644 --- a/core/fxcrt/widestring.cpp +++ b/core/fxcrt/widestring.cpp
@@ -54,10 +54,10 @@ constexpr wchar_t kWideTrimChars[] = L"\x09\x0a\x0b\x0c\x0d\x20"; -absl::optional<size_t> FX_wcspos(pdfium::span<const wchar_t> haystack, - pdfium::span<const wchar_t> needle) { +std::optional<size_t> FX_wcspos(pdfium::span<const wchar_t> haystack, + pdfium::span<const wchar_t> needle) { if (needle.empty() || needle.size() > haystack.size()) { - return absl::nullopt; + return std::nullopt; } // After this `end_pos`, not enough characters remain in `haystack` for // a full match to occur. @@ -68,11 +68,11 @@ return haystack_pos; } } - return absl::nullopt; + return std::nullopt; } -absl::optional<size_t> GuessSizeForVSWPrintf(const wchar_t* pFormat, - va_list argList) { +std::optional<size_t> GuessSizeForVSWPrintf(const wchar_t* pFormat, + va_list argList) { size_t nMaxLen = 0; for (const wchar_t* pStr = pFormat; *pStr != 0; pStr++) { if (*pStr != '%' || *(pStr = pStr + 1) == '%') { @@ -95,7 +95,7 @@ ++pStr; } if (iWidth < 0 || iWidth > 128 * 1024) - return absl::nullopt; + return std::nullopt; uint32_t nWidth = static_cast<uint32_t>(iWidth); int iPrecision = 0; if (*pStr == '.') { @@ -110,7 +110,7 @@ } } if (iPrecision < 0 || iPrecision > 128 * 1024) - return absl::nullopt; + return std::nullopt; uint32_t nPrecision = static_cast<uint32_t>(iPrecision); int nModifier = 0; if (*pStr == L'I' && *(pStr + 1) == L'6' && *(pStr + 2) == L'4') { @@ -265,11 +265,11 @@ } // Returns string unless we ran out of space. -absl::optional<WideString> TryVSWPrintf(size_t size, - const wchar_t* pFormat, - va_list argList) { +std::optional<WideString> TryVSWPrintf(size_t size, + const wchar_t* pFormat, + va_list argList) { if (!size) - return absl::nullopt; + return std::nullopt; WideString str; { @@ -287,7 +287,7 @@ bool bSufficientBuffer = ret >= 0 || buffer[size - 1] == 0; if (!bSufficientBuffer) - return absl::nullopt; + return std::nullopt; } str.ReleaseBuffer(str.GetStringLength()); return str; @@ -381,7 +381,7 @@ while (maxLen < 32 * 1024) { va_copy(argListCopy, argList); - absl::optional<WideString> ret = + std::optional<WideString> ret = TryVSWPrintf(static_cast<size_t>(maxLen), format, argListCopy); va_end(argListCopy); if (ret.has_value()) @@ -850,46 +850,46 @@ return new_length; } -absl::optional<size_t> WideString::Find(wchar_t ch, size_t start) const { +std::optional<size_t> WideString::Find(wchar_t ch, size_t start) const { if (!m_pData) - return absl::nullopt; + return std::nullopt; if (!IsValidIndex(start)) - return absl::nullopt; + return std::nullopt; const wchar_t* pStr = FXSYS_wmemchr(m_pData->m_String + start, ch, m_pData->m_nDataLength - start); - return pStr ? absl::optional<size_t>( + return pStr ? std::optional<size_t>( static_cast<size_t>(pStr - m_pData->m_String)) - : absl::nullopt; + : std::nullopt; } -absl::optional<size_t> WideString::Find(WideStringView subStr, - size_t start) const { +std::optional<size_t> WideString::Find(WideStringView subStr, + size_t start) const { if (!m_pData) { - return absl::nullopt; + return std::nullopt; } if (!IsValidIndex(start)) { - return absl::nullopt; + return std::nullopt; } - absl::optional<size_t> result = + std::optional<size_t> result = FX_wcspos(m_pData->span().subspan(start), subStr.span()); if (!result.has_value()) { - return absl::nullopt; + return std::nullopt; } return start + result.value(); } -absl::optional<size_t> WideString::ReverseFind(wchar_t ch) const { +std::optional<size_t> WideString::ReverseFind(wchar_t ch) const { if (!m_pData) - return absl::nullopt; + return std::nullopt; size_t nLength = m_pData->m_nDataLength; while (nLength--) { if (m_pData->m_String[nLength] == ch) return nLength; } - return absl::nullopt; + return std::nullopt; } void WideString::MakeLower() { @@ -951,7 +951,7 @@ // Limit span lifetime. pdfium::span<const wchar_t> search_span = m_pData->span(); while (true) { - absl::optional<size_t> found = FX_wcspos(search_span, pOld.span()); + std::optional<size_t> found = FX_wcspos(search_span, pOld.span()); if (!found.has_value()) { break; }
diff --git a/core/fxcrt/widestring.h b/core/fxcrt/widestring.h index 543b195..5ae355c 100644 --- a/core/fxcrt/widestring.h +++ b/core/fxcrt/widestring.h
@@ -15,12 +15,12 @@ #include <functional> #include <iosfwd> #include <iterator> +#include <optional> #include <utility> #include "core/fxcrt/retain_ptr.h" #include "core/fxcrt/string_data_template.h" #include "core/fxcrt/string_view_template.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/check.h" #include "third_party/base/containers/span.h" @@ -197,9 +197,9 @@ int GetInteger() const; - absl::optional<size_t> Find(WideStringView subStr, size_t start = 0) const; - absl::optional<size_t> Find(wchar_t ch, size_t start = 0) const; - absl::optional<size_t> ReverseFind(wchar_t ch) const; + std::optional<size_t> Find(WideStringView subStr, size_t start = 0) const; + std::optional<size_t> Find(wchar_t ch, size_t start = 0) const; + std::optional<size_t> ReverseFind(wchar_t ch) const; bool Contains(WideStringView lpszSub, size_t start = 0) const { return Find(lpszSub, start).has_value();
diff --git a/core/fxcrt/widestring_unittest.cpp b/core/fxcrt/widestring_unittest.cpp index f8e3b9a..90161c2 100644 --- a/core/fxcrt/widestring_unittest.cpp +++ b/core/fxcrt/widestring_unittest.cpp
@@ -727,7 +727,7 @@ EXPECT_FALSE(empty_string.Find(L'\0').has_value()); WideString single_string(L"a"); - absl::optional<size_t> result = single_string.Find(L'a'); + std::optional<size_t> result = single_string.Find(L'a'); ASSERT_TRUE(result.has_value()); EXPECT_EQ(0u, result.value()); EXPECT_FALSE(single_string.Find(L'b').has_value()); @@ -774,7 +774,7 @@ EXPECT_FALSE(empty_string.ReverseFind(L'\0').has_value()); WideString single_string(L"a"); - absl::optional<size_t> result = single_string.ReverseFind(L'a'); + std::optional<size_t> result = single_string.ReverseFind(L'a'); ASSERT_TRUE(result.has_value()); EXPECT_EQ(0u, result.value()); EXPECT_FALSE(single_string.ReverseFind(L'b').has_value()); @@ -1630,7 +1630,7 @@ EXPECT_FALSE(empty_string.Find(L'\0').has_value()); WideStringView single_string(L"a"); - absl::optional<size_t> result = single_string.Find(L'a'); + std::optional<size_t> result = single_string.Find(L'a'); ASSERT_TRUE(result.has_value()); EXPECT_EQ(0u, result.value()); EXPECT_FALSE(single_string.Find(L'b').has_value());
diff --git a/core/fxcrt/xml/cfx_xmlparser.cpp b/core/fxcrt/xml/cfx_xmlparser.cpp index 3daa96d..7a69e49 100644 --- a/core/fxcrt/xml/cfx_xmlparser.cpp +++ b/core/fxcrt/xml/cfx_xmlparser.cpp
@@ -515,7 +515,7 @@ } } } - entity_start_ = absl::nullopt; + entity_start_ = std::nullopt; } else if (!entity_start_.has_value() && character == L'&') { entity_start_ = current_text_.size() - 1; } @@ -533,7 +533,7 @@ WideString CFX_XMLParser::GetTextData() { WideString ret(current_text_.data(), current_text_.size()); - entity_start_ = absl::nullopt; + entity_start_ = std::nullopt; current_text_.clear(); current_text_.reserve(kCurrentTextReserve); return ret;
diff --git a/core/fxcrt/xml/cfx_xmlparser.h b/core/fxcrt/xml/cfx_xmlparser.h index 268c9f2..34f743b 100644 --- a/core/fxcrt/xml/cfx_xmlparser.h +++ b/core/fxcrt/xml/cfx_xmlparser.h
@@ -8,12 +8,12 @@ #define CORE_FXCRT_XML_CFX_XMLPARSER_H_ #include <memory> +#include <optional> #include "core/fxcrt/data_vector.h" #include "core/fxcrt/retain_ptr.h" #include "core/fxcrt/unowned_ptr.h" #include "core/fxcrt/widestring.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CFX_SeekableStreamProxy; class CFX_XMLDocument; @@ -58,7 +58,7 @@ RetainPtr<CFX_SeekableStreamProxy> stream_; DataVector<wchar_t> current_text_; size_t xml_plane_size_ = 1024; - absl::optional<size_t> entity_start_; + std::optional<size_t> entity_start_; }; #endif // CORE_FXCRT_XML_CFX_XMLPARSER_H_
diff --git a/core/fxge/agg/fx_agg_driver.cpp b/core/fxge/agg/fx_agg_driver.cpp index cab97f0..3a2a627 100644 --- a/core/fxge/agg/fx_agg_driver.cpp +++ b/core/fxge/agg/fx_agg_driver.cpp
@@ -1084,7 +1084,7 @@ m_pClipRgn = std::make_unique<CFX_ClipRgn>( GetDeviceCaps(FXDC_PIXEL_WIDTH), GetDeviceCaps(FXDC_PIXEL_HEIGHT)); } - absl::optional<CFX_FloatRect> maybe_rectf = path.GetRect(pObject2Device); + std::optional<CFX_FloatRect> maybe_rectf = path.GetRect(pObject2Device); if (maybe_rectf.has_value()) { CFX_FloatRect& rectf = maybe_rectf.value(); rectf.Intersect(
diff --git a/core/fxge/android/cfpf_skiafontmgr.cpp b/core/fxge/android/cfpf_skiafontmgr.cpp index 13089d6..baa4e38 100644 --- a/core/fxge/android/cfpf_skiafontmgr.cpp +++ b/core/fxge/android/cfpf_skiafontmgr.cpp
@@ -389,7 +389,7 @@ } uint32_t charset = FPF_SKIACHARSET_Default; - absl::optional<std::array<uint32_t, 2>> code_page_range = + std::optional<std::array<uint32_t, 2>> code_page_range = face->GetOs2CodePageRange(); if (code_page_range.has_value()) { if (code_page_range.value()[0] & (1 << 31)) { @@ -398,7 +398,7 @@ charset |= FPF_SkiaGetFaceCharset(code_page_range.value()[0]); } - absl::optional<std::array<uint8_t, 2>> panose = face->GetOs2Panose(); + std::optional<std::array<uint8_t, 2>> panose = face->GetOs2Panose(); if (panose.has_value() && panose.value()[0] == 2) { uint8_t serif = panose.value()[1]; if ((serif > 1 && serif < 10) || serif > 13) {
diff --git a/core/fxge/calculate_pitch.cpp b/core/fxge/calculate_pitch.cpp index 799e10e..14390b1 100644 --- a/core/fxge/calculate_pitch.cpp +++ b/core/fxge/calculate_pitch.cpp
@@ -40,19 +40,19 @@ return CalculatePitch32Safely(bpp, width).ValueOrDie(); } -absl::optional<uint32_t> CalculatePitch8(uint32_t bpc, - uint32_t components, - int width) { +std::optional<uint32_t> CalculatePitch8(uint32_t bpc, + uint32_t components, + int width) { FX_SAFE_UINT32 pitch = CalculatePitch8Safely(bpc, components, width); if (!pitch.IsValid()) - return absl::nullopt; + return std::nullopt; return pitch.ValueOrDie(); } -absl::optional<uint32_t> CalculatePitch32(int bpp, int width) { +std::optional<uint32_t> CalculatePitch32(int bpp, int width) { FX_SAFE_UINT32 pitch = CalculatePitch32Safely(bpp, width); if (!pitch.IsValid()) - return absl::nullopt; + return std::nullopt; return pitch.ValueOrDie(); }
diff --git a/core/fxge/calculate_pitch.h b/core/fxge/calculate_pitch.h index 1de7fdd..5aefc92 100644 --- a/core/fxge/calculate_pitch.h +++ b/core/fxge/calculate_pitch.h
@@ -7,16 +7,16 @@ #include <stdint.h> -#include "third_party/abseil-cpp/absl/types/optional.h" +#include <optional> namespace fxge { uint32_t CalculatePitch8OrDie(uint32_t bpc, uint32_t components, int width); uint32_t CalculatePitch32OrDie(int bpp, int width); -absl::optional<uint32_t> CalculatePitch8(uint32_t bpc, - uint32_t components, - int width); -absl::optional<uint32_t> CalculatePitch32(int bpp, int width); +std::optional<uint32_t> CalculatePitch8(uint32_t bpc, + uint32_t components, + int width); +std::optional<uint32_t> CalculatePitch32(int bpp, int width); } // namespace fxge
diff --git a/core/fxge/cfx_face.cpp b/core/fxge/cfx_face.cpp index c2ed0af..7d9cd0f 100644 --- a/core/fxge/cfx_face.cpp +++ b/core/fxge/cfx_face.cpp
@@ -399,10 +399,10 @@ return pdfium::base::checked_cast<size_t>(length); } -absl::optional<std::array<uint32_t, 4>> CFX_Face::GetOs2UnicodeRange() { +std::optional<std::array<uint32_t, 4>> CFX_Face::GetOs2UnicodeRange() { auto* os2 = static_cast<TT_OS2*>(FT_Get_Sfnt_Table(GetRec(), FT_SFNT_OS2)); if (!os2) { - return absl::nullopt; + return std::nullopt; } return std::array<uint32_t, 4>{static_cast<uint32_t>(os2->ulUnicodeRange1), static_cast<uint32_t>(os2->ulUnicodeRange2), @@ -410,19 +410,19 @@ static_cast<uint32_t>(os2->ulUnicodeRange4)}; } -absl::optional<std::array<uint32_t, 2>> CFX_Face::GetOs2CodePageRange() { +std::optional<std::array<uint32_t, 2>> CFX_Face::GetOs2CodePageRange() { auto* os2 = static_cast<TT_OS2*>(FT_Get_Sfnt_Table(GetRec(), FT_SFNT_OS2)); if (!os2) { - return absl::nullopt; + return std::nullopt; } return std::array<uint32_t, 2>{static_cast<uint32_t>(os2->ulCodePageRange1), static_cast<uint32_t>(os2->ulCodePageRange2)}; } -absl::optional<std::array<uint8_t, 2>> CFX_Face::GetOs2Panose() { +std::optional<std::array<uint8_t, 2>> CFX_Face::GetOs2Panose() { auto* os2 = static_cast<TT_OS2*>(FT_Get_Sfnt_Table(GetRec(), FT_SFNT_OS2)); if (!os2) { - return absl::nullopt; + return std::nullopt; } return std::array<uint8_t, 2>{os2->panose[0], os2->panose[1]}; } @@ -736,9 +736,9 @@ return GetRec()->charmap; } -absl::optional<fxge::FontEncoding> CFX_Face::GetCurrentCharMapEncoding() const { +std::optional<fxge::FontEncoding> CFX_Face::GetCurrentCharMapEncoding() const { if (!GetRec()->charmap) { - return absl::nullopt; + return std::nullopt; } return ToFontEncoding(GetRec()->charmap->encoding); }
diff --git a/core/fxge/cfx_face.h b/core/fxge/cfx_face.h index aa0bb93..ce8d693 100644 --- a/core/fxge/cfx_face.h +++ b/core/fxge/cfx_face.h
@@ -9,6 +9,7 @@ #include <array> #include <memory> +#include <optional> #include <vector> #include "build/build_config.h" @@ -17,7 +18,6 @@ #include "core/fxcrt/observed_ptr.h" #include "core/fxcrt/retain_ptr.h" #include "core/fxge/freetype/fx_freetype.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/containers/span.h" namespace fxge { @@ -77,9 +77,9 @@ // it is large enough to hold the data. size_t GetSfntTable(uint32_t table, pdfium::span<uint8_t> buffer); - absl::optional<std::array<uint32_t, 4>> GetOs2UnicodeRange(); - absl::optional<std::array<uint32_t, 2>> GetOs2CodePageRange(); - absl::optional<std::array<uint8_t, 2>> GetOs2Panose(); + std::optional<std::array<uint32_t, 4>> GetOs2UnicodeRange(); + std::optional<std::array<uint32_t, 2>> GetOs2CodePageRange(); + std::optional<std::array<uint8_t, 2>> GetOs2Panose(); int GetGlyphCount() const; // TODO(crbug.com/pdfium/2037): Can this method be private? @@ -108,7 +108,7 @@ std::vector<CharCodeAndIndex> GetCharCodesAndIndices(char32_t max_char); CharMap GetCurrentCharMap() const; - absl::optional<fxge::FontEncoding> GetCurrentCharMapEncoding() const; + std::optional<fxge::FontEncoding> GetCurrentCharMapEncoding() const; int GetCharMapPlatformIdByIndex(size_t index) const; int GetCharMapEncodingIdByIndex(size_t index) const; fxge::FontEncoding GetCharMapEncodingByIndex(size_t index) const;
diff --git a/core/fxge/cfx_folderfontinfo.cpp b/core/fxge/cfx_folderfontinfo.cpp index af8691a..3a4f41b 100644 --- a/core/fxge/cfx_folderfontinfo.cpp +++ b/core/fxge/cfx_folderfontinfo.cpp
@@ -51,7 +51,7 @@ bool FindFamilyNameMatch(ByteStringView family_name, const ByteString& installed_font_name) { - absl::optional<size_t> result = installed_font_name.Find(family_name, 0); + std::optional<size_t> result = installed_font_name.Find(family_name, 0); if (!result.has_value()) return false;
diff --git a/core/fxge/cfx_font.cpp b/core/fxge/cfx_font.cpp index 8a8ce47..ff97860 100644 --- a/core/fxge/cfx_font.cpp +++ b/core/fxge/cfx_font.cpp
@@ -288,24 +288,24 @@ return NormalizeFontMetric(m_Face->GetDescender(), m_Face->GetUnitsPerEm()); } -absl::optional<FX_RECT> CFX_Font::GetGlyphBBox(uint32_t glyph_index) { +std::optional<FX_RECT> CFX_Font::GetGlyphBBox(uint32_t glyph_index) { if (!m_Face) - return absl::nullopt; + return std::nullopt; if (m_Face->IsTricky()) { int error = FT_Set_Char_Size(m_Face->GetRec(), 0, 1000 * 64, 72, 72); if (error) - return absl::nullopt; + return std::nullopt; error = FT_Load_Glyph(m_Face->GetRec(), glyph_index, FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH); if (error) - return absl::nullopt; + return std::nullopt; FT_Glyph glyph; error = FT_Get_Glyph(m_Face->GetRec()->glyph, &glyph); if (error) - return absl::nullopt; + return std::nullopt; FT_BBox cbox; FT_Glyph_Get_CBox(glyph, FT_GLYPH_BBOX_PIXELS, &cbox); @@ -318,12 +318,12 @@ std::max(result.bottom, static_cast<int>(m_Face->GetDescender())); FT_Done_Glyph(glyph); if (FT_Set_Pixel_Sizes(m_Face->GetRec(), 0, 64) != 0) - return absl::nullopt; + return std::nullopt; return result; } constexpr int kFlag = FT_LOAD_NO_SCALE | FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH; if (FT_Load_Glyph(m_Face->GetRec(), glyph_index, kFlag) != 0) - return absl::nullopt; + return std::nullopt; int em = m_Face->GetUnitsPerEm(); return ScaledFXRectFromFTPos(FXFT_Get_Glyph_HoriBearingX(m_Face->GetRec()), FXFT_Get_Glyph_HoriBearingY(m_Face->GetRec()) - @@ -415,14 +415,14 @@ return ByteString(); } -absl::optional<FX_RECT> CFX_Font::GetRawBBox() const { +std::optional<FX_RECT> CFX_Font::GetRawBBox() const { if (!m_Face) - return absl::nullopt; + return std::nullopt; return m_Face->GetBBox(); } -absl::optional<FX_RECT> CFX_Font::GetBBox() const { - absl::optional<FX_RECT> result = GetRawBBox(); +std::optional<FX_RECT> CFX_Font::GetBBox() const { + std::optional<FX_RECT> result = GetRawBBox(); if (!result.has_value()) return result;
diff --git a/core/fxge/cfx_font.h b/core/fxge/cfx_font.h index e78114a..6db9a1f 100644 --- a/core/fxge/cfx_font.h +++ b/core/fxge/cfx_font.h
@@ -10,6 +10,7 @@ #include <stdint.h> #include <memory> +#include <optional> #include "build/build_config.h" #include "core/fxcrt/bytestring.h" @@ -20,7 +21,6 @@ #include "core/fxcrt/unowned_ptr_exclusion.h" #include "core/fxge/cfx_face.h" #include "core/fxge/freetype/fx_freetype.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/containers/span.h" #if defined(PDF_USE_SKIA) @@ -104,7 +104,7 @@ int GetGlyphWidth(uint32_t glyph_index, int dest_width, int weight) const; int GetAscent() const; int GetDescent() const; - absl::optional<FX_RECT> GetGlyphBBox(uint32_t glyph_index); + std::optional<FX_RECT> GetGlyphBBox(uint32_t glyph_index); bool IsItalic() const; bool IsBold() const; bool IsFixedWidth() const; @@ -116,10 +116,10 @@ bool IsTTFont() const; // Raw bounding box. - absl::optional<FX_RECT> GetRawBBox() const; + std::optional<FX_RECT> GetRawBBox() const; // Bounding box adjusted for font units. - absl::optional<FX_RECT> GetBBox() const; + std::optional<FX_RECT> GetBBox() const; bool IsEmbedded() const { return m_bEmbedded; } FontType GetFontType() const { return m_FontType; }
diff --git a/core/fxge/cfx_fontmapper.cpp b/core/fxge/cfx_fontmapper.cpp index 6640360..91197ea 100644 --- a/core/fxge/cfx_fontmapper.cpp +++ b/core/fxge/cfx_fontmapper.cpp
@@ -373,7 +373,7 @@ bool IsNarrowFontName(const ByteString& name) { static const char kNarrowFonts[][10] = {"Narrow", "Condensed"}; for (const char* font : kNarrowFonts) { - absl::optional<size_t> pos = name.Find(font); + std::optional<size_t> pos = name.Find(font); if (pos.has_value() && pos.value() != 0) return true; } @@ -595,7 +595,7 @@ bool has_comma = false; bool has_hyphen = false; { - absl::optional<size_t> pos = subst_name.Find(","); + std::optional<size_t> pos = subst_name.Find(","); if (pos.has_value()) { family = subst_name.First(pos.value()); GetStandardFontName(&family); @@ -619,7 +619,7 @@ base_font = kNumStandardFonts; nStyle = FXFONT_NORMAL; if (!has_comma) { - absl::optional<size_t> pos = family.ReverseFind('-'); + std::optional<size_t> pos = family.ReverseFind('-'); if (pos.has_value()) { style = family.Last(family.GetLength() - (pos.value() + 1)); family = family.First(pos.value()); @@ -773,22 +773,22 @@ } #if BUILDFLAG(IS_WIN) -absl::optional<ByteString> CFX_FontMapper::InstalledFontNameStartingWith( +std::optional<ByteString> CFX_FontMapper::InstalledFontNameStartingWith( const ByteString& name) const { for (const auto& thisname : m_InstalledTTFonts) { if (thisname.First(name.GetLength()) == name) return thisname; } - return absl::nullopt; + return std::nullopt; } -absl::optional<ByteString> CFX_FontMapper::LocalizedFontNameStartingWith( +std::optional<ByteString> CFX_FontMapper::LocalizedFontNameStartingWith( const ByteString& name) const { for (const auto& thispair : m_LocalizedTTFonts) { if (thispair.first.First(name.GetLength()) == name) return thispair.second; } - return absl::nullopt; + return std::nullopt; } #endif // BUILDFLAG(IS_WIN) @@ -878,8 +878,8 @@ } // static -absl::optional<CFX_FontMapper::StandardFont> -CFX_FontMapper::GetStandardFontName(ByteString* name) { +std::optional<CFX_FontMapper::StandardFont> CFX_FontMapper::GetStandardFontName( + ByteString* name) { const auto* end = std::end(kAltFontNames); const auto* found = std::lower_bound(std::begin(kAltFontNames), end, name->c_str(), @@ -887,7 +887,7 @@ return FXSYS_stricmp(element.m_pName, name) < 0; }); if (found == end || FXSYS_stricmp(found->m_pName, name->c_str())) - return absl::nullopt; + return std::nullopt; *name = kBase14FontNames[static_cast<size_t>(found->m_Index)]; return found->m_Index;
diff --git a/core/fxge/cfx_fontmapper.h b/core/fxge/cfx_fontmapper.h index ecbec60..9c73ef6 100644 --- a/core/fxge/cfx_fontmapper.h +++ b/core/fxge/cfx_fontmapper.h
@@ -8,6 +8,7 @@ #define CORE_FXGE_CFX_FONTMAPPER_H_ #include <memory> +#include <optional> #include <utility> #include <vector> @@ -17,7 +18,6 @@ #include "core/fxcrt/retain_ptr.h" #include "core/fxcrt/unowned_ptr.h" #include "core/fxge/cfx_face.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #ifdef PDF_ENABLE_XFA #include "core/fxcrt/fixed_size_data_vector.h" @@ -51,7 +51,7 @@ explicit CFX_FontMapper(CFX_FontMgr* mgr); ~CFX_FontMapper(); - static absl::optional<StandardFont> GetStandardFontName(ByteString* name); + static std::optional<StandardFont> GetStandardFontName(ByteString* name); static bool IsStandardFontName(const ByteString& name); static bool IsSymbolicFont(StandardFont font); static bool IsFixedFont(StandardFont font); @@ -80,9 +80,9 @@ bool HasLocalizedFont(ByteStringView name) const; #if BUILDFLAG(IS_WIN) - absl::optional<ByteString> InstalledFontNameStartingWith( + std::optional<ByteString> InstalledFontNameStartingWith( const ByteString& name) const; - absl::optional<ByteString> LocalizedFontNameStartingWith( + std::optional<ByteString> LocalizedFontNameStartingWith( const ByteString& name) const; #endif // BUILDFLAG(IS_WIN)
diff --git a/core/fxge/cfx_path.cpp b/core/fxge/cfx_path.cpp index 525409e..5412ae1 100644 --- a/core/fxge/cfx_path.cpp +++ b/core/fxge/cfx_path.cpp
@@ -400,8 +400,7 @@ return IsRectImpl(m_Points); } -absl::optional<CFX_FloatRect> CFX_Path::GetRect( - const CFX_Matrix* matrix) const { +std::optional<CFX_FloatRect> CFX_Path::GetRect(const CFX_Matrix* matrix) const { bool do_normalize = PathPointsNeedNormalization(m_Points); std::vector<Point> normalized; if (do_normalize) @@ -410,13 +409,13 @@ if (!matrix) { if (!IsRectImpl(path_points)) - return absl::nullopt; + return std::nullopt; return CreateRectFromPoints(path_points[0].m_Point, path_points[2].m_Point); } if (!IsRectPreTransform(path_points)) - return absl::nullopt; + return std::nullopt; CFX_PointF points[5]; for (size_t i = 0; i < path_points.size(); ++i) { @@ -425,11 +424,11 @@ if (i == 0) continue; if (XYBothNotEqual(points[i], points[i - 1])) - return absl::nullopt; + return std::nullopt; } if (XYBothNotEqual(points[0], points[3])) - return absl::nullopt; + return std::nullopt; return CreateRectFromPoints(points[0], points[2]); }
diff --git a/core/fxge/cfx_path.h b/core/fxge/cfx_path.h index 5c6199c..d107bb3 100644 --- a/core/fxge/cfx_path.h +++ b/core/fxge/cfx_path.h
@@ -9,11 +9,11 @@ #include <stdint.h> +#include <optional> #include <vector> #include "core/fxcrt/fx_coordinates.h" #include "core/fxcrt/retain_ptr.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CFX_Path { public: @@ -56,7 +56,7 @@ void Transform(const CFX_Matrix& matrix); bool IsRect() const; - absl::optional<CFX_FloatRect> GetRect(const CFX_Matrix* matrix) const; + std::optional<CFX_FloatRect> GetRect(const CFX_Matrix* matrix) const; void Append(const CFX_Path& src, const CFX_Matrix* matrix); void AppendFloatRect(const CFX_FloatRect& rect);
diff --git a/core/fxge/cfx_path_unittest.cpp b/core/fxge/cfx_path_unittest.cpp index 4ccb1c2..bae99ad 100644 --- a/core/fxge/cfx_path_unittest.cpp +++ b/core/fxge/cfx_path_unittest.cpp
@@ -12,7 +12,7 @@ path.AppendRect(/*left=*/1, /*bottom=*/2, /*right=*/3, /*top=*/5); EXPECT_EQ(5u, path.GetPoints().size()); EXPECT_TRUE(path.IsRect()); - absl::optional<CFX_FloatRect> rect = path.GetRect(nullptr); + std::optional<CFX_FloatRect> rect = path.GetRect(nullptr); ASSERT_TRUE(rect.has_value()); EXPECT_EQ(CFX_FloatRect(1, 2, 3, 5), rect.value()); EXPECT_EQ(CFX_FloatRect(1, 2, 3, 5), path.GetBoundingBox()); @@ -71,7 +71,7 @@ const CFX_Matrix kShearMatrix(1, 2, 0, 1, 0, 0); EXPECT_TRUE(path.IsRect()); - absl::optional<CFX_FloatRect> rect = path.GetRect(&kShearMatrix); + std::optional<CFX_FloatRect> rect = path.GetRect(&kShearMatrix); EXPECT_FALSE(rect.has_value()); EXPECT_EQ(CFX_FloatRect(1, 2, 3, 5), path.GetBoundingBox()); @@ -148,7 +148,7 @@ EXPECT_EQ(CFX_Path::Point::Type::kLine, path.GetType(3)); EXPECT_FALSE(path.IsClosingFigure(3)); EXPECT_TRUE(path.IsRect()); - absl::optional<CFX_FloatRect> rect = path.GetRect(nullptr); + std::optional<CFX_FloatRect> rect = path.GetRect(nullptr); ASSERT_TRUE(rect.has_value()); EXPECT_EQ(CFX_FloatRect(0, 0, 1, 1), rect.value()); @@ -200,7 +200,7 @@ EXPECT_EQ(CFX_Path::Point::Type::kLine, path.GetType(4)); EXPECT_FALSE(path.IsClosingFigure(4)); EXPECT_TRUE(path.IsRect()); - absl::optional<CFX_FloatRect> rect = path.GetRect(nullptr); + std::optional<CFX_FloatRect> rect = path.GetRect(nullptr); ASSERT_TRUE(rect.has_value()); EXPECT_EQ(CFX_FloatRect(0, 0, 2, 1), rect.value()); @@ -223,7 +223,7 @@ path.AppendPoint({0, 1}, CFX_Path::Point::Type::kLine); path.AppendPoint({0, 0}, CFX_Path::Point::Type::kLine); EXPECT_TRUE(path.IsRect()); - absl::optional<CFX_FloatRect> rect = path.GetRect(nullptr); + std::optional<CFX_FloatRect> rect = path.GetRect(nullptr); ASSERT_TRUE(rect.has_value()); EXPECT_EQ(CFX_FloatRect(0, 0, 2, 1), rect.value()); EXPECT_EQ(CFX_FloatRect(0, 0, 2, 1), path.GetBoundingBox()); @@ -257,7 +257,7 @@ path.AppendPoint({0, 1}, CFX_Path::Point::Type::kLine); path.AppendPoint({0, 0.1f}, CFX_Path::Point::Type::kLine); EXPECT_FALSE(path.IsRect()); - absl::optional<CFX_FloatRect> rect = path.GetRect(nullptr); + std::optional<CFX_FloatRect> rect = path.GetRect(nullptr); EXPECT_FALSE(rect.has_value()); EXPECT_EQ(CFX_FloatRect(0, 0, 2, 1), path.GetBoundingBox()); @@ -342,7 +342,7 @@ path.AppendPoint({0, 1}, CFX_Path::Point::Type::kLine); path.AppendPoint({0, 0}, CFX_Path::Point::Type::kLine); EXPECT_TRUE(path.IsRect()); - absl::optional<CFX_FloatRect> rect = path.GetRect(nullptr); + std::optional<CFX_FloatRect> rect = path.GetRect(nullptr); ASSERT_TRUE(rect.has_value()); EXPECT_EQ(CFX_FloatRect(0, 0, 0, 1), rect.value()); EXPECT_EQ(CFX_FloatRect(0, 0, 0, 1), path.GetBoundingBox());
diff --git a/core/fxge/cfx_renderdevice.cpp b/core/fxge/cfx_renderdevice.cpp index 3d8f428..1776461 100644 --- a/core/fxge/cfx_renderdevice.cpp +++ b/core/fxge/cfx_renderdevice.cpp
@@ -635,7 +635,7 @@ } if (stroke_alpha == 0 && !fill_options.rect_aa) { - absl::optional<CFX_FloatRect> maybe_rect_f = path.GetRect(pObject2Device); + std::optional<CFX_FloatRect> maybe_rect_f = path.GetRect(pObject2Device); if (maybe_rect_f.has_value()) { const CFX_FloatRect& rect_f = maybe_rect_f.value(); FX_RECT rect_i = rect_f.GetOuterRect(); @@ -1150,8 +1150,7 @@ if (!glyph.m_pGlyph) continue; - absl::optional<CFX_Point> point = - glyph.GetOrigin({pixel_left, pixel_top}); + std::optional<CFX_Point> point = glyph.GetOrigin({pixel_left, pixel_top}); if (!point.has_value()) continue; @@ -1187,7 +1186,7 @@ if (!glyph.m_pGlyph) continue; - absl::optional<CFX_Point> point = glyph.GetOrigin({pixel_left, pixel_top}); + std::optional<CFX_Point> point = glyph.GetOrigin({pixel_left, pixel_top}); if (!point.has_value()) continue;
diff --git a/core/fxge/dib/cfx_dibbase.cpp b/core/fxge/dib/cfx_dibbase.cpp index cd00ede..8601275 100644 --- a/core/fxge/dib/cfx_dibbase.cpp +++ b/core/fxge/dib/cfx_dibbase.cpp
@@ -672,7 +672,7 @@ } } } else { - absl::optional<uint32_t> copy_len = fxge::CalculatePitch8( + std::optional<uint32_t> copy_len = fxge::CalculatePitch8( pNewBitmap->GetBPP(), /*components=*/1, pNewBitmap->GetWidth()); if (!copy_len.has_value()) { return nullptr;
diff --git a/core/fxge/dib/cfx_dibitmap.cpp b/core/fxge/dib/cfx_dibitmap.cpp index 01a3351..ec91d70 100644 --- a/core/fxge/dib/cfx_dibitmap.cpp +++ b/core/fxge/dib/cfx_dibitmap.cpp
@@ -44,7 +44,7 @@ m_Height = 0; m_Pitch = 0; - absl::optional<PitchAndSize> pitch_size = + std::optional<PitchAndSize> pitch_size = CalculatePitchAndSize(width, height, format, pitch); if (!pitch_size.has_value()) return false; @@ -499,35 +499,35 @@ } // static -absl::optional<CFX_DIBitmap::PitchAndSize> CFX_DIBitmap::CalculatePitchAndSize( +std::optional<CFX_DIBitmap::PitchAndSize> CFX_DIBitmap::CalculatePitchAndSize( int width, int height, FXDIB_Format format, uint32_t pitch) { if (width <= 0 || height <= 0) { - return absl::nullopt; + return std::nullopt; } int bpp = GetBppFromFormat(format); if (!bpp) { - return absl::nullopt; + return std::nullopt; } if (pitch == 0) { - absl::optional<uint32_t> pitch32 = fxge::CalculatePitch32(bpp, width); + std::optional<uint32_t> pitch32 = fxge::CalculatePitch32(bpp, width); if (!pitch32.has_value()) { - return absl::nullopt; + return std::nullopt; } pitch = pitch32.value(); } else { - absl::optional<uint32_t> actual_pitch = + std::optional<uint32_t> actual_pitch = fxge::CalculatePitch8(bpp, /*components=*/1, width); if (!actual_pitch.has_value() || pitch < actual_pitch.value()) { - return absl::nullopt; + return std::nullopt; } } FX_SAFE_UINT32 safe_size = pitch; safe_size *= height; if (!safe_size.IsValid()) - return absl::nullopt; + return std::nullopt; return PitchAndSize{pitch, safe_size.ValueOrDie()}; }
diff --git a/core/fxge/dib/cfx_dibitmap.h b/core/fxge/dib/cfx_dibitmap.h index 3651432..c1444d1 100644 --- a/core/fxge/dib/cfx_dibitmap.h +++ b/core/fxge/dib/cfx_dibitmap.h
@@ -7,12 +7,13 @@ #ifndef CORE_FXGE_DIB_CFX_DIBITMAP_H_ #define CORE_FXGE_DIB_CFX_DIBITMAP_H_ +#include <optional> + #include "core/fxcrt/fx_memory_wrappers.h" #include "core/fxcrt/maybe_owned.h" #include "core/fxcrt/retain_ptr.h" #include "core/fxge/dib/cfx_dibbase.h" #include "core/fxge/dib/fx_dib.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/containers/span.h" class CFX_DIBitmap final : public CFX_DIBBase { @@ -123,10 +124,10 @@ // If |pitch| is non-zero, then that be used as the actual pitch. // The actual pitch will be used to calculate the size. // Returns the calculated pitch and size on success, or nullopt on failure. - static absl::optional<PitchAndSize> CalculatePitchAndSize(int width, - int height, - FXDIB_Format format, - uint32_t pitch); + static std::optional<PitchAndSize> CalculatePitchAndSize(int width, + int height, + FXDIB_Format format, + uint32_t pitch); #if defined(PDF_USE_SKIA) // Converts to un-pre-multiplied alpha if necessary.
diff --git a/core/fxge/dib/cfx_dibitmap_unittest.cpp b/core/fxge/dib/cfx_dibitmap_unittest.cpp index 2b5f549..5473ce0 100644 --- a/core/fxge/dib/cfx_dibitmap_unittest.cpp +++ b/core/fxge/dib/cfx_dibitmap_unittest.cpp
@@ -28,7 +28,7 @@ TEST(CFX_DIBitmap, CalculatePitchAndSizeGood) { // Simple case with no provided pitch. - absl::optional<CFX_DIBitmap::PitchAndSize> result = + std::optional<CFX_DIBitmap::PitchAndSize> result = CFX_DIBitmap::CalculatePitchAndSize(100, 200, FXDIB_Format::kArgb, 0); ASSERT_TRUE(result.has_value()); EXPECT_EQ(400u, result.value().pitch); @@ -98,7 +98,7 @@ TEST(CFX_DIBitmap, CalculatePitchAndSizeBoundary) { // Test boundary condition for pitch overflow. - absl::optional<CFX_DIBitmap::PitchAndSize> result = + std::optional<CFX_DIBitmap::PitchAndSize> result = CFX_DIBitmap::CalculatePitchAndSize(536870908, 4, FXDIB_Format::k8bppRgb, 0); ASSERT_TRUE(result);
diff --git a/core/fxge/dib/cstretchengine.cpp b/core/fxge/dib/cstretchengine.cpp index 5590612..ff64646 100644 --- a/core/fxge/dib/cstretchengine.cpp +++ b/core/fxge/dib/cstretchengine.cpp
@@ -203,7 +203,7 @@ DCHECK_EQ(m_SrcBpp, GetBppFromFormat(FXDIB_Format::kArgb)); } - absl::optional<uint32_t> maybe_size = + std::optional<uint32_t> maybe_size = fxge::CalculatePitch32(m_DestBpp, clip_rect.Width()); if (!maybe_size.has_value()) return;
diff --git a/core/fxge/fx_font.cpp b/core/fxge/fx_font.cpp index 887629b..c5d7076 100644 --- a/core/fxge/fx_font.cpp +++ b/core/fxge/fx_font.cpp
@@ -42,7 +42,7 @@ if (!glyph.m_pGlyph) continue; - absl::optional<CFX_Point> point = glyph.GetOrigin({0, 0}); + std::optional<CFX_Point> point = glyph.GetOrigin({0, 0}); if (!point.has_value()) continue;
diff --git a/core/fxge/skia/fx_skia_device.cpp b/core/fxge/skia/fx_skia_device.cpp index 1e6e71b..73e18ca 100644 --- a/core/fxge/skia/fx_skia_device.cpp +++ b/core/fxge/skia/fx_skia_device.cpp
@@ -1028,7 +1028,7 @@ SkPath skClipPath; if (path.GetPoints().size() == 5 || path.GetPoints().size() == 4) { - absl::optional<CFX_FloatRect> maybe_rectf = path.GetRect(&deviceMatrix); + std::optional<CFX_FloatRect> maybe_rectf = path.GetRect(&deviceMatrix); if (maybe_rectf.has_value()) { CFX_FloatRect& rectf = maybe_rectf.value(); rectf.Intersect(CFX_FloatRect(0, 0,
diff --git a/core/fxge/text_glyph_pos.cpp b/core/fxge/text_glyph_pos.cpp index d887d08..b821f91 100644 --- a/core/fxge/text_glyph_pos.cpp +++ b/core/fxge/text_glyph_pos.cpp
@@ -15,19 +15,19 @@ TextGlyphPos::~TextGlyphPos() = default; -absl::optional<CFX_Point> TextGlyphPos::GetOrigin( +std::optional<CFX_Point> TextGlyphPos::GetOrigin( const CFX_Point& offset) const { FX_SAFE_INT32 left = m_Origin.x; left += m_pGlyph->left(); left -= offset.x; if (!left.IsValid()) - return absl::nullopt; + return std::nullopt; FX_SAFE_INT32 top = m_Origin.y; top -= m_pGlyph->top(); top -= offset.y; if (!top.IsValid()) - return absl::nullopt; + return std::nullopt; return CFX_Point(left.ValueOrDie(), top.ValueOrDie()); }
diff --git a/core/fxge/text_glyph_pos.h b/core/fxge/text_glyph_pos.h index 36935d8..97ba35c 100644 --- a/core/fxge/text_glyph_pos.h +++ b/core/fxge/text_glyph_pos.h
@@ -7,10 +7,10 @@ #ifndef CORE_FXGE_TEXT_GLYPH_POS_H_ #define CORE_FXGE_TEXT_GLYPH_POS_H_ -#include "core/fxcrt/fx_coordinates.h" +#include <optional> +#include "core/fxcrt/fx_coordinates.h" #include "core/fxcrt/unowned_ptr.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CFX_GlyphBitmap; @@ -20,7 +20,7 @@ TextGlyphPos(const TextGlyphPos&); ~TextGlyphPos(); - absl::optional<CFX_Point> GetOrigin(const CFX_Point& offset) const; + std::optional<CFX_Point> GetOrigin(const CFX_Point& offset) const; UnownedPtr<const CFX_GlyphBitmap> m_pGlyph; CFX_Point m_Origin;
diff --git a/core/fxge/win32/cfx_psrenderer.cpp b/core/fxge/win32/cfx_psrenderer.cpp index cb9e069..b536730 100644 --- a/core/fxge/win32/cfx_psrenderer.cpp +++ b/core/fxge/win32/cfx_psrenderer.cpp
@@ -39,17 +39,17 @@ namespace { -absl::optional<ByteString> GenerateType42SfntData( +std::optional<ByteString> GenerateType42SfntData( const ByteString& psname, pdfium::span<const uint8_t> font_data) { if (font_data.empty()) - return absl::nullopt; + return std::nullopt; // Per Type 42 font spec. constexpr size_t kMaxSfntStringSize = 65535; if (font_data.size() > kMaxSfntStringSize) { // TODO(thestig): Fonts that are too big need to be written out in sections. - return absl::nullopt; + return std::nullopt; } // Each byte is written as 2 ASCIIHex characters, so really 64 chars per line. @@ -170,7 +170,7 @@ const ByteString psname = font->GetPsName(); DCHECK(!psname.IsEmpty()); - absl::optional<ByteString> sfnt_data = + std::optional<ByteString> sfnt_data = GenerateType42SfntData(psname, font->GetFontSpan()); if (!sfnt_data.has_value()) return ByteString(); @@ -195,7 +195,7 @@ UnownedPtr<CFX_Font> const font; const uint32_t glyph_index; - absl::optional<std::array<float, 4>> adjust_matrix; + std::optional<std::array<float, 4>> adjust_matrix; }; CFX_PSRenderer::FaxCompressResult::FaxCompressResult() = default; @@ -578,7 +578,7 @@ uint8_t* output_buf = nullptr; size_t output_size = 0; bool output_buf_is_owned = true; - absl::optional<PSCompressResult> compress_result; + std::optional<PSCompressResult> compress_result; ByteString filter; if ((m_Level.value() == RenderingLevel::kLevel2 || options.bLossy) && m_pEncoderIface->pJpegEncodeFunc(bitmap, &output_buf, &output_size)) { @@ -870,10 +870,10 @@ return result; } -absl::optional<CFX_PSRenderer::PSCompressResult> CFX_PSRenderer::PSCompressData( +std::optional<CFX_PSRenderer::PSCompressResult> CFX_PSRenderer::PSCompressData( pdfium::span<const uint8_t> src_span) const { if (src_span.size() < 1024) - return absl::nullopt; + return std::nullopt; DataVector<uint8_t> (*encode_func)(pdfium::span<const uint8_t> src_span); ByteString filter; @@ -888,7 +888,7 @@ DataVector<uint8_t> decode_result = encode_func(src_span); if (decode_result.size() == 0 || decode_result.size() >= src_span.size()) - return absl::nullopt; + return std::nullopt; PSCompressResult result; result.data = std::move(decode_result); @@ -921,7 +921,7 @@ } // static -absl::optional<ByteString> CFX_PSRenderer::GenerateType42SfntDataForTesting( +std::optional<ByteString> CFX_PSRenderer::GenerateType42SfntDataForTesting( const ByteString& psname, pdfium::span<const uint8_t> font_data) { return GenerateType42SfntData(psname, font_data);
diff --git a/core/fxge/win32/cfx_psrenderer.h b/core/fxge/win32/cfx_psrenderer.h index c79802e..87ce8c4 100644 --- a/core/fxge/win32/cfx_psrenderer.h +++ b/core/fxge/win32/cfx_psrenderer.h
@@ -11,6 +11,7 @@ #include <stdint.h> #include <memory> +#include <optional> #include <sstream> #include <vector> @@ -23,7 +24,6 @@ #include "core/fxcrt/retain_ptr.h" #include "core/fxcrt/unowned_ptr.h" #include "core/fxge/cfx_graphstatedata.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/containers/span.h" class CFX_DIBBase; @@ -99,7 +99,7 @@ float font_size, uint32_t color); - static absl::optional<ByteString> GenerateType42SfntDataForTesting( + static std::optional<ByteString> GenerateType42SfntDataForTesting( const ByteString& psname, pdfium::span<const uint8_t> font_data); @@ -157,7 +157,7 @@ float font_size, fxcrt::ostringstream& buf); FaxCompressResult FaxCompressData(RetainPtr<const CFX_DIBBase> src) const; - absl::optional<PSCompressResult> PSCompressData( + std::optional<PSCompressResult> PSCompressData( pdfium::span<const uint8_t> src_span) const; void WritePreambleString(ByteStringView str); void WritePSBinary(pdfium::span<const uint8_t> data); @@ -167,7 +167,7 @@ bool m_bInited = false; bool m_bGraphStateSet = false; bool m_bColorSet = false; - absl::optional<RenderingLevel> m_Level; + std::optional<RenderingLevel> m_Level; uint32_t m_LastColor = 0; FX_RECT m_ClipBox; CFX_GraphStateData m_CurGraphState;
diff --git a/core/fxge/win32/cfx_psrenderer_unittest.cpp b/core/fxge/win32/cfx_psrenderer_unittest.cpp index 2112a26..44674e7 100644 --- a/core/fxge/win32/cfx_psrenderer_unittest.cpp +++ b/core/fxge/win32/cfx_psrenderer_unittest.cpp
@@ -4,6 +4,7 @@ #include "core/fxge/win32/cfx_psrenderer.h" +#include <optional> #include <utility> #include "core/fxcrt/bytestring.h" @@ -15,7 +16,6 @@ #include "core/fxge/dib/fx_dib.h" #include "core/fxge/win32/cfx_psfonttracker.h" #include "testing/gtest/include/gtest/gtest.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/containers/span.h" namespace { @@ -43,7 +43,7 @@ } // namespace TEST(PSRendererTest, GenerateType42SfntData) { - absl::optional<ByteString> result; + std::optional<ByteString> result; result = CFX_PSRenderer::GenerateType42SfntDataForTesting("empty", {}); EXPECT_FALSE(result.has_value());
diff --git a/core/fxge/win32/cgdi_device_driver.cpp b/core/fxge/win32/cgdi_device_driver.cpp index b959be4..6c0433b 100644 --- a/core/fxge/win32/cgdi_device_driver.cpp +++ b/core/fxge/win32/cgdi_device_driver.cpp
@@ -713,7 +713,7 @@ const CFX_Path& path, const CFX_Matrix* pMatrix, const CFX_FillRenderOptions& fill_options) { - absl::optional<CFX_FloatRect> maybe_rectf = path.GetRect(pMatrix); + std::optional<CFX_FloatRect> maybe_rectf = path.GetRect(pMatrix); if (maybe_rectf.has_value()) { FX_RECT rect = maybe_rectf.value().GetOuterRect(); // Can easily apply base clip to protect against wildly large rectangular
diff --git a/core/fxge/win32/cgdi_device_driver.h b/core/fxge/win32/cgdi_device_driver.h index 644a2a4..fe6415f 100644 --- a/core/fxge/win32/cgdi_device_driver.h +++ b/core/fxge/win32/cgdi_device_driver.h
@@ -9,9 +9,10 @@ #include <windows.h> +#include <optional> + #include "core/fxcrt/retain_ptr.h" #include "core/fxge/renderdevicedriver_iface.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CFX_DIBBase; @@ -76,7 +77,7 @@ int m_nBitsPerPixel; const DeviceType m_DeviceType; int m_RenderCaps; - absl::optional<FX_RECT> m_BaseClipBox; + std::optional<FX_RECT> m_BaseClipBox; }; #endif // CORE_FXGE_WIN32_CGDI_DEVICE_DRIVER_H_
diff --git a/core/fxge/win32/cgdi_plus_ext.cpp b/core/fxge/win32/cgdi_plus_ext.cpp index 1ea1836..e8bc88d 100644 --- a/core/fxge/win32/cgdi_plus_ext.cpp +++ b/core/fxge/win32/cgdi_plus_ext.cpp
@@ -394,7 +394,7 @@ return pPen; } -absl::optional<std::pair<size_t, size_t>> IsSmallTriangle( +std::optional<std::pair<size_t, size_t>> IsSmallTriangle( pdfium::span<const Gdiplus::PointF> points, const CFX_Matrix* pMatrix) { static constexpr size_t kPairs[3][2] = {{1, 2}, {0, 2}, {0, 1}}; @@ -414,7 +414,7 @@ if (distance_square < 2.25f) return std::make_pair(i, pair1); } - return absl::nullopt; + return std::nullopt; } class GpStream final : public IStream {
diff --git a/core/fxge/win32/cwin32_platform.cpp b/core/fxge/win32/cwin32_platform.cpp index 50d1d75..50aae40 100644 --- a/core/fxge/win32/cwin32_platform.cpp +++ b/core/fxge/win32/cwin32_platform.cpp
@@ -208,12 +208,12 @@ if (!m_pMapper) return name; - absl::optional<ByteString> maybe_installed = + std::optional<ByteString> maybe_installed = m_pMapper->InstalledFontNameStartingWith(name); if (maybe_installed.has_value()) return maybe_installed.value(); - absl::optional<ByteString> maybe_localized = + std::optional<ByteString> maybe_localized = m_pMapper->LocalizedFontNameStartingWith(name); if (maybe_localized.has_value()) return maybe_localized.value();
diff --git a/fpdfsdk/cpdfsdk_appstream.cpp b/fpdfsdk/cpdfsdk_appstream.cpp index d89fb80..c9d7758 100644 --- a/fpdfsdk/cpdfsdk_appstream.cpp +++ b/fpdfsdk/cpdfsdk_appstream.cpp
@@ -1098,9 +1098,9 @@ pImageDict->SetNewFor<CPDF_String>("Name", name, false); } -absl::optional<CheckStyle> CheckStyleFromCaption(const WideString& caption) { +std::optional<CheckStyle> CheckStyleFromCaption(const WideString& caption) { if (caption.IsEmpty()) - return absl::nullopt; + return std::nullopt; // Character values are ZapfDingbats encodings of named glyphs. switch (caption[0]) { @@ -1117,7 +1117,7 @@ case L'u': return CheckStyle::kDiamond; default: - return absl::nullopt; + return std::nullopt; } } @@ -1186,12 +1186,12 @@ CFX_FloatRect rcClient = rcWindow.GetDeflated(fBorderWidth, fBorderWidth); CPDF_DefaultAppearance da = pControl->GetDefaultAppearance(); - absl::optional<CFX_Color> color = da.GetColor(); + std::optional<CFX_Color> color = da.GetColor(); CFX_Color crText = color.value_or(CFX_Color(CFX_Color::Type::kGray, 0)); float fFontSize; ByteString csNameTag; - absl::optional<ByteString> font = da.GetFont(&fFontSize); + std::optional<ByteString> font = da.GetFont(&fFontSize); if (font.has_value()) csNameTag = font.value(); else @@ -1337,7 +1337,7 @@ CFX_FloatRect rcWindow = widget_->GetRotatedRect(); CFX_FloatRect rcClient = rcWindow.GetDeflated(fBorderWidth, fBorderWidth); - absl::optional<CFX_Color> color = pControl->GetDefaultAppearance().GetColor(); + std::optional<CFX_Color> color = pControl->GetDefaultAppearance().GetColor(); CFX_Color crText = color.value_or(CFX_Color()); CheckStyle nStyle = CheckStyleFromCaption(pControl->GetNormalCaption()) @@ -1416,7 +1416,7 @@ CFX_FloatRect rcWindow = widget_->GetRotatedRect(); CFX_FloatRect rcClient = rcWindow.GetDeflated(fBorderWidth, fBorderWidth); - absl::optional<CFX_Color> color = pControl->GetDefaultAppearance().GetColor(); + std::optional<CFX_Color> color = pControl->GetDefaultAppearance().GetColor(); CFX_Color crText = color.value_or(CFX_Color()); CheckStyle nStyle = CheckStyleFromCaption(pControl->GetNormalCaption()) .value_or(CheckStyle::kCircle); @@ -1502,7 +1502,7 @@ widget_->SetAppStateOff(); } -void CPDFSDK_AppStream::SetAsComboBox(absl::optional<WideString> sValue) { +void CPDFSDK_AppStream::SetAsComboBox(std::optional<WideString> sValue) { CPDF_FormControl* pControl = widget_->GetFormControl(); CPDF_FormField* pField = pControl->GetField(); fxcrt::ostringstream sBody; @@ -1654,7 +1654,7 @@ ByteString()); } -void CPDFSDK_AppStream::SetAsTextField(absl::optional<WideString> sValue) { +void CPDFSDK_AppStream::SetAsTextField(std::optional<WideString> sValue) { CPDF_FormControl* pControl = widget_->GetFormControl(); CPDF_FormField* pField = pControl->GetField(); fxcrt::ostringstream sBody;
diff --git a/fpdfsdk/cpdfsdk_appstream.h b/fpdfsdk/cpdfsdk_appstream.h index d3cc07c..e0a5277 100644 --- a/fpdfsdk/cpdfsdk_appstream.h +++ b/fpdfsdk/cpdfsdk_appstream.h
@@ -7,10 +7,11 @@ #ifndef FPDFSDK_CPDFSDK_APPSTREAM_H_ #define FPDFSDK_CPDFSDK_APPSTREAM_H_ +#include <optional> + #include "core/fxcrt/fx_string.h" #include "core/fxcrt/retain_ptr.h" #include "core/fxcrt/unowned_ptr.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CPDFSDK_Widget; class CPDF_Dictionary; @@ -24,9 +25,9 @@ void SetAsPushButton(); void SetAsCheckBox(); void SetAsRadioButton(); - void SetAsComboBox(absl::optional<WideString> sValue); + void SetAsComboBox(std::optional<WideString> sValue); void SetAsListBox(); - void SetAsTextField(absl::optional<WideString> sValue); + void SetAsTextField(std::optional<WideString> sValue); private: void AddImage(const ByteString& sAPType, const CPDF_Stream* pImage);
diff --git a/fpdfsdk/cpdfsdk_baannot.cpp b/fpdfsdk/cpdfsdk_baannot.cpp index c5d33d6..54e5f9c 100644 --- a/fpdfsdk/cpdfsdk_baannot.cpp +++ b/fpdfsdk/cpdfsdk_baannot.cpp
@@ -6,6 +6,7 @@ #include "fpdfsdk/cpdfsdk_baannot.h" +#include <optional> #include <vector> #include "constants/annotation_common.h" @@ -23,7 +24,6 @@ #include "core/fxge/cfx_drawutils.h" #include "fpdfsdk/cpdfsdk_formfillenvironment.h" #include "fpdfsdk/cpdfsdk_pageview.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/check.h" #include "third_party/base/containers/contains.h" @@ -228,7 +228,7 @@ std::vector<CFX_FloatRect> rects; rects.push_back(GetRect()); - absl::optional<CFX_FloatRect> annot_rect = m_pAnnot->GetPopupAnnotRect(); + std::optional<CFX_FloatRect> annot_rect = m_pAnnot->GetPopupAnnotRect(); if (annot_rect.has_value()) rects.push_back(annot_rect.value());
diff --git a/fpdfsdk/cpdfsdk_formfillenvironment.cpp b/fpdfsdk/cpdfsdk_formfillenvironment.cpp index a063f16..e3798fc 100644 --- a/fpdfsdk/cpdfsdk_formfillenvironment.cpp +++ b/fpdfsdk/cpdfsdk_formfillenvironment.cpp
@@ -408,7 +408,7 @@ CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot.Get()); DCHECK(pWidget); - absl::optional<WideString> sValue = + std::optional<WideString> sValue = m_pInteractiveForm->OnFormat(pWidget->GetFormField()); if (!pAnnot) return;
diff --git a/fpdfsdk/cpdfsdk_interactiveform.cpp b/fpdfsdk/cpdfsdk_interactiveform.cpp index 021124f..37c088c 100644 --- a/fpdfsdk/cpdfsdk_interactiveform.cpp +++ b/fpdfsdk/cpdfsdk_interactiveform.cpp
@@ -281,16 +281,16 @@ IJS_Runtime::ScopedEventContext pContext(pRuntime); pContext->OnField_Calculate(pFormField, pField, &sValue, &bRC); - absl::optional<IJS_Runtime::JS_Error> err = pContext->RunScript(csJS); + std::optional<IJS_Runtime::JS_Error> err = pContext->RunScript(csJS); if (!err.has_value() && bRC && sValue != sOldValue) pField->SetValue(sValue, NotificationOption::kNotify); } } -absl::optional<WideString> CPDFSDK_InteractiveForm::OnFormat( +std::optional<WideString> CPDFSDK_InteractiveForm::OnFormat( CPDF_FormField* pFormField) { if (!m_pFormFillEnv->IsJSPlatformPresent()) - return absl::nullopt; + return std::nullopt; WideString sValue = pFormField->GetValue(); IJS_Runtime* pRuntime = m_pFormFillEnv->GetIJSRuntime(); @@ -309,18 +309,18 @@ if (!script.IsEmpty()) { IJS_Runtime::ScopedEventContext pContext(pRuntime); pContext->OnField_Format(pFormField, &sValue); - absl::optional<IJS_Runtime::JS_Error> err = pContext->RunScript(script); + std::optional<IJS_Runtime::JS_Error> err = pContext->RunScript(script); if (!err.has_value()) return sValue; } } } - return absl::nullopt; + return std::nullopt; } void CPDFSDK_InteractiveForm::ResetFieldAppearance( CPDF_FormField* pFormField, - absl::optional<WideString> sValue) { + std::optional<WideString> sValue) { for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) { CPDF_FormControl* pFormCtrl = pFormField->GetControl(i); DCHECK(pFormCtrl); @@ -554,7 +554,7 @@ return; OnCalculate(pField); - ResetFieldAppearance(pField, absl::nullopt); + ResetFieldAppearance(pField, std::nullopt); UpdateField(pField); }
diff --git a/fpdfsdk/cpdfsdk_interactiveform.h b/fpdfsdk/cpdfsdk_interactiveform.h index 223e3d4..d2f54e1 100644 --- a/fpdfsdk/cpdfsdk_interactiveform.h +++ b/fpdfsdk/cpdfsdk_interactiveform.h
@@ -10,6 +10,7 @@ #include <functional> #include <map> #include <memory> +#include <optional> #include <vector> #include "core/fpdfdoc/cpdf_action.h" @@ -17,7 +18,6 @@ #include "core/fxcrt/unowned_ptr.h" #include "core/fxge/dib/fx_dib.h" #include "fpdfsdk/cpdfsdk_widget.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CPDF_Dictionary; class CPDF_FormControl; @@ -58,10 +58,10 @@ bool OnKeyStrokeCommit(CPDF_FormField* pFormField, const WideString& csValue); bool OnValidate(CPDF_FormField* pFormField, const WideString& csValue); void OnCalculate(CPDF_FormField* pFormField); - absl::optional<WideString> OnFormat(CPDF_FormField* pFormField); + std::optional<WideString> OnFormat(CPDF_FormField* pFormField); void ResetFieldAppearance(CPDF_FormField* pFormField, - absl::optional<WideString> sValue); + std::optional<WideString> sValue); void UpdateField(CPDF_FormField* pFormField); bool DoAction_Hide(const CPDF_Action& action);
diff --git a/fpdfsdk/cpdfsdk_pageview.cpp b/fpdfsdk/cpdfsdk_pageview.cpp index 1bbaeeb..41d62c5 100644 --- a/fpdfsdk/cpdfsdk_pageview.cpp +++ b/fpdfsdk/cpdfsdk_pageview.cpp
@@ -105,7 +105,7 @@ auto ret = std::make_unique<CPDFSDK_Widget>(annot, this, form); form->AddMap(form_control, ret.get()); if (pdf_form->NeedConstructAP()) - ret->ResetAppearance(absl::nullopt, CPDFSDK_Widget::kValueUnchanged); + ret->ResetAppearance(std::nullopt, CPDFSDK_Widget::kValueUnchanged); return ret; }
diff --git a/fpdfsdk/cpdfsdk_widget.cpp b/fpdfsdk/cpdfsdk_widget.cpp index 12a9b56..c217aaa 100644 --- a/fpdfsdk/cpdfsdk_widget.cpp +++ b/fpdfsdk/cpdfsdk_widget.cpp
@@ -437,35 +437,35 @@ } #endif // PDF_ENABLE_XFA -absl::optional<FX_COLORREF> CPDFSDK_Widget::GetFillColor() const { +std::optional<FX_COLORREF> CPDFSDK_Widget::GetFillColor() const { CFX_Color::TypeAndARGB type_argb_pair = GetFormControl()->GetColorARGB(pdfium::appearance::kBG); if (type_argb_pair.color_type == CFX_Color::Type::kTransparent) - return absl::nullopt; + return std::nullopt; return ArgbToColorRef(type_argb_pair.argb); } -absl::optional<FX_COLORREF> CPDFSDK_Widget::GetBorderColor() const { +std::optional<FX_COLORREF> CPDFSDK_Widget::GetBorderColor() const { CFX_Color::TypeAndARGB type_argb_pair = GetFormControl()->GetColorARGB(pdfium::appearance::kBC); if (type_argb_pair.color_type == CFX_Color::Type::kTransparent) - return absl::nullopt; + return std::nullopt; return ArgbToColorRef(type_argb_pair.argb); } -absl::optional<FX_COLORREF> CPDFSDK_Widget::GetTextColor() const { +std::optional<FX_COLORREF> CPDFSDK_Widget::GetTextColor() const { CPDF_DefaultAppearance da = GetFormControl()->GetDefaultAppearance(); - absl::optional<CFX_Color::TypeAndARGB> maybe_type_argb_pair = + std::optional<CFX_Color::TypeAndARGB> maybe_type_argb_pair = da.GetColorARGB(); if (!maybe_type_argb_pair.has_value()) - return absl::nullopt; + return std::nullopt; if (maybe_type_argb_pair.value().color_type == CFX_Color::Type::kTransparent) - return absl::nullopt; + return std::nullopt; return ArgbToColorRef(maybe_type_argb_pair.value().argb); } @@ -637,13 +637,13 @@ break; } default: - ResetAppearance(absl::nullopt, kValueUnchanged); + ResetAppearance(std::nullopt, kValueUnchanged); break; } } #endif // PDF_ENABLE_XFA -void CPDFSDK_Widget::ResetAppearance(absl::optional<WideString> sValue, +void CPDFSDK_Widget::ResetAppearance(std::optional<WideString> sValue, ValueChanged bValueChanged) { SetAppModified(); @@ -678,7 +678,7 @@ ClearCachedAnnotAP(); } -absl::optional<WideString> CPDFSDK_Widget::OnFormat() { +std::optional<WideString> CPDFSDK_Widget::OnFormat() { CPDF_FormField* pFormField = GetFormField(); DCHECK(pFormField); return m_pInteractiveForm->OnFormat(pFormField); @@ -687,7 +687,7 @@ void CPDFSDK_Widget::ResetFieldAppearance() { CPDF_FormField* pFormField = GetFormField(); DCHECK(pFormField); - m_pInteractiveForm->ResetFieldAppearance(pFormField, absl::nullopt); + m_pInteractiveForm->ResetFieldAppearance(pFormField, std::nullopt); } void CPDFSDK_Widget::OnDraw(CFX_RenderDevice* pDevice, @@ -1021,7 +1021,7 @@ CFX_Color CPDFSDK_Widget::GetTextPWLColor() const { CPDF_FormControl* pFormCtrl = GetFormControl(); - absl::optional<CFX_Color> crText = + std::optional<CFX_Color> crText = pFormCtrl->GetDefaultAppearance().GetColor(); return crText.value_or(CFX_Color(CFX_Color::Type::kGray, 0)); } @@ -1058,13 +1058,13 @@ return; if (!IsAppearanceValid()) - ResetAppearance(absl::nullopt, CPDFSDK_Widget::kValueUnchanged); + ResetAppearance(std::nullopt, CPDFSDK_Widget::kValueUnchanged); FormFieldType field_type = GetFieldType(); if (field_type == FormFieldType::kTextField || field_type == FormFieldType::kComboBox) { ObservedPtr<CPDFSDK_Annot> pObserved(this); - absl::optional<WideString> sValue = OnFormat(); + std::optional<WideString> sValue = OnFormat(); if (!pObserved) return;
diff --git a/fpdfsdk/cpdfsdk_widget.h b/fpdfsdk/cpdfsdk_widget.h index ce68cfb..31f2ff8 100644 --- a/fpdfsdk/cpdfsdk_widget.h +++ b/fpdfsdk/cpdfsdk_widget.h
@@ -7,6 +7,8 @@ #ifndef FPDFSDK_CPDFSDK_WIDGET_H_ #define FPDFSDK_CPDFSDK_WIDGET_H_ +#include <optional> + #include "core/fpdfdoc/cpdf_aaction.h" #include "core/fpdfdoc/cpdf_action.h" #include "core/fpdfdoc/cpdf_annot.h" @@ -16,7 +18,6 @@ #include "core/fxcrt/widestring.h" #include "core/fxge/cfx_color.h" #include "fpdfsdk/cpdfsdk_baannot.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CFFL_InteractiveFormFiller; class CFX_RenderDevice; @@ -80,9 +81,9 @@ int GetFieldFlags() const; int GetRotate() const; - absl::optional<FX_COLORREF> GetFillColor() const; - absl::optional<FX_COLORREF> GetBorderColor() const; - absl::optional<FX_COLORREF> GetTextColor() const; + std::optional<FX_COLORREF> GetFillColor() const; + std::optional<FX_COLORREF> GetBorderColor() const; + std::optional<FX_COLORREF> GetTextColor() const; float GetFontSize() const; int GetSelectedIndex(int nIndex) const; @@ -115,11 +116,11 @@ void ResetXFAAppearance(ValueChanged bValueChanged); #endif // PDF_ENABLE_XFA - void ResetAppearance(absl::optional<WideString> sValue, + void ResetAppearance(std::optional<WideString> sValue, ValueChanged bValueChanged); void ResetFieldAppearance(); void UpdateField(); - absl::optional<WideString> OnFormat(); + std::optional<WideString> OnFormat(); bool OnAAction(CPDF_AAction::AActionType type, CFFL_FieldAction* data,
diff --git a/fpdfsdk/formfiller/cffl_formfield.cpp b/fpdfsdk/formfiller/cffl_formfield.cpp index 88fb16a..50855c1 100644 --- a/fpdfsdk/formfiller/cffl_formfield.cpp +++ b/fpdfsdk/formfiller/cffl_formfield.cpp
@@ -317,7 +317,7 @@ if (dwFieldFlag & pdfium::form_flags::kReadOnly) dwCreateFlags |= PWS_READONLY; - absl::optional<FX_COLORREF> color = m_pWidget->GetFillColor(); + std::optional<FX_COLORREF> color = m_pWidget->GetFillColor(); if (color.has_value()) cp.sBackgroundColor = CFX_Color(color.value()); color = m_pWidget->GetBorderColor();
diff --git a/fpdfsdk/fpdf_dataavail_embeddertest.cpp b/fpdfsdk/fpdf_dataavail_embeddertest.cpp index 9718bb5..b205074 100644 --- a/fpdfsdk/fpdf_dataavail_embeddertest.cpp +++ b/fpdfsdk/fpdf_dataavail_embeddertest.cpp
@@ -309,7 +309,7 @@ // Map "Info" to an object within the first section without breaking // linearization. ByteString data(ByteStringView(loader.file_contents())); - absl::optional<size_t> index = data.Find("/Info 27 0 R"); + std::optional<size_t> index = data.Find("/Info 27 0 R"); ASSERT_TRUE(index.has_value()); auto span = loader.mutable_file_contents().subspan(index.value()).subspan(7); ASSERT_FALSE(span.empty()); @@ -337,7 +337,7 @@ TestAsyncLoader loader("linearized.pdf"); // Map "Info" to an invalid object without breaking linearization. ByteString data(ByteStringView(loader.file_contents())); - absl::optional<size_t> index = data.Find("/Info 27 0 R"); + std::optional<size_t> index = data.Find("/Info 27 0 R"); ASSERT_TRUE(index.has_value()); auto span = loader.mutable_file_contents().subspan(index.value()).subspan(6); ASSERT_GE(span.size(), 2u); @@ -368,7 +368,7 @@ TestAsyncLoader loader("linearized.pdf"); // Break the "Info" parameter without breaking linearization. ByteString data(ByteStringView(loader.file_contents())); - absl::optional<size_t> index = data.Find("/Info 27 0 R"); + std::optional<size_t> index = data.Find("/Info 27 0 R"); ASSERT_TRUE(index.has_value()); auto span = loader.mutable_file_contents().subspan(index.value()).subspan(2); ASSERT_FALSE(span.empty());
diff --git a/fpdfsdk/fpdf_doc.cpp b/fpdfsdk/fpdf_doc.cpp index 4f57144..e23103a 100644 --- a/fpdfsdk/fpdf_doc.cpp +++ b/fpdfsdk/fpdf_doc.cpp
@@ -512,7 +512,7 @@ // CPDF_PageLabel can deal with NULL |document|. CPDF_PageLabel label(CPDFDocumentFromFPDFDocument(document)); - absl::optional<WideString> str = label.GetLabel(page_index); + std::optional<WideString> str = label.GetLabel(page_index); return str.has_value() ? Utf16EncodeMaybeCopyAndReturnLength(str.value(), buffer, buflen) : 0;
diff --git a/fpdfsdk/fpdf_formfill.cpp b/fpdfsdk/fpdf_formfill.cpp index ebb030b..bc07d93 100644 --- a/fpdfsdk/fpdf_formfill.cpp +++ b/fpdfsdk/fpdf_formfill.cpp
@@ -712,7 +712,7 @@ if (!pForm) return; - absl::optional<FormFieldType> cast_input = + std::optional<FormFieldType> cast_input = CPDF_FormField::IntToFormFieldType(fieldType); if (!cast_input.has_value()) return;
diff --git a/fpdfsdk/fpdf_javascript.cpp b/fpdfsdk/fpdf_javascript.cpp index ed91ac6..f6a9180 100644 --- a/fpdfsdk/fpdf_javascript.cpp +++ b/fpdfsdk/fpdf_javascript.cpp
@@ -50,7 +50,7 @@ if (action.GetType() != CPDF_Action::Type::kJavaScript) return nullptr; - absl::optional<WideString> script = action.MaybeGetJavaScript(); + std::optional<WideString> script = action.MaybeGetJavaScript(); if (!script.has_value()) return nullptr;
diff --git a/fpdfsdk/fpdf_save.cpp b/fpdfsdk/fpdf_save.cpp index b7b7ddf9..d3e03a1 100644 --- a/fpdfsdk/fpdf_save.cpp +++ b/fpdfsdk/fpdf_save.cpp
@@ -6,6 +6,7 @@ #include "public/fpdf_save.h" +#include <optional> #include <utility> #include <vector> @@ -22,7 +23,6 @@ #include "fpdfsdk/cpdfsdk_filewriteadapter.h" #include "fpdfsdk/cpdfsdk_helpers.h" #include "public/fpdf_edit.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #ifdef PDF_ENABLE_XFA #include "core/fpdfapi/parser/cpdf_stream.h" @@ -153,7 +153,7 @@ bool DoDocSave(FPDF_DOCUMENT document, FPDF_FILEWRITE* pFileWrite, FPDF_DWORD flags, - absl::optional<int> version) { + std::optional<int> version) { CPDF_Document* pPDFDoc = CPDFDocumentFromFPDFDocument(document); if (!pPDFDoc) return false;
diff --git a/fpdfsdk/fpdf_structtree.cpp b/fpdfsdk/fpdf_structtree.cpp index 28312fc..e0cfb3f 100644 --- a/fpdfsdk/fpdf_structtree.cpp +++ b/fpdfsdk/fpdf_structtree.cpp
@@ -103,7 +103,7 @@ CPDFStructElementFromFPDFStructElement(struct_element); if (!elem) return 0; - absl::optional<WideString> id = elem->GetID(); + std::optional<WideString> id = elem->GetID(); if (!id.has_value()) return 0; return Utf16EncodeMaybeCopyAndReturnLength(id.value(), buffer, buflen); @@ -117,7 +117,7 @@ CPDFStructElementFromFPDFStructElement(struct_element); if (!elem) return 0; - absl::optional<WideString> lang = elem->GetLang(); + std::optional<WideString> lang = elem->GetLang(); if (!lang.has_value()) return 0; return Utf16EncodeMaybeCopyAndReturnLength(lang.value(), buffer, buflen);
diff --git a/fpdfsdk/fpdf_structtree_embeddertest.cpp b/fpdfsdk/fpdf_structtree_embeddertest.cpp index 78a3b87..f47d10b 100644 --- a/fpdfsdk/fpdf_structtree_embeddertest.cpp +++ b/fpdfsdk/fpdf_structtree_embeddertest.cpp
@@ -3,11 +3,11 @@ // found in the LICENSE file. #include <iterator> +#include <optional> #include "public/fpdf_structtree.h" #include "testing/embedder_test.h" #include "testing/fx_string_testhelpers.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class FPDFStructTreeEmbedderTest : public EmbedderTest {};
diff --git a/fpdfsdk/fpdf_text.cpp b/fpdfsdk/fpdf_text.cpp index 194a602..32e6f8f 100644 --- a/fpdfsdk/fpdf_text.cpp +++ b/fpdfsdk/fpdf_text.cpp
@@ -417,7 +417,7 @@ options.bConsecutive = !!(flags & FPDF_CONSECUTIVE); auto find = CPDF_TextPageFind::Create( textpage, WideStringFromFPDFWideString(findwhat), options, - start_index >= 0 ? absl::optional<size_t>(start_index) : absl::nullopt); + start_index >= 0 ? std::optional<size_t>(start_index) : std::nullopt); // Caller takes ownership. return FPDFSchHandleFromCPDFTextPageFind(find.release());
diff --git a/fpdfsdk/fpdf_view.cpp b/fpdfsdk/fpdf_view.cpp index 17c53ba..3cba971 100644 --- a/fpdfsdk/fpdf_view.cpp +++ b/fpdfsdk/fpdf_view.cpp
@@ -839,7 +839,7 @@ IPDF_Page* pPage = IPDFPageFromFPDFPage(page); const FX_RECT rect(start_x, start_y, start_x + size_x, start_y + size_y); - absl::optional<CFX_PointF> pos = + std::optional<CFX_PointF> pos = pPage->DeviceToPage(rect, rotate, CFX_PointF(device_x, device_y)); if (!pos.has_value()) return false; @@ -865,8 +865,7 @@ IPDF_Page* pPage = IPDFPageFromFPDFPage(page); const FX_RECT rect(start_x, start_y, start_x + size_x, start_y + size_y); CFX_PointF page_point(static_cast<float>(page_x), static_cast<float>(page_y)); - absl::optional<CFX_PointF> pos = - pPage->PageToDevice(rect, rotate, page_point); + std::optional<CFX_PointF> pos = pPage->PageToDevice(rect, rotate, page_point); if (!pos.has_value()) return false; @@ -1102,7 +1101,7 @@ return 0; CPDF_ViewerPreferences viewRef(pDoc); - absl::optional<ByteString> bsVal = viewRef.GenericName(key); + std::optional<ByteString> bsVal = viewRef.GenericName(key); if (!bsVal.has_value()) return 0;
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_page.cpp b/fpdfsdk/fpdfxfa/cpdfxfa_page.cpp index 6f4f2b7..4d883d3 100644 --- a/fpdfsdk/fpdfxfa/cpdfxfa_page.cpp +++ b/fpdfsdk/fpdfxfa/cpdfxfa_page.cpp
@@ -172,25 +172,25 @@ return 0.0f; } -absl::optional<CFX_PointF> CPDFXFA_Page::DeviceToPage( +std::optional<CFX_PointF> CPDFXFA_Page::DeviceToPage( const FX_RECT& rect, int rotate, const CFX_PointF& device_point) const { CXFA_FFPageView* pPageView = GetXFAPageView(); if (!m_pPDFPage && !pPageView) - return absl::nullopt; + return std::nullopt; CFX_Matrix page2device = GetDisplayMatrix(rect, rotate); return page2device.GetInverse().Transform(device_point); } -absl::optional<CFX_PointF> CPDFXFA_Page::PageToDevice( +std::optional<CFX_PointF> CPDFXFA_Page::PageToDevice( const FX_RECT& rect, int rotate, const CFX_PointF& page_point) const { CXFA_FFPageView* pPageView = GetXFAPageView(); if (!m_pPDFPage && !pPageView) - return absl::nullopt; + return std::nullopt; CFX_Matrix page2device = GetDisplayMatrix(rect, rotate); return page2device.Transform(page_point);
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_page.h b/fpdfsdk/fpdfxfa/cpdfxfa_page.h index 1b05562..10865d7 100644 --- a/fpdfsdk/fpdfxfa/cpdfxfa_page.h +++ b/fpdfsdk/fpdfxfa/cpdfxfa_page.h
@@ -7,12 +7,13 @@ #ifndef FPDFSDK_FPDFXFA_CPDFXFA_PAGE_H_ #define FPDFSDK_FPDFXFA_CPDFXFA_PAGE_H_ +#include <optional> + #include "core/fpdfapi/page/cpdf_page.h" #include "core/fpdfapi/page/ipdf_page.h" #include "core/fxcrt/fx_coordinates.h" #include "core/fxcrt/retain_ptr.h" #include "core/fxcrt/unowned_ptr.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CFX_RenderDevice; class CPDF_Dictionary; @@ -32,11 +33,11 @@ float GetPageWidth() const override; float GetPageHeight() const override; CFX_Matrix GetDisplayMatrix(const FX_RECT& rect, int iRotate) const override; - absl::optional<CFX_PointF> DeviceToPage( + std::optional<CFX_PointF> DeviceToPage( const FX_RECT& rect, int rotate, const CFX_PointF& device_point) const override; - absl::optional<CFX_PointF> PageToDevice( + std::optional<CFX_PointF> PageToDevice( const FX_RECT& rect, int rotate, const CFX_PointF& page_point) const override;
diff --git a/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp b/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp index 31e6c89..75898fe 100644 --- a/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp +++ b/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp
@@ -73,9 +73,9 @@ return m_expTable[a]; } -absl::optional<int32_t> CBC_ReedSolomonGF256::Inverse(int32_t a) { +std::optional<int32_t> CBC_ReedSolomonGF256::Inverse(int32_t a) { if (a == 0) - return absl::nullopt; + return std::nullopt; return m_expTable[255 - m_logTable[a]]; }
diff --git a/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.h b/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.h index b4b4da8..f75af9b0 100644 --- a/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.h +++ b/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.h
@@ -8,8 +8,7 @@ #define FXBARCODE_COMMON_REEDSOLOMON_BC_REEDSOLOMONGF256_H_ #include <memory> - -#include "third_party/abseil-cpp/absl/types/optional.h" +#include <optional> class CBC_ReedSolomonGF256Poly; @@ -25,7 +24,7 @@ int32_t coefficient); static int32_t AddOrSubtract(int32_t a, int32_t b); int32_t Exp(int32_t a); - absl::optional<int32_t> Inverse(int32_t a); + std::optional<int32_t> Inverse(int32_t a); int32_t Multiply(int32_t a, int32_t b); void Init();
diff --git a/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.cpp b/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.cpp index 449d0a3..463db48 100644 --- a/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.cpp +++ b/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.cpp
@@ -151,7 +151,7 @@ return nullptr; int32_t denominatorLeadingTerm = other->GetCoefficients(other->GetDegree()); - absl::optional<int32_t> inverseDenominatorLeadingTeam = + std::optional<int32_t> inverseDenominatorLeadingTeam = m_field->Inverse(denominatorLeadingTerm); if (!inverseDenominatorLeadingTeam.has_value()) return nullptr;
diff --git a/fxbarcode/datamatrix/BC_ASCIIEncoder.cpp b/fxbarcode/datamatrix/BC_ASCIIEncoder.cpp index 333fffe..215ffae 100644 --- a/fxbarcode/datamatrix/BC_ASCIIEncoder.cpp +++ b/fxbarcode/datamatrix/BC_ASCIIEncoder.cpp
@@ -22,20 +22,21 @@ #include "fxbarcode/datamatrix/BC_ASCIIEncoder.h" +#include <optional> + #include "core/fxcrt/fx_extension.h" #include "fxbarcode/datamatrix/BC_Encoder.h" #include "fxbarcode/datamatrix/BC_EncoderContext.h" #include "fxbarcode/datamatrix/BC_HighLevelEncoder.h" #include "fxbarcode/datamatrix/BC_SymbolInfo.h" -#include "third_party/abseil-cpp/absl/types/optional.h" namespace { -absl::optional<wchar_t> EncodeASCIIDigits(wchar_t digit1, wchar_t digit2) { +std::optional<wchar_t> EncodeASCIIDigits(wchar_t digit1, wchar_t digit2) { if (!FXSYS_IsDecimalDigit(digit1) || !FXSYS_IsDecimalDigit(digit2)) { // This could potentially return 0 as a sentinel value. Then this function - // can just return wchar_t instead of absl::optional<wchar_t>. - return absl::nullopt; + // can just return wchar_t instead of std::optional<wchar_t>. + return std::nullopt; } return static_cast<wchar_t>((digit1 - 48) * 10 + (digit2 - 48) + 130); } @@ -67,7 +68,7 @@ bool CBC_ASCIIEncoder::Encode(CBC_EncoderContext* context) { size_t n = DetermineConsecutiveDigitCount(context->m_msg, context->m_pos); if (n >= 2) { - absl::optional<wchar_t> code = EncodeASCIIDigits( + std::optional<wchar_t> code = EncodeASCIIDigits( context->m_msg[context->m_pos], context->m_msg[context->m_pos + 1]); if (!code.has_value()) return false;
diff --git a/fxbarcode/pdf417/BC_PDF417.cpp b/fxbarcode/pdf417/BC_PDF417.cpp index d48b98a..0d0ae68 100644 --- a/fxbarcode/pdf417/BC_PDF417.cpp +++ b/fxbarcode/pdf417/BC_PDF417.cpp
@@ -366,7 +366,7 @@ if (errorCorrectionCodeWords < 0) return false; - absl::optional<WideString> high_level = + std::optional<WideString> high_level = CBC_PDF417HighLevelEncoder::EncodeHighLevel(msg); if (!high_level.has_value()) return false; @@ -391,7 +391,7 @@ sb += (wchar_t)900; WideString dataCodewords(sb); - absl::optional<WideString> ec = + std::optional<WideString> ec = CBC_PDF417ErrorCorrection::GenerateErrorCorrection(dataCodewords, errorCorrectionLevel); if (!ec.has_value())
diff --git a/fxbarcode/pdf417/BC_PDF417ErrorCorrection.cpp b/fxbarcode/pdf417/BC_PDF417ErrorCorrection.cpp index 509f8aa..b0fe2b8 100644 --- a/fxbarcode/pdf417/BC_PDF417ErrorCorrection.cpp +++ b/fxbarcode/pdf417/BC_PDF417ErrorCorrection.cpp
@@ -133,12 +133,12 @@ } // static -absl::optional<WideString> CBC_PDF417ErrorCorrection::GenerateErrorCorrection( +std::optional<WideString> CBC_PDF417ErrorCorrection::GenerateErrorCorrection( const WideString& dataCodewords, int32_t errorCorrectionLevel) { int32_t k = GetErrorCorrectionCodewordCount(errorCorrectionLevel); if (k < 0) - return absl::nullopt; + return std::nullopt; DataVector<wchar_t> ech(k); size_t sld = dataCodewords.GetLength();
diff --git a/fxbarcode/pdf417/BC_PDF417ErrorCorrection.h b/fxbarcode/pdf417/BC_PDF417ErrorCorrection.h index ccb2fa0..4e0085f 100644 --- a/fxbarcode/pdf417/BC_PDF417ErrorCorrection.h +++ b/fxbarcode/pdf417/BC_PDF417ErrorCorrection.h
@@ -9,8 +9,9 @@ #include <stdint.h> +#include <optional> + #include "core/fxcrt/widestring.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CBC_PDF417ErrorCorrection { public: @@ -18,7 +19,7 @@ ~CBC_PDF417ErrorCorrection() = delete; static int32_t GetErrorCorrectionCodewordCount(int32_t errorCorrectionLevel); - static absl::optional<WideString> GenerateErrorCorrection( + static std::optional<WideString> GenerateErrorCorrection( const WideString& dataCodewords, int32_t errorCorrectionLevel); };
diff --git a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp index 7affbc81..d903b8f 100644 --- a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp +++ b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp
@@ -77,7 +77,7 @@ } // namespace // static -absl::optional<WideString> CBC_PDF417HighLevelEncoder::EncodeHighLevel( +std::optional<WideString> CBC_PDF417HighLevelEncoder::EncodeHighLevel( WideStringView msg) { const ByteString bytes = FX_UTF8Encode(msg); size_t len = bytes.GetLength(); @@ -86,7 +86,7 @@ for (size_t i = 0; i < len; i++) { wchar_t ch = bytes[i] & 0xff; if (ch == '?' && bytes[i] != '?') - return absl::nullopt; + return std::nullopt; result += ch; } @@ -115,10 +115,10 @@ textSubMode = EncodeText(result, p, t, textSubMode, &sb); p += t; } else { - absl::optional<size_t> b = + std::optional<size_t> b = DetermineConsecutiveBinaryCount(result, bytes.raw_span(), p); if (!b.has_value()) - return absl::nullopt; + return std::nullopt; size_t b_value = b.value(); if (b_value == 0) @@ -352,7 +352,7 @@ return idx - startpos; } -absl::optional<size_t> +std::optional<size_t> CBC_PDF417HighLevelEncoder::DetermineConsecutiveBinaryCount( WideString msg, pdfium::span<const uint8_t> bytes, @@ -384,7 +384,7 @@ return idx - startpos; ch = msg[idx]; if (bytes[idx] == 63 && ch != '?') - return absl::nullopt; + return std::nullopt; idx++; } return idx - startpos;
diff --git a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h index 6e8f034..d13968c 100644 --- a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h +++ b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h
@@ -7,9 +7,10 @@ #ifndef FXBARCODE_PDF417_BC_PDF417HIGHLEVELENCODER_H_ #define FXBARCODE_PDF417_BC_PDF417HIGHLEVELENCODER_H_ +#include <optional> + #include "core/fxcrt/widestring.h" #include "fxbarcode/pdf417/BC_PDF417.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/containers/span.h" class CBC_PDF417HighLevelEncoder { @@ -17,7 +18,7 @@ CBC_PDF417HighLevelEncoder() = delete; ~CBC_PDF417HighLevelEncoder() = delete; - static absl::optional<WideString> EncodeHighLevel(WideStringView msg); + static std::optional<WideString> EncodeHighLevel(WideStringView msg); private: enum class EncodingMode { kUnknown = 0, kText, kByte, kNumeric }; @@ -40,7 +41,7 @@ WideString* sb); static size_t DetermineConsecutiveDigitCount(WideString msg, size_t startpos); static size_t DetermineConsecutiveTextCount(WideString msg, size_t startpos); - static absl::optional<size_t> DetermineConsecutiveBinaryCount( + static std::optional<size_t> DetermineConsecutiveBinaryCount( WideString msg, pdfium::span<const uint8_t> bytes, size_t startpos);
diff --git a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder_unittest.cpp b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder_unittest.cpp index 7f665ac..78b1c37 100644 --- a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder_unittest.cpp +++ b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder_unittest.cpp
@@ -43,7 +43,7 @@ const EncodeHighLevelCase& testcase = kEncodeHighLevelCases[i]; WideStringView input(testcase.input); WideString expected(testcase.expected, testcase.expected_length); - absl::optional<WideString> result = + std::optional<WideString> result = CBC_PDF417HighLevelEncoder::EncodeHighLevel(input); ASSERT_TRUE(result.has_value()); EXPECT_EQ(expected, result.value()) << " for case number " << i;
diff --git a/fxbarcode/qrcode/BC_QRCoderEncoder.cpp b/fxbarcode/qrcode/BC_QRCoderEncoder.cpp index b55255d..80fab76 100644 --- a/fxbarcode/qrcode/BC_QRCoderEncoder.cpp +++ b/fxbarcode/qrcode/BC_QRCoderEncoder.cpp
@@ -26,6 +26,7 @@ #include <algorithm> #include <memory> +#include <optional> #include <utility> #include <vector> @@ -42,7 +43,6 @@ #include "fxbarcode/qrcode/BC_QRCoderMatrixUtil.h" #include "fxbarcode/qrcode/BC_QRCoderMode.h" #include "fxbarcode/qrcode/BC_QRCoderVersion.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/check.h" #include "third_party/base/check_op.h" @@ -206,7 +206,7 @@ CBC_QRCoderMaskUtil::ApplyMaskPenaltyRule4(matrix); } -absl::optional<int32_t> ChooseMaskPattern( +std::optional<int32_t> ChooseMaskPattern( CBC_QRCoderBitVector* bits, const CBC_QRCoderErrorCorrectionLevel* ecLevel, int32_t version, @@ -217,7 +217,7 @@ maskPattern++) { if (!CBC_QRCoderMatrixUtil::BuildMatrix(bits, ecLevel, version, maskPattern, matrix)) { - return absl::nullopt; + return std::nullopt; } int32_t penalty = CalculateMaskPenalty(matrix); if (penalty < minPenalty) { @@ -400,7 +400,7 @@ auto matrix = std::make_unique<CBC_CommonByteMatrix>( qrCode->GetMatrixWidth(), qrCode->GetMatrixWidth()); - absl::optional<int32_t> maskPattern = ChooseMaskPattern( + std::optional<int32_t> maskPattern = ChooseMaskPattern( &finalBits, qrCode->GetECLevel(), qrCode->GetVersion(), matrix.get()); if (!maskPattern.has_value()) return false;
diff --git a/fxjs/cfx_globaldata.cpp b/fxjs/cfx_globaldata.cpp index 6d6efd5..b07974e 100644 --- a/fxjs/cfx_globaldata.cpp +++ b/fxjs/cfx_globaldata.cpp
@@ -254,7 +254,7 @@ bool ret; { // Span can't outlive call to BufferDone(). - absl::optional<pdfium::span<uint8_t>> buffer = m_pDelegate->LoadBuffer(); + std::optional<pdfium::span<uint8_t>> buffer = m_pDelegate->LoadBuffer(); if (!buffer.has_value() || buffer.value().empty()) return false;
diff --git a/fxjs/cfx_globaldata.h b/fxjs/cfx_globaldata.h index ac94058..7ca4fd6 100644 --- a/fxjs/cfx_globaldata.h +++ b/fxjs/cfx_globaldata.h
@@ -8,12 +8,12 @@ #define FXJS_CFX_GLOBALDATA_H_ #include <memory> +#include <optional> #include <vector> #include "core/fxcrt/binary_buffer.h" #include "core/fxcrt/unowned_ptr.h" #include "fxjs/cfx_keyvalue.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/containers/span.h" class CFX_GlobalData { @@ -23,7 +23,7 @@ virtual ~Delegate() = default; virtual bool StoreBuffer(pdfium::span<const uint8_t> pBuffer) = 0; - virtual absl::optional<pdfium::span<uint8_t>> LoadBuffer() = 0; + virtual std::optional<pdfium::span<uint8_t>> LoadBuffer() = 0; virtual void BufferDone() = 0; };
diff --git a/fxjs/cfx_globaldata_unittest.cpp b/fxjs/cfx_globaldata_unittest.cpp index 8121701..569d159 100644 --- a/fxjs/cfx_globaldata_unittest.cpp +++ b/fxjs/cfx_globaldata_unittest.cpp
@@ -23,7 +23,7 @@ last_buffer_ = DataVector<uint8_t>(buffer.begin(), buffer.end()); return true; } - absl::optional<pdfium::span<uint8_t>> LoadBuffer() override { + std::optional<pdfium::span<uint8_t>> LoadBuffer() override { return pdfium::span<uint8_t>(last_buffer_); } void BufferDone() override {
diff --git a/fxjs/cfxjs_engine.cpp b/fxjs/cfxjs_engine.cpp index 35653c9..b3dd904 100644 --- a/fxjs/cfxjs_engine.cpp +++ b/fxjs/cfxjs_engine.cpp
@@ -574,7 +574,7 @@ GetIsolate()->SetData(g_embedderDataSlot, nullptr); } -absl::optional<IJS_Runtime::JS_Error> CFXJS_Engine::Execute( +std::optional<IJS_Runtime::JS_Error> CFXJS_Engine::Execute( const WideString& script) { v8::Isolate::Scope isolate_scope(GetIsolate()); v8::TryCatch try_catch(GetIsolate()); @@ -599,7 +599,7 @@ std::tie(line, column) = GetLineAndColumnFromError(msg, context); return IJS_Runtime::JS_Error(line, column, WideString::FromUTF8(*error)); } - return absl::nullopt; + return std::nullopt; } v8::Local<v8::Object> CFXJS_Engine::NewFXJSBoundObject(uint32_t nObjDefnID,
diff --git a/fxjs/cfxjs_engine.h b/fxjs/cfxjs_engine.h index b0011fc..91ac103 100644 --- a/fxjs/cfxjs_engine.h +++ b/fxjs/cfxjs_engine.h
@@ -130,7 +130,7 @@ void ReleaseEngine(); // Called after FXJS_InitializeEngine call made. - absl::optional<IJS_Runtime::JS_Error> Execute(const WideString& script); + std::optional<IJS_Runtime::JS_Error> Execute(const WideString& script); v8::Local<v8::Object> GetThisObj(); v8::Local<v8::Object> NewFXJSBoundObject(uint32_t nObjDefnID,
diff --git a/fxjs/cfxjs_engine_embeddertest.cpp b/fxjs/cfxjs_engine_embeddertest.cpp index 70e84ab..f8952af 100644 --- a/fxjs/cfxjs_engine_embeddertest.cpp +++ b/fxjs/cfxjs_engine_embeddertest.cpp
@@ -40,7 +40,7 @@ v8::HandleScope handle_scope(isolate()); v8::Context::Scope context_scope(GetV8Context()); - absl::optional<IJS_Runtime::JS_Error> err = + std::optional<IJS_Runtime::JS_Error> err = engine()->Execute(WideString(kScript1)); EXPECT_FALSE(err); CheckAssignmentInEngineContext(engine(), kExpected1); @@ -58,7 +58,7 @@ v8::Context::Scope context_scope(GetV8Context()); { - absl::optional<IJS_Runtime::JS_Error> err = + std::optional<IJS_Runtime::JS_Error> err = engine()->Execute(WideString(kScript0)); EXPECT_FALSE(err); CheckAssignmentInEngineContext(engine(), kExpected0); @@ -66,7 +66,7 @@ { // engine1 executing in engine1's context doesn't affect main. v8::Context::Scope context_scope1(engine1.GetV8Context()); - absl::optional<IJS_Runtime::JS_Error> err = + std::optional<IJS_Runtime::JS_Error> err = engine1.Execute(WideString(kScript1)); EXPECT_FALSE(err); CheckAssignmentInEngineContext(engine(), kExpected0); @@ -75,7 +75,7 @@ { // engine1 executing in engine2's context doesn't affect engine1. v8::Context::Scope context_scope2(engine2.GetV8Context()); - absl::optional<IJS_Runtime::JS_Error> err = + std::optional<IJS_Runtime::JS_Error> err = engine1.Execute(WideString(kScript2)); EXPECT_FALSE(err); CheckAssignmentInEngineContext(engine(), kExpected0); @@ -91,7 +91,7 @@ v8::HandleScope handle_scope(isolate()); v8::Context::Scope context_scope(GetV8Context()); - absl::optional<IJS_Runtime::JS_Error> err = + std::optional<IJS_Runtime::JS_Error> err = engine()->Execute(L"functoon(x) { return x+1; }"); EXPECT_TRUE(err); EXPECT_STREQ(L"SyntaxError: Unexpected token '{'", err->exception.c_str()); @@ -104,7 +104,7 @@ v8::HandleScope handle_scope(isolate()); v8::Context::Scope context_scope(GetV8Context()); - absl::optional<IJS_Runtime::JS_Error> err = + std::optional<IJS_Runtime::JS_Error> err = engine()->Execute(L"let a = 3;\nundefined.colour"); EXPECT_TRUE(err); EXPECT_EQ(
diff --git a/fxjs/cfxjs_engine_unittest.cpp b/fxjs/cfxjs_engine_unittest.cpp index 8d6c36b..c138255 100644 --- a/fxjs/cfxjs_engine_unittest.cpp +++ b/fxjs/cfxjs_engine_unittest.cpp
@@ -92,7 +92,7 @@ EXPECT_FALSE(temp_destroyed); } - absl::optional<IJS_Runtime::JS_Error> err = engine()->Execute(L"gc();"); + std::optional<IJS_Runtime::JS_Error> err = engine()->Execute(L"gc();"); EXPECT_FALSE(err); EXPECT_TRUE(perm_created);
diff --git a/fxjs/cjs_event_context.cpp b/fxjs/cjs_event_context.cpp index 65eee9d..5fa7cd0 100644 --- a/fxjs/cjs_event_context.cpp +++ b/fxjs/cjs_event_context.cpp
@@ -22,7 +22,7 @@ CJS_EventContext::~CJS_EventContext() = default; -absl::optional<IJS_Runtime::JS_Error> CJS_EventContext::RunScript( +std::optional<IJS_Runtime::JS_Error> CJS_EventContext::RunScript( const WideString& script) { v8::Isolate::Scope isolate_scope(m_pRuntime->GetIsolate()); v8::HandleScope handle_scope(m_pRuntime->GetIsolate()); @@ -44,7 +44,7 @@ 1, 1, JSGetStringFromID(JSMessage::kDuplicateEventError)); } - absl::optional<IJS_Runtime::JS_Error> err; + std::optional<IJS_Runtime::JS_Error> err; if (script.GetLength() > 0) err = m_pRuntime->ExecuteScript(script);
diff --git a/fxjs/cjs_event_context.h b/fxjs/cjs_event_context.h index a0b266b..793c247 100644 --- a/fxjs/cjs_event_context.h +++ b/fxjs/cjs_event_context.h
@@ -47,7 +47,7 @@ ~CJS_EventContext() override; // IJS_EventContext - absl::optional<IJS_Runtime::JS_Error> RunScript( + std::optional<IJS_Runtime::JS_Error> RunScript( const WideString& script) override; void OnDoc_Open(const WideString& strTargetName) override; void OnDoc_WillPrint() override;
diff --git a/fxjs/cjs_event_context_stub.cpp b/fxjs/cjs_event_context_stub.cpp index b8d0518..43ca89b 100644 --- a/fxjs/cjs_event_context_stub.cpp +++ b/fxjs/cjs_event_context_stub.cpp
@@ -10,7 +10,7 @@ CJS_EventContextStub::~CJS_EventContextStub() = default; -absl::optional<IJS_Runtime::JS_Error> CJS_EventContextStub::RunScript( +std::optional<IJS_Runtime::JS_Error> CJS_EventContextStub::RunScript( const WideString& script) { return IJS_Runtime::JS_Error(1, 1, L"JavaScript support not present"); }
diff --git a/fxjs/cjs_event_context_stub.h b/fxjs/cjs_event_context_stub.h index 5c9b50a..f6494b2 100644 --- a/fxjs/cjs_event_context_stub.h +++ b/fxjs/cjs_event_context_stub.h
@@ -15,7 +15,7 @@ ~CJS_EventContextStub() override; // IJS_EventContext: - absl::optional<IJS_Runtime::JS_Error> RunScript( + std::optional<IJS_Runtime::JS_Error> RunScript( const WideString& script) override; void OnDoc_Open(const WideString& strTargetName) override {}
diff --git a/fxjs/cjs_field.cpp b/fxjs/cjs_field.cpp index 1724f81..08d9b9d 100644 --- a/fxjs/cjs_field.cpp +++ b/fxjs/cjs_field.cpp
@@ -8,6 +8,7 @@ #include <algorithm> #include <memory> +#include <optional> #include <utility> #include "constants/access_permissions.h" @@ -27,7 +28,6 @@ #include "fxjs/cjs_icon.h" #include "fxjs/fxv8.h" #include "fxjs/js_resources.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/check.h" #include "third_party/base/containers/span.h" #include "third_party/base/notreached.h" @@ -68,7 +68,7 @@ if (IsComboBoxOrTextField(pFormField)) { for (auto& pWidget : widgets) { if (pWidget) { - absl::optional<WideString> sValue = pWidget->OnFormat(); + std::optional<WideString> sValue = pWidget->OnFormat(); if (pWidget) { // Not redundant, may be clobbered by OnFormat. pWidget->ResetAppearance(sValue, CPDFSDK_Widget::kValueUnchanged); } @@ -77,7 +77,7 @@ } else { for (auto& pWidget : widgets) { if (pWidget) { - pWidget->ResetAppearance(absl::nullopt, + pWidget->ResetAppearance(std::nullopt, CPDFSDK_Widget::kValueUnchanged); } } @@ -108,13 +108,12 @@ FormFieldType fieldType = pWidget->GetFieldType(); if (fieldType == FormFieldType::kComboBox || fieldType == FormFieldType::kTextField) { - absl::optional<WideString> sValue = pWidget->OnFormat(); + std::optional<WideString> sValue = pWidget->OnFormat(); if (!observed_widget) return; pWidget->ResetAppearance(sValue, CPDFSDK_Widget::kValueUnchanged); } else { - pWidget->ResetAppearance(absl::nullopt, - CPDFSDK_Widget::kValueUnchanged); + pWidget->ResetAppearance(std::nullopt, CPDFSDK_Widget::kValueUnchanged); } if (!observed_widget) return; @@ -132,7 +131,7 @@ int control_index; }; -absl::optional<FieldNameData> ParseFieldName(const WideString& field_name) { +std::optional<FieldNameData> ParseFieldName(const WideString& field_name) { auto reverse_it = field_name.rbegin(); while (reverse_it != field_name.rend()) { if (*reverse_it == L'.') @@ -140,14 +139,14 @@ ++reverse_it; } if (reverse_it == field_name.rend()) { - return absl::nullopt; + return std::nullopt; } WideString suffixal = field_name.Last(reverse_it - field_name.rbegin()); int control_index = FXSYS_wtoi(suffixal.c_str()); if (control_index == 0) { suffixal.TrimRight(L' '); if (suffixal != L"0") { - return absl::nullopt; + return std::nullopt; } } return FieldNameData(field_name.First(field_name.rend() - reverse_it - 1), @@ -649,7 +648,7 @@ swFieldNameTemp.Replace(L"..", L"."); if (pForm->CountFields(swFieldNameTemp) <= 0) { - absl::optional<FieldNameData> parsed_data = ParseFieldName(swFieldNameTemp); + std::optional<FieldNameData> parsed_data = ParseFieldName(swFieldNameTemp); if (!parsed_data.has_value()) return false; @@ -1905,7 +1904,7 @@ return CJS_Result::Failure(JSMessage::kBadObjectError); CPDF_DefaultAppearance FieldAppearance = pFormControl->GetDefaultAppearance(); - absl::optional<CFX_Color::TypeAndARGB> maybe_type_argb_pair = + std::optional<CFX_Color::TypeAndARGB> maybe_type_argb_pair = FieldAppearance.GetColorARGB(); CFX_Color crRet; @@ -1956,7 +1955,7 @@ return CJS_Result::Failure(JSMessage::kObjectTypeError); } - absl::optional<WideString> wsFontName = + std::optional<WideString> wsFontName = pFormControl->GetDefaultControlFontName(); if (!wsFontName.has_value()) return CJS_Result::Failure(JSMessage::kBadObjectError);
diff --git a/fxjs/cjs_publicmethods.cpp b/fxjs/cjs_publicmethods.cpp index 0377d93..2cd257d 100644 --- a/fxjs/cjs_publicmethods.cpp +++ b/fxjs/cjs_publicmethods.cpp
@@ -12,6 +12,7 @@ #include <iomanip> #include <iterator> #include <limits> +#include <optional> #include <sstream> #include <string> #include <utility> @@ -35,7 +36,6 @@ #include "fxjs/fx_date_helpers.h" #include "fxjs/js_define.h" #include "fxjs/js_resources.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/check.h" #include "third_party/base/containers/span.h" #include "third_party/base/numerics/safe_conversions.h" @@ -213,9 +213,9 @@ str->Replace(L",", L"."); } -absl::optional<double> ApplyNamedOperation(const WideString& wsFunction, - double dValue1, - double dValue2) { +std::optional<double> ApplyNamedOperation(const WideString& wsFunction, + double dValue1, + double dValue2) { if (wsFunction.EqualsASCIINoCase("AVG") || wsFunction.EqualsASCIINoCase("SUM")) { return dValue1 + dValue2; @@ -226,7 +226,7 @@ return std::min(dValue1, dValue2); if (wsFunction.EqualsASCIINoCase("MAX")) return std::max(dValue1, dValue2); - return absl::nullopt; + return std::nullopt; } } // namespace @@ -846,7 +846,7 @@ strValue.ReleaseBuffer(szNewSize); // for processing separator style - absl::optional<size_t> mark_pos = strValue.Find('.'); + std::optional<size_t> mark_pos = strValue.Find('.'); if (mark_pos.has_value()) { char mark = DecimalMarkForStyle(iSepStyle); if (mark != '.') @@ -1255,7 +1255,7 @@ if (isnan(arg1) || isnan(arg2)) return CJS_Result::Failure(JSMessage::kValueError); - absl::optional<double> result = ApplyNamedOperation(sFunction, arg1, arg2); + std::optional<double> result = ApplyNamedOperation(sFunction, arg1, arg2); if (!result.has_value()) return CJS_Result::Failure(JSMessage::kValueError); @@ -1354,7 +1354,7 @@ wcscmp(sFunction.c_str(), L"MAX") == 0)) { dValue = dTemp; } - absl::optional<double> dResult = + std::optional<double> dResult = ApplyNamedOperation(sFunction, dValue, dTemp); if (!dResult.has_value()) return CJS_Result::Failure(JSMessage::kValueError);
diff --git a/fxjs/cjs_result.h b/fxjs/cjs_result.h index 993a4dc..2e94797 100644 --- a/fxjs/cjs_result.h +++ b/fxjs/cjs_result.h
@@ -7,8 +7,9 @@ #ifndef FXJS_CJS_RESULT_H_ #define FXJS_CJS_RESULT_H_ +#include <optional> + #include "fxjs/js_resources.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "v8/include/v8-forward.h" class CJS_Result { @@ -50,7 +51,7 @@ explicit CJS_Result(const WideString&); // Error with custom message. explicit CJS_Result(JSMessage id); // Error with stock message. - absl::optional<WideString> error_; + std::optional<WideString> error_; v8::Local<v8::Value> return_; };
diff --git a/fxjs/cjs_runtime.cpp b/fxjs/cjs_runtime.cpp index f7d76da..aba2346 100644 --- a/fxjs/cjs_runtime.cpp +++ b/fxjs/cjs_runtime.cpp
@@ -166,7 +166,7 @@ return m_pFormFillEnv.Get(); } -absl::optional<IJS_Runtime::JS_Error> CJS_Runtime::ExecuteScript( +std::optional<IJS_Runtime::JS_Error> CJS_Runtime::ExecuteScript( const WideString& script) { return Execute(script); }
diff --git a/fxjs/cjs_runtime.h b/fxjs/cjs_runtime.h index a3569f6..97e4ebf 100644 --- a/fxjs/cjs_runtime.h +++ b/fxjs/cjs_runtime.h
@@ -34,7 +34,7 @@ IJS_EventContext* NewEventContext() override; void ReleaseEventContext(IJS_EventContext* pContext) override; CPDFSDK_FormFillEnvironment* GetFormFillEnv() const override; - absl::optional<IJS_Runtime::JS_Error> ExecuteScript( + std::optional<IJS_Runtime::JS_Error> ExecuteScript( const WideString& script) override; CJS_EventContext* GetCurrentEventContext() const;
diff --git a/fxjs/cjs_runtimestub.cpp b/fxjs/cjs_runtimestub.cpp index 0a68a17..c020664 100644 --- a/fxjs/cjs_runtimestub.cpp +++ b/fxjs/cjs_runtimestub.cpp
@@ -29,7 +29,7 @@ return nullptr; } -absl::optional<IJS_Runtime::JS_Error> CJS_RuntimeStub::ExecuteScript( +std::optional<IJS_Runtime::JS_Error> CJS_RuntimeStub::ExecuteScript( const WideString& script) { - return absl::nullopt; + return std::nullopt; }
diff --git a/fxjs/cjs_runtimestub.h b/fxjs/cjs_runtimestub.h index c58e2c4..e1b96a4 100644 --- a/fxjs/cjs_runtimestub.h +++ b/fxjs/cjs_runtimestub.h
@@ -27,7 +27,7 @@ void ReleaseEventContext(IJS_EventContext* pContext) override; CPDFSDK_FormFillEnvironment* GetFormFillEnv() const override; - absl::optional<IJS_Runtime::JS_Error> ExecuteScript( + std::optional<IJS_Runtime::JS_Error> ExecuteScript( const WideString& script) override; private:
diff --git a/fxjs/cjs_util.cpp b/fxjs/cjs_util.cpp index 7efb840..e868fcc 100644 --- a/fxjs/cjs_util.cpp +++ b/fxjs/cjs_util.cpp
@@ -112,7 +112,7 @@ { size_t offset = 0; while (true) { - absl::optional<size_t> offset_end = + std::optional<size_t> offset_end = unsafe_fmt_string.Find(L"%", offset + 1); if (!offset_end.has_value()) { unsafe_conversion_specifiers.push_back(
diff --git a/fxjs/ijs_event_context.h b/fxjs/ijs_event_context.h index 8e9d23c..607144f 100644 --- a/fxjs/ijs_event_context.h +++ b/fxjs/ijs_event_context.h
@@ -7,9 +7,10 @@ #ifndef FXJS_IJS_EVENT_CONTEXT_H_ #define FXJS_IJS_EVENT_CONTEXT_H_ +#include <optional> + #include "core/fxcrt/widestring.h" #include "fxjs/ijs_runtime.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CPDF_FormField; @@ -20,7 +21,7 @@ public: virtual ~IJS_EventContext() = default; - virtual absl::optional<IJS_Runtime::JS_Error> RunScript( + virtual std::optional<IJS_Runtime::JS_Error> RunScript( const WideString& script) = 0; virtual void OnDoc_Open(const WideString& strTargetName) = 0;
diff --git a/fxjs/ijs_runtime.h b/fxjs/ijs_runtime.h index d2ce19f..827d8ca 100644 --- a/fxjs/ijs_runtime.h +++ b/fxjs/ijs_runtime.h
@@ -8,11 +8,11 @@ #define FXJS_IJS_RUNTIME_H_ #include <memory> +#include <optional> #include "core/fxcrt/fx_memory.h" #include "core/fxcrt/unowned_ptr.h" #include "core/fxcrt/widestring.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CJS_Runtime; class CPDFSDK_FormFillEnvironment; @@ -57,7 +57,7 @@ virtual IJS_EventContext* NewEventContext() = 0; virtual void ReleaseEventContext(IJS_EventContext* pContext) = 0; virtual CPDFSDK_FormFillEnvironment* GetFormFillEnv() const = 0; - virtual absl::optional<JS_Error> ExecuteScript(const WideString& script) = 0; + virtual std::optional<JS_Error> ExecuteScript(const WideString& script) = 0; protected: IJS_Runtime() = default;
diff --git a/fxjs/xfa/cfxjse_engine.cpp b/fxjs/xfa/cfxjse_engine.cpp index c0f66a6..94fa0f9 100644 --- a/fxjs/xfa/cfxjse_engine.cpp +++ b/fxjs/xfa/cfxjse_engine.cpp
@@ -180,7 +180,7 @@ m_FormCalcContext = std::make_unique<CFXJSE_FormCalcContext>( GetIsolate(), m_JsContext.get(), m_pDocument.Get()); } - absl::optional<WideTextBuffer> wsJavaScript = + std::optional<WideTextBuffer> wsJavaScript = CFXJSE_FormCalcContext::Translate(m_pDocument->GetHeap(), wsScript); if (!wsJavaScript.has_value()) { auto undefined_value = std::make_unique<CFXJSE_Value>(); @@ -209,7 +209,7 @@ if (!refNode) return false; - absl::optional<CFXJSE_Engine::ResolveResult> maybeResult = + std::optional<CFXJSE_Engine::ResolveResult> maybeResult = ResolveObjects(refNode, propname, dwFlag); if (!maybeResult.has_value()) return false; @@ -236,7 +236,7 @@ if (!refNode) return false; - absl::optional<CFXJSE_Engine::ResolveResult> maybeResult = + std::optional<CFXJSE_Engine::ResolveResult> maybeResult = ResolveObjects(refNode, propname, dwFlag); if (!maybeResult.has_value()) return false; @@ -426,7 +426,7 @@ &pReturnValue)) { return pReturnValue; } - absl::optional<XFA_SCRIPTATTRIBUTEINFO> info = XFA_GetScriptAttributeByName( + std::optional<XFA_SCRIPTATTRIBUTEINFO> info = XFA_GetScriptAttributeByName( pObject->GetElementType(), wsPropName.AsStringView()); if (info.has_value()) { (*info.value().callback)(pIsolate, pObject->JSObject(), &pReturnValue, @@ -467,7 +467,7 @@ CXFA_Object* pObject = pScriptContext->GetVariablesThis(pOriginalObject); WideString wsPropName = WideString::FromUTF8(szPropName); WideStringView wsPropNameView = wsPropName.AsStringView(); - absl::optional<XFA_SCRIPTATTRIBUTEINFO> info = + std::optional<XFA_SCRIPTATTRIBUTEINFO> info = XFA_GetScriptAttributeByName(pObject->GetElementType(), wsPropNameView); if (info.has_value()) { CJX_Object* jsObject = pObject->JSObject(); @@ -526,7 +526,7 @@ return FXJSE_ClassPropType::kMethod; if (bQueryIn) { - absl::optional<XFA_SCRIPTATTRIBUTEINFO> maybe_info = + std::optional<XFA_SCRIPTATTRIBUTEINFO> maybe_info = XFA_GetScriptAttributeByName(eType, wsPropName.AsStringView()); if (!maybe_info.has_value()) return FXJSE_ClassPropType::kNone; @@ -611,7 +611,7 @@ if (!pTextNode) return; - absl::optional<WideString> wsScript = + std::optional<WideString> wsScript = pTextNode->JSObject()->TryCData(XFA_Attribute::Value, true); if (!wsScript.has_value()) return; @@ -685,20 +685,20 @@ fxv8::ReentrantDeleteObjectPropertyHelper(GetIsolate(), pObject, "Date"); } -absl::optional<CFXJSE_Engine::ResolveResult> CFXJSE_Engine::ResolveObjects( +std::optional<CFXJSE_Engine::ResolveResult> CFXJSE_Engine::ResolveObjects( CXFA_Object* refObject, WideStringView wsExpression, Mask<XFA_ResolveFlag> dwStyles) { return ResolveObjectsWithBindNode(refObject, wsExpression, dwStyles, nullptr); } -absl::optional<CFXJSE_Engine::ResolveResult> +std::optional<CFXJSE_Engine::ResolveResult> CFXJSE_Engine::ResolveObjectsWithBindNode(CXFA_Object* refObject, WideStringView wsExpression, Mask<XFA_ResolveFlag> dwStyles, CXFA_Node* bindNode) { if (wsExpression.IsEmpty()) - return absl::nullopt; + return std::nullopt; AutoRestorer<bool> resolving_restorer(&m_bResolvingNodes); m_bResolvingNodes = true; @@ -862,12 +862,12 @@ result.type = ResolveResult::Type::kExistNodes; if (result.objects.empty()) - return absl::nullopt; + return std::nullopt; return result; } if (nNodes == 0) - return absl::nullopt; + return std::nullopt; return result; }
diff --git a/fxjs/xfa/cfxjse_engine.h b/fxjs/xfa/cfxjse_engine.h index bcac43c..487bf23 100644 --- a/fxjs/xfa/cfxjse_engine.h +++ b/fxjs/xfa/cfxjse_engine.h
@@ -133,11 +133,11 @@ WideStringView wsScript, CXFA_Object* pThisObject); - absl::optional<ResolveResult> ResolveObjects(CXFA_Object* refObject, - WideStringView wsExpression, - Mask<XFA_ResolveFlag> dwStyles); + std::optional<ResolveResult> ResolveObjects(CXFA_Object* refObject, + WideStringView wsExpression, + Mask<XFA_ResolveFlag> dwStyles); - absl::optional<ResolveResult> ResolveObjectsWithBindNode( + std::optional<ResolveResult> ResolveObjectsWithBindNode( CXFA_Object* refObject, WideStringView wsExpression, Mask<XFA_ResolveFlag> dwStyles,
diff --git a/fxjs/xfa/cfxjse_formcalc_context.cpp b/fxjs/xfa/cfxjse_formcalc_context.cpp index cae2f73..b591122 100644 --- a/fxjs/xfa/cfxjse_formcalc_context.cpp +++ b/fxjs/xfa/cfxjse_formcalc_context.cpp
@@ -14,6 +14,7 @@ #include <algorithm> #include <limits> #include <memory> +#include <optional> #include <utility> #include <vector> @@ -30,7 +31,6 @@ #include "fxjs/xfa/cfxjse_engine.h" #include "fxjs/xfa/cfxjse_value.h" #include "fxjs/xfa/cjx_object.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/check_op.h" #include "third_party/base/numerics/safe_conversions.h" #include "v8/include/v8-container.h" @@ -1123,8 +1123,8 @@ return fxv8::ReentrantToDoubleHelper(pIsolate, extracted); } -absl::optional<double> ExtractDouble(v8::Isolate* pIsolate, - v8::Local<v8::Value> src) { +std::optional<double> ExtractDouble(v8::Isolate* pIsolate, + v8::Local<v8::Value> src) { if (src.IsEmpty()) return 0.0; @@ -1134,7 +1134,7 @@ v8::Local<v8::Array> arr = src.As<v8::Array>(); uint32_t iLength = fxv8::GetArrayLengthHelper(arr); if (iLength < 3) - return absl::nullopt; + return std::nullopt; v8::Local<v8::Value> propertyValue = fxv8::ReentrantGetArrayElementHelper(pIsolate, arr, 1); @@ -1235,7 +1235,7 @@ return v8::Local<v8::Value>(); CFXJSE_Engine* pScriptContext = pDoc->GetScriptContext(); - absl::optional<CFXJSE_Engine::ResolveResult> maybeResult = + std::optional<CFXJSE_Engine::ResolveResult> maybeResult = pScriptContext->ResolveObjects( pScriptContext->GetThisObject(), WideString::FromUTF8(bsAccessorName).AsStringView(), @@ -1251,7 +1251,7 @@ maybeResult.value().objects.front().Get()); } -absl::optional<CFXJSE_Engine::ResolveResult> ResolveObjects( +std::optional<CFXJSE_Engine::ResolveResult> ResolveObjects( CFXJSE_HostObject* pHostObject, v8::Local<v8::Value> pRefValue, ByteStringView bsSomExp, @@ -1259,7 +1259,7 @@ bool bHasNoResolveName) { CXFA_Document* pDoc = ToFormCalcContext(pHostObject)->GetDocument(); if (!pDoc) - return absl::nullopt; + return std::nullopt; v8::Isolate* pIsolate = ToFormCalcContext(pHostObject)->GetIsolate(); WideString wsSomExpression = WideString::FromUTF8(bsSomExp); @@ -1273,12 +1273,12 @@ } else { pNode = CFXJSE_Engine::ToObject(pIsolate, pRefValue); if (!pNode) - return absl::nullopt; + return std::nullopt; if (bHasNoResolveName) { WideString wsName; if (CXFA_Node* pXFANode = pNode->AsNode()) { - absl::optional<WideString> ret = + std::optional<WideString> ret = pXFANode->JSObject()->TryAttribute(XFA_Attribute::Name, false); if (ret.has_value()) wsName = ret.value(); @@ -1516,9 +1516,9 @@ return; } - absl::optional<double> maybe_dividend = + std::optional<double> maybe_dividend = ExtractDouble(info.GetIsolate(), info[0]); - absl::optional<double> maybe_divisor = + std::optional<double> maybe_divisor = ExtractDouble(info.GetIsolate(), info[1]); if (!maybe_dividend.has_value() || !maybe_divisor.has_value()) { pContext->ThrowArgumentMismatchException(); @@ -1552,8 +1552,7 @@ return; } - absl::optional<double> maybe_value = - ExtractDouble(info.GetIsolate(), info[0]); + std::optional<double> maybe_value = ExtractDouble(info.GetIsolate(), info[0]); if (!maybe_value.has_value()) { pContext->ThrowArgumentMismatchException(); return; @@ -1566,7 +1565,7 @@ info.GetReturnValue().SetNull(); return; } - absl::optional<double> maybe_precision = + std::optional<double> maybe_precision = ExtractDouble(info.GetIsolate(), info[1]); if (!maybe_precision.has_value()) { pContext->ThrowArgumentMismatchException(); @@ -2982,7 +2981,7 @@ } WideString wsCalcScript = WideString::FromUTF8(bsUtf8Script.AsStringView()); - absl::optional<WideTextBuffer> wsJavaScriptBuf = + std::optional<WideTextBuffer> wsJavaScriptBuf = CFXJSE_FormCalcContext::Translate(pContext->GetDocument()->GetHeap(), wsCalcScript.AsStringView()); if (!wsJavaScriptBuf.has_value()) { @@ -4783,7 +4782,7 @@ } WideString wsCalcScript = WideString::FromUTF8(bsArg.AsStringView()); - absl::optional<WideTextBuffer> wsJavaScriptBuf = + std::optional<WideTextBuffer> wsJavaScriptBuf = CFXJSE_FormCalcContext::Translate(pContext->GetDocument()->GetHeap(), wsCalcScript.AsStringView()); if (!wsJavaScriptBuf.has_value()) { @@ -4972,7 +4971,7 @@ return bsSomExp; } -absl::optional<WideTextBuffer> CFXJSE_FormCalcContext::Translate( +std::optional<WideTextBuffer> CFXJSE_FormCalcContext::Translate( cppgc::Heap* pHeap, WideStringView wsFormcalc) { if (wsFormcalc.IsEmpty()) @@ -4982,15 +4981,15 @@ CXFA_FMParser parser(pHeap, &lexer); CXFA_FMAST* ast = parser.Parse(); if (!ast || parser.HasError()) - return absl::nullopt; + return std::nullopt; CXFA_FMToJavaScriptDepth::Reset(); - absl::optional<WideTextBuffer> wsJavaScript = ast->ToJavaScript(); + std::optional<WideTextBuffer> wsJavaScript = ast->ToJavaScript(); if (!wsJavaScript.has_value()) - return absl::nullopt; + return std::nullopt; if (CXFA_IsTooBig(wsJavaScript.value())) - return absl::nullopt; + return std::nullopt; return wsJavaScript; } @@ -5062,7 +5061,7 @@ for (uint32_t i = 2; i < iLength; i++) { v8::Local<v8::Value> hJSObjValue = fxv8::ReentrantGetArrayElementHelper(info.GetIsolate(), arr, i); - absl::optional<CFXJSE_Engine::ResolveResult> maybeResult = + std::optional<CFXJSE_Engine::ResolveResult> maybeResult = ResolveObjects(pThis, hJSObjValue, bsSomExp.AsStringView(), bDotAccessor, bHasNoResolveName); if (maybeResult.has_value()) { @@ -5091,7 +5090,7 @@ return; } - absl::optional<CFXJSE_Engine::ResolveResult> maybeResult; + std::optional<CFXJSE_Engine::ResolveResult> maybeResult; ByteString bsAccessorName = fxv8::ReentrantToByteStringHelper(info.GetIsolate(), info[1]); if (fxv8::IsObject(argAccessor) ||
diff --git a/fxjs/xfa/cfxjse_formcalc_context.h b/fxjs/xfa/cfxjse_formcalc_context.h index a0bf84f..79fd891 100644 --- a/fxjs/xfa/cfxjse_formcalc_context.h +++ b/fxjs/xfa/cfxjse_formcalc_context.h
@@ -10,11 +10,11 @@ #include <stdint.h> #include <functional> +#include <optional> #include "core/fxcrt/bytestring.h" #include "core/fxcrt/widetext_buffer.h" #include "fxjs/xfa/fxjse.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "v8/include/cppgc/persistent.h" #include "v8/include/v8-forward.h" #include "v8/include/v8-persistent-handle.h" @@ -267,8 +267,8 @@ static void concat_fm_object(CFXJSE_HostObject* pThis, const v8::FunctionCallbackInfo<v8::Value>& info); - static absl::optional<WideTextBuffer> Translate(cppgc::Heap* pHeap, - WideStringView wsFormcalc); + static std::optional<WideTextBuffer> Translate(cppgc::Heap* pHeap, + WideStringView wsFormcalc); v8::Local<v8::Value> GlobalPropertyGetter(); v8::Isolate* GetIsolate() const { return m_pIsolate; }
diff --git a/fxjs/xfa/cfxjse_mapmodule.cpp b/fxjs/xfa/cfxjse_mapmodule.cpp index 7e656b8..1e43a3a 100644 --- a/fxjs/xfa/cfxjse_mapmodule.cpp +++ b/fxjs/xfa/cfxjse_mapmodule.cpp
@@ -32,25 +32,25 @@ m_MeasurementMap[key] = measurement; } -absl::optional<int32_t> CFXJSE_MapModule::GetValue(uint32_t key) const { +std::optional<int32_t> CFXJSE_MapModule::GetValue(uint32_t key) const { auto it = m_ValueMap.find(key); if (it == m_ValueMap.end()) - return absl::nullopt; + return std::nullopt; return it->second; } -absl::optional<WideString> CFXJSE_MapModule::GetString(uint32_t key) const { +std::optional<WideString> CFXJSE_MapModule::GetString(uint32_t key) const { auto it = m_StringMap.find(key); if (it == m_StringMap.end()) - return absl::nullopt; + return std::nullopt; return it->second; } -absl::optional<CXFA_Measurement> CFXJSE_MapModule::GetMeasurement( +std::optional<CXFA_Measurement> CFXJSE_MapModule::GetMeasurement( uint32_t key) const { auto it = m_MeasurementMap.find(key); if (it == m_MeasurementMap.end()) - return absl::nullopt; + return std::nullopt; return it->second; }
diff --git a/fxjs/xfa/cfxjse_mapmodule.h b/fxjs/xfa/cfxjse_mapmodule.h index 9c75750..81b8f9c 100644 --- a/fxjs/xfa/cfxjse_mapmodule.h +++ b/fxjs/xfa/cfxjse_mapmodule.h
@@ -10,9 +10,9 @@ #include <stdint.h> #include <map> +#include <optional> #include "core/fxcrt/widestring.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CXFA_Measurement; @@ -27,9 +27,9 @@ void SetValue(uint32_t key, int32_t value); void SetString(uint32_t key, const WideString& wsString); void SetMeasurement(uint32_t key, const CXFA_Measurement& measurement); - absl::optional<int32_t> GetValue(uint32_t key) const; - absl::optional<WideString> GetString(uint32_t key) const; - absl::optional<CXFA_Measurement> GetMeasurement(uint32_t key) const; + std::optional<int32_t> GetValue(uint32_t key) const; + std::optional<WideString> GetString(uint32_t key) const; + std::optional<CXFA_Measurement> GetMeasurement(uint32_t key) const; bool HasKey(uint32_t key) const; void RemoveKey(uint32_t key); void MergeDataFrom(const CFXJSE_MapModule* pSrc);
diff --git a/fxjs/xfa/cfxjse_mapmodule_unittest.cpp b/fxjs/xfa/cfxjse_mapmodule_unittest.cpp index 3119b58..1a65bed 100644 --- a/fxjs/xfa/cfxjse_mapmodule_unittest.cpp +++ b/fxjs/xfa/cfxjse_mapmodule_unittest.cpp
@@ -6,9 +6,10 @@ #include "fxjs/xfa/cfxjse_mapmodule.h" +#include <optional> + #include "core/fxcrt/fx_string.h" #include "testing/gtest/include/gtest/gtest.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "xfa/fxfa/parser/cxfa_measurement.h" TEST(CFXJSEMapModule, EmptyModule) {
diff --git a/fxjs/xfa/cfxjse_resolveprocessor.cpp b/fxjs/xfa/cfxjse_resolveprocessor.cpp index 2829672..fad97d3 100644 --- a/fxjs/xfa/cfxjse_resolveprocessor.cpp +++ b/fxjs/xfa/cfxjse_resolveprocessor.cpp
@@ -213,7 +213,7 @@ CXFA_Object* curNode, CFXJSE_Engine::ResolveResult* rnd, WideStringView strAttr) { - absl::optional<XFA_SCRIPTATTRIBUTEINFO> info = + std::optional<XFA_SCRIPTATTRIBUTEINFO> info = XFA_GetScriptAttributeByName(curNode->GetElementType(), strAttr); if (!info.has_value()) return false;
diff --git a/fxjs/xfa/cjx_field.cpp b/fxjs/xfa/cjx_field.cpp index 7c21b95..c9e2b51 100644 --- a/fxjs/xfa/cjx_field.cpp +++ b/fxjs/xfa/cjx_field.cpp
@@ -109,7 +109,7 @@ if (!node->IsWidgetReady()) return CJS_Result::Success(runtime->NewNull()); - absl::optional<WideString> value = node->GetChoiceListItem(iIndex, true); + std::optional<WideString> value = node->GetChoiceListItem(iIndex, true); if (!value.has_value()) return CJS_Result::Success(runtime->NewNull()); @@ -172,7 +172,7 @@ if (!node->IsWidgetReady()) return CJS_Result::Success(runtime->NewNull()); - absl::optional<WideString> value = node->GetChoiceListItem(iIndex, false); + std::optional<WideString> value = node->GetChoiceListItem(iIndex, false); if (!value.has_value()) return CJS_Result::Success(runtime->NewNull());
diff --git a/fxjs/xfa/cjx_form.cpp b/fxjs/xfa/cjx_form.cpp index 462b47a..9513786 100644 --- a/fxjs/xfa/cjx_form.cpp +++ b/fxjs/xfa/cjx_form.cpp
@@ -136,7 +136,7 @@ return; } - absl::optional<WideString> checksum = + std::optional<WideString> checksum = TryAttribute(XFA_Attribute::Checksum, false); *pValue = fxv8::NewStringHelper( pIsolate,
diff --git a/fxjs/xfa/cjx_hostpseudomodel.cpp b/fxjs/xfa/cjx_hostpseudomodel.cpp index 00a6eb1..8bdd809 100644 --- a/fxjs/xfa/cjx_hostpseudomodel.cpp +++ b/fxjs/xfa/cjx_hostpseudomodel.cpp
@@ -300,7 +300,7 @@ constexpr Mask<XFA_ResolveFlag> kFlags = {XFA_ResolveFlag::kChildren, XFA_ResolveFlag::kParent, XFA_ResolveFlag::kSiblings}; - absl::optional<CFXJSE_Engine::ResolveResult> maybeResult = + std::optional<CFXJSE_Engine::ResolveResult> maybeResult = runtime->ResolveObjects( pObject, runtime->ToWideString(params[0]).AsStringView(), kFlags); if (!maybeResult.has_value() || @@ -385,7 +385,7 @@ constexpr Mask<XFA_ResolveFlag> kFlags = {XFA_ResolveFlag::kChildren, XFA_ResolveFlag::kParent, XFA_ResolveFlag::kSiblings}; - absl::optional<CFXJSE_Engine::ResolveResult> maybeResult = + std::optional<CFXJSE_Engine::ResolveResult> maybeResult = runtime->ResolveObjects(pObject, wsName.AsStringView(), kFlags); if (!maybeResult.has_value() || !maybeResult.value().objects.front()->IsNode()) @@ -448,7 +448,7 @@ constexpr Mask<XFA_ResolveFlag> kFlags = {XFA_ResolveFlag::kChildren, XFA_ResolveFlag::kParent, XFA_ResolveFlag::kSiblings}; - absl::optional<CFXJSE_Engine::ResolveResult> maybeResult = + std::optional<CFXJSE_Engine::ResolveResult> maybeResult = runtime->ResolveObjects( pObject, runtime->ToWideString(params[0]).AsStringView(), kFlags); if (!maybeResult.has_value() ||
diff --git a/fxjs/xfa/cjx_node.cpp b/fxjs/xfa/cjx_node.cpp index d7e2c06..bdae56e 100644 --- a/fxjs/xfa/cjx_node.cpp +++ b/fxjs/xfa/cjx_node.cpp
@@ -175,7 +175,7 @@ return CJS_Result::Failure(JSMessage::kParamError); WideString expression = runtime->ToWideString(params[0]); - absl::optional<XFA_ATTRIBUTEINFO> attr = + std::optional<XFA_ATTRIBUTEINFO> attr = XFA_GetAttributeByName(expression.AsStringView()); if (attr.has_value() && HasAttribute(attr.value().attribute)) return CJS_Result::Success(runtime->NewBoolean(true));
diff --git a/fxjs/xfa/cjx_object.cpp b/fxjs/xfa/cjx_object.cpp index 2479b4a..f68cdc2 100644 --- a/fxjs/xfa/cjx_object.cpp +++ b/fxjs/xfa/cjx_object.cpp
@@ -218,7 +218,7 @@ bool bNotify) { switch (GetXFANode()->GetAttributeType(eAttr)) { case XFA_AttributeType::Enum: { - absl::optional<XFA_AttributeValue> item = + std::optional<XFA_AttributeValue> item = XFA_GetAttributeValueByName(wsValue.AsStringView()); SetEnum(eAttr, item.has_value() ? item.value() @@ -246,7 +246,7 @@ void CJX_Object::SetAttributeByString(WideStringView wsAttr, const WideString& wsValue) { - absl::optional<XFA_ATTRIBUTEINFO> attr = XFA_GetAttributeByName(wsAttr); + std::optional<XFA_ATTRIBUTEINFO> attr = XFA_GetAttributeByName(wsAttr); if (attr.has_value()) { SetAttributeByEnum(attr.value().attribute, wsValue, true); return; @@ -256,8 +256,8 @@ } WideString CJX_Object::GetAttributeByString(WideStringView attr) const { - absl::optional<WideString> result; - absl::optional<XFA_ATTRIBUTEINFO> enum_attr = XFA_GetAttributeByName(attr); + std::optional<WideString> result; + std::optional<XFA_ATTRIBUTEINFO> enum_attr = XFA_GetAttributeByName(attr); if (enum_attr.has_value()) result = TryAttribute(enum_attr.value().attribute, true); else @@ -269,52 +269,52 @@ return TryAttribute(attr, true).value_or(WideString()); } -absl::optional<WideString> CJX_Object::TryAttribute(XFA_Attribute eAttr, - bool bUseDefault) const { +std::optional<WideString> CJX_Object::TryAttribute(XFA_Attribute eAttr, + bool bUseDefault) const { switch (GetXFANode()->GetAttributeType(eAttr)) { case XFA_AttributeType::Enum: { - absl::optional<XFA_AttributeValue> value = TryEnum(eAttr, bUseDefault); + std::optional<XFA_AttributeValue> value = TryEnum(eAttr, bUseDefault); if (!value.has_value()) - return absl::nullopt; + return std::nullopt; return WideString::FromASCII(XFA_AttributeValueToName(value.value())); } case XFA_AttributeType::CData: return TryCData(eAttr, bUseDefault); case XFA_AttributeType::Boolean: { - absl::optional<bool> value = TryBoolean(eAttr, bUseDefault); + std::optional<bool> value = TryBoolean(eAttr, bUseDefault); if (!value.has_value()) - return absl::nullopt; + return std::nullopt; return WideString(value.value() ? L"1" : L"0"); } case XFA_AttributeType::Integer: { - absl::optional<int32_t> iValue = TryInteger(eAttr, bUseDefault); + std::optional<int32_t> iValue = TryInteger(eAttr, bUseDefault); if (!iValue.has_value()) - return absl::nullopt; + return std::nullopt; return WideString::FormatInteger(iValue.value()); } case XFA_AttributeType::Measure: { - absl::optional<CXFA_Measurement> value = TryMeasure(eAttr, bUseDefault); + std::optional<CXFA_Measurement> value = TryMeasure(eAttr, bUseDefault); if (!value.has_value()) - return absl::nullopt; + return std::nullopt; return value->ToString(); } } - return absl::nullopt; + return std::nullopt; } void CJX_Object::RemoveAttribute(WideStringView wsAttr) { RemoveMapModuleKey(GetMapKey_Custom(wsAttr)); } -absl::optional<bool> CJX_Object::TryBoolean(XFA_Attribute eAttr, - bool bUseDefault) const { +std::optional<bool> CJX_Object::TryBoolean(XFA_Attribute eAttr, + bool bUseDefault) const { uint32_t key = GetMapKey_Element(GetXFAObject()->GetElementType(), eAttr); - absl::optional<int32_t> value = GetMapModuleValueFollowingChain(key); + std::optional<int32_t> value = GetMapModuleValueFollowingChain(key); if (value.has_value()) return !!value.value(); if (!bUseDefault) - return absl::nullopt; + return std::nullopt; return GetXFANode()->GetDefaultBoolean(eAttr); } @@ -342,25 +342,25 @@ return TryInteger(eAttr, true).value_or(0); } -absl::optional<int32_t> CJX_Object::TryInteger(XFA_Attribute eAttr, - bool bUseDefault) const { +std::optional<int32_t> CJX_Object::TryInteger(XFA_Attribute eAttr, + bool bUseDefault) const { uint32_t key = GetMapKey_Element(GetXFAObject()->GetElementType(), eAttr); - absl::optional<int32_t> value = GetMapModuleValueFollowingChain(key); + std::optional<int32_t> value = GetMapModuleValueFollowingChain(key); if (value.has_value()) return value.value(); if (!bUseDefault) - return absl::nullopt; + return std::nullopt; return GetXFANode()->GetDefaultInteger(eAttr); } -absl::optional<XFA_AttributeValue> CJX_Object::TryEnum(XFA_Attribute eAttr, - bool bUseDefault) const { +std::optional<XFA_AttributeValue> CJX_Object::TryEnum(XFA_Attribute eAttr, + bool bUseDefault) const { uint32_t key = GetMapKey_Element(GetXFAObject()->GetElementType(), eAttr); - absl::optional<int32_t> value = GetMapModuleValueFollowingChain(key); + std::optional<int32_t> value = GetMapModuleValueFollowingChain(key); if (value.has_value()) return static_cast<XFA_AttributeValue>(value.value()); if (!bUseDefault) - return absl::nullopt; + return std::nullopt; return GetXFANode()->GetDefaultEnum(eAttr); } @@ -391,23 +391,22 @@ OnChanged(eAttr, false); } -absl::optional<CXFA_Measurement> CJX_Object::TryMeasure( - XFA_Attribute eAttr, - bool bUseDefault) const { +std::optional<CXFA_Measurement> CJX_Object::TryMeasure(XFA_Attribute eAttr, + bool bUseDefault) const { uint32_t key = GetMapKey_Element(GetXFAObject()->GetElementType(), eAttr); - absl::optional<CXFA_Measurement> result = + std::optional<CXFA_Measurement> result = GetMapModuleMeasurementFollowingChain(key); if (result.has_value()) return result.value(); if (!bUseDefault) - return absl::nullopt; + return std::nullopt; return GetXFANode()->GetDefaultMeasurement(eAttr); } -absl::optional<float> CJX_Object::TryMeasureAsFloat(XFA_Attribute attr) const { - absl::optional<CXFA_Measurement> measure = TryMeasure(attr, false); +std::optional<float> CJX_Object::TryMeasureAsFloat(XFA_Attribute attr) const { + std::optional<CXFA_Measurement> measure = TryMeasure(attr, false); if (!measure.has_value()) - return absl::nullopt; + return std::nullopt; return measure->ToUnit(XFA_Unit::Pt); } @@ -433,7 +432,7 @@ bool bScriptModify) { CXFA_Node* xfaObj = GetXFANode(); uint32_t key = GetMapKey_Element(xfaObj->GetElementType(), eAttr); - absl::optional<WideString> old_value = GetMapModuleString(key); + std::optional<WideString> old_value = GetMapModuleString(key); if (!old_value.has_value() || old_value.value() != wsValue) { if (bNotify) OnChanging(eAttr); @@ -483,7 +482,7 @@ auto* xfaObj = GetXFANode(); uint32_t key = GetMapKey_Element(xfaObj->GetElementType(), XFA_Attribute::Value); - absl::optional<WideString> old_value = GetMapModuleString(key); + std::optional<WideString> old_value = GetMapModuleString(key); if (!old_value.has_value() || old_value.value() != wsValue) { if (bNotify) OnChanging(XFA_Attribute::Value); @@ -495,15 +494,15 @@ } } -absl::optional<WideString> CJX_Object::TryCData(XFA_Attribute eAttr, - bool bUseDefault) const { +std::optional<WideString> CJX_Object::TryCData(XFA_Attribute eAttr, + bool bUseDefault) const { uint32_t key = GetMapKey_Element(GetXFAObject()->GetElementType(), eAttr); - absl::optional<WideString> value = GetMapModuleStringFollowingChain(key); + std::optional<WideString> value = GetMapModuleStringFollowingChain(key); if (value.has_value()) return value; if (!bUseDefault) - return absl::nullopt; + return std::nullopt; return GetXFANode()->GetDefaultCData(eAttr); } @@ -512,7 +511,7 @@ int32_t value, bool bNotify) { uint32_t key = GetMapKey_Element(GetXFAObject()->GetElementType(), eAttr); - absl::optional<int32_t> old_value = GetMapModuleValue(key); + std::optional<int32_t> old_value = GetMapModuleValue(key); if (!old_value.has_value() || old_value.value() != value) { if (bNotify) OnChanging(eAttr); @@ -623,7 +622,7 @@ case XFA_ObjectType::ContentNode: { WideString wsContentType; if (GetXFANode()->GetElementType() == XFA_Element::ExData) { - absl::optional<WideString> ret = + std::optional<WideString> ret = TryAttribute(XFA_Attribute::ContentType, false); if (ret.has_value()) wsContentType = ret.value(); @@ -690,8 +689,8 @@ return TryContent(bScriptModify, true).value_or(WideString()); } -absl::optional<WideString> CJX_Object::TryContent(bool bScriptModify, - bool bProto) const { +std::optional<WideString> CJX_Object::TryContent(bool bScriptModify, + bool bProto) const { CXFA_Node* pNode = nullptr; switch (GetXFANode()->GetObjectType()) { case XFA_ObjectType::ContainerNode: @@ -701,7 +700,7 @@ CXFA_Value* pValue = GetXFANode()->GetChild<CXFA_Value>(0, XFA_Element::Value, false); if (!pValue) - return absl::nullopt; + return std::nullopt; CXFA_Node* pChildValue = pValue->GetFirstChild(); if (pChildValue && XFA_FieldIsMultiListBox(GetXFANode())) { @@ -709,7 +708,7 @@ XFA_Attribute::ContentType, L"text/xml", false); } if (!pChildValue) - return absl::nullopt; + return std::nullopt; return pChildValue->JSObject()->TryContent(bScriptModify, bProto); } break; @@ -718,7 +717,7 @@ if (!pContentRawDataNode) { XFA_Element element = XFA_Element::Sharptext; if (GetXFANode()->GetElementType() == XFA_Element::ExData) { - absl::optional<WideString> contentType = + std::optional<WideString> contentType = TryAttribute(XFA_Attribute::ContentType, false); if (contentType.has_value()) { if (contentType.value().EqualsASCII("text/html")) @@ -749,16 +748,16 @@ } return TryCData(XFA_Attribute::Value, false); } - return absl::nullopt; + return std::nullopt; } -absl::optional<WideString> CJX_Object::TryNamespace() const { +std::optional<WideString> CJX_Object::TryNamespace() const { if (GetXFANode()->IsModelNode() || GetXFANode()->GetElementType() == XFA_Element::Packet) { CFX_XMLNode* pXMLNode = GetXFANode()->GetXMLMappingNode(); CFX_XMLElement* element = ToXMLElement(pXMLNode); if (!element) - return absl::nullopt; + return std::nullopt; return element->GetNamespaceURI(); } @@ -769,14 +768,14 @@ CFX_XMLNode* pXMLNode = GetXFANode()->GetXMLMappingNode(); CFX_XMLElement* element = ToXMLElement(pXMLNode); if (!element) - return absl::nullopt; + return std::nullopt; if (GetXFANode()->GetElementType() == XFA_Element::DataValue && GetEnum(XFA_Attribute::Contains) == XFA_AttributeValue::MetaData) { WideString wsNamespace; if (!XFA_FDEExtension_ResolveNamespaceQualifier( element, GetCData(XFA_Attribute::QualifiedName), &wsNamespace)) { - return absl::nullopt; + return std::nullopt; } return wsNamespace; } @@ -816,29 +815,29 @@ CreateMapModule()->SetMeasurement(key, value); } -absl::optional<int32_t> CJX_Object::GetMapModuleValue(uint32_t key) const { +std::optional<int32_t> CJX_Object::GetMapModuleValue(uint32_t key) const { CFXJSE_MapModule* pModule = GetMapModule(); if (!pModule) - return absl::nullopt; + return std::nullopt; return pModule->GetValue(key); } -absl::optional<WideString> CJX_Object::GetMapModuleString(uint32_t key) const { +std::optional<WideString> CJX_Object::GetMapModuleString(uint32_t key) const { CFXJSE_MapModule* pModule = GetMapModule(); if (!pModule) - return absl::nullopt; + return std::nullopt; return pModule->GetString(key); } -absl::optional<CXFA_Measurement> CJX_Object::GetMapModuleMeasurement( +std::optional<CXFA_Measurement> CJX_Object::GetMapModuleMeasurement( uint32_t key) const { CFXJSE_MapModule* pModule = GetMapModule(); if (!pModule) - return absl::nullopt; + return std::nullopt; return pModule->GetMeasurement(key); } -absl::optional<int32_t> CJX_Object::GetMapModuleValueFollowingChain( +std::optional<int32_t> CJX_Object::GetMapModuleValueFollowingChain( uint32_t key) const { std::set<const CXFA_Node*> visited; for (const CXFA_Node* pNode = GetXFANode(); pNode; @@ -846,17 +845,17 @@ if (!visited.insert(pNode).second) break; - absl::optional<int32_t> result = pNode->JSObject()->GetMapModuleValue(key); + std::optional<int32_t> result = pNode->JSObject()->GetMapModuleValue(key); if (result.has_value()) return result; if (pNode->GetPacketType() == XFA_PacketType::Datasets) break; } - return absl::nullopt; + return std::nullopt; } -absl::optional<WideString> CJX_Object::GetMapModuleStringFollowingChain( +std::optional<WideString> CJX_Object::GetMapModuleStringFollowingChain( uint32_t key) const { std::set<const CXFA_Node*> visited; for (const CXFA_Node* pNode = GetXFANode(); pNode; @@ -864,7 +863,7 @@ if (!visited.insert(pNode).second) break; - absl::optional<WideString> result = + std::optional<WideString> result = pNode->JSObject()->GetMapModuleString(key); if (result.has_value()) return result; @@ -872,10 +871,10 @@ if (pNode->GetPacketType() == XFA_PacketType::Datasets) break; } - return absl::nullopt; + return std::nullopt; } -absl::optional<CXFA_Measurement> +std::optional<CXFA_Measurement> CJX_Object::GetMapModuleMeasurementFollowingChain(uint32_t key) const { std::set<const CXFA_Node*> visited; for (const CXFA_Node* pNode = GetXFANode(); pNode; @@ -883,7 +882,7 @@ if (!visited.insert(pNode).second) break; - absl::optional<CXFA_Measurement> result = + std::optional<CXFA_Measurement> result = pNode->JSObject()->GetMapModuleMeasurement(key); if (result.has_value()) return result; @@ -891,7 +890,7 @@ if (pNode->GetPacketType() == XFA_PacketType::Datasets) break; } - return absl::nullopt; + return std::nullopt; } bool CJX_Object::HasMapModuleKey(uint32_t key) const { @@ -1015,7 +1014,7 @@ CXFA_Node* pProtoNode = nullptr; if (!wsSOM.IsEmpty()) { - absl::optional<CFXJSE_Engine::ResolveResult> maybeResult = + std::optional<CFXJSE_Engine::ResolveResult> maybeResult = GetDocument()->GetScriptContext()->ResolveObjects( pProtoRoot, wsSOM.AsStringView(), Mask<XFA_ResolveFlag>{
diff --git a/fxjs/xfa/cjx_object.h b/fxjs/xfa/cjx_object.h index fb98185..1736d2a 100644 --- a/fxjs/xfa/cjx_object.h +++ b/fxjs/xfa/cjx_object.h
@@ -9,13 +9,13 @@ #include <map> #include <memory> +#include <optional> #include <vector> #include "core/fxcrt/widestring.h" #include "fxjs/gc/heap.h" #include "fxjs/xfa/fxjse.h" #include "fxjs/xfa/jse_define.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/containers/span.h" #include "v8/include/cppgc/garbage-collected.h" #include "v8/include/cppgc/member.h" @@ -126,8 +126,8 @@ bool HasAttribute(XFA_Attribute eAttr) const; WideString GetAttributeByString(WideStringView attr) const; WideString GetAttributeByEnum(XFA_Attribute attr) const; - absl::optional<WideString> TryAttribute(XFA_Attribute eAttr, - bool bUseDefault) const; + std::optional<WideString> TryAttribute(XFA_Attribute eAttr, + bool bUseDefault) const; void SetAttributeByEnum(XFA_Attribute eAttr, const WideString& wsValue, bool bNotify); @@ -135,7 +135,7 @@ void RemoveAttribute(WideStringView wsAttr); WideString GetContent(bool bScriptModify) const; - absl::optional<WideString> TryContent(bool bScriptModify, bool bProto) const; + std::optional<WideString> TryContent(bool bScriptModify, bool bProto) const; void SetContent(const WideString& wsContent, const WideString& wsXMLValue, bool bNotify, @@ -172,32 +172,32 @@ JSE_PROP(ScriptSomInstanceIndex); JSE_PROP(ScriptSubmitFormatMode); - absl::optional<WideString> TryNamespace() const; + std::optional<WideString> TryNamespace() const; int32_t GetInteger(XFA_Attribute eAttr) const; - absl::optional<int32_t> TryInteger(XFA_Attribute eAttr, - bool bUseDefault) const; + std::optional<int32_t> TryInteger(XFA_Attribute eAttr, + bool bUseDefault) const; void SetInteger(XFA_Attribute eAttr, int32_t iValue, bool bNotify); WideString GetCData(XFA_Attribute eAttr) const; - absl::optional<WideString> TryCData(XFA_Attribute eAttr, - bool bUseDefault) const; + std::optional<WideString> TryCData(XFA_Attribute eAttr, + bool bUseDefault) const; void SetCData(XFA_Attribute eAttr, const WideString& wsValue); XFA_AttributeValue GetEnum(XFA_Attribute eAttr) const; - absl::optional<XFA_AttributeValue> TryEnum(XFA_Attribute eAttr, - bool bUseDefault) const; + std::optional<XFA_AttributeValue> TryEnum(XFA_Attribute eAttr, + bool bUseDefault) const; void SetEnum(XFA_Attribute eAttr, XFA_AttributeValue eValue, bool bNotify); bool GetBoolean(XFA_Attribute eAttr) const; - absl::optional<bool> TryBoolean(XFA_Attribute eAttr, bool bUseDefault) const; + std::optional<bool> TryBoolean(XFA_Attribute eAttr, bool bUseDefault) const; void SetBoolean(XFA_Attribute eAttr, bool bValue, bool bNotify); CXFA_Measurement GetMeasure(XFA_Attribute eAttr) const; float GetMeasureInUnit(XFA_Attribute eAttr, XFA_Unit unit) const; - absl::optional<CXFA_Measurement> TryMeasure(XFA_Attribute eAttr, - bool bUseDefault) const; - absl::optional<float> TryMeasureAsFloat(XFA_Attribute attr) const; + std::optional<CXFA_Measurement> TryMeasure(XFA_Attribute eAttr, + bool bUseDefault) const; + std::optional<float> TryMeasureAsFloat(XFA_Attribute attr) const; void SetMeasure(XFA_Attribute eAttr, const CXFA_Measurement& mValue, bool bNotify); @@ -261,13 +261,13 @@ void SetMapModuleValue(uint32_t key, int32_t value); void SetMapModuleString(uint32_t key, const WideString& wsValue); void SetMapModuleMeasurement(uint32_t key, const CXFA_Measurement& value); - absl::optional<int32_t> GetMapModuleValue(uint32_t key) const; - absl::optional<WideString> GetMapModuleString(uint32_t key) const; - absl::optional<CXFA_Measurement> GetMapModuleMeasurement(uint32_t key) const; - absl::optional<int32_t> GetMapModuleValueFollowingChain(uint32_t key) const; - absl::optional<WideString> GetMapModuleStringFollowingChain( + std::optional<int32_t> GetMapModuleValue(uint32_t key) const; + std::optional<WideString> GetMapModuleString(uint32_t key) const; + std::optional<CXFA_Measurement> GetMapModuleMeasurement(uint32_t key) const; + std::optional<int32_t> GetMapModuleValueFollowingChain(uint32_t key) const; + std::optional<WideString> GetMapModuleStringFollowingChain( uint32_t key) const; - absl::optional<CXFA_Measurement> GetMapModuleMeasurementFollowingChain( + std::optional<CXFA_Measurement> GetMapModuleMeasurementFollowingChain( uint32_t key) const; bool HasMapModuleKey(uint32_t key) const; void RemoveMapModuleKey(uint32_t key);
diff --git a/fxjs/xfa/cjx_tree.cpp b/fxjs/xfa/cjx_tree.cpp index 8fe54e4..76b3a3c 100644 --- a/fxjs/xfa/cjx_tree.cpp +++ b/fxjs/xfa/cjx_tree.cpp
@@ -47,7 +47,7 @@ if (pRefNode->GetElementType() == XFA_Element::Xfa) pRefNode = runtime->GetThisObject(); - absl::optional<CFXJSE_Engine::ResolveResult> maybeResult = + std::optional<CFXJSE_Engine::ResolveResult> maybeResult = runtime->ResolveObjects( ToNode(pRefNode), wsExpression.AsStringView(), Mask<XFA_ResolveFlag>{ @@ -216,7 +216,7 @@ pDoc->GetNodeOwner()->PersistList(pNodeList); CFXJSE_Engine* pScriptContext = pDoc->GetScriptContext(); - absl::optional<CFXJSE_Engine::ResolveResult> maybeResult = + std::optional<CFXJSE_Engine::ResolveResult> maybeResult = pScriptContext->ResolveObjects(refNode, wsExpression.AsStringView(), dwFlag);
diff --git a/samples/pdfium_test.cc b/samples/pdfium_test.cc index dcc9f49..deebd73 100644 --- a/samples/pdfium_test.cc +++ b/samples/pdfium_test.cc
@@ -14,6 +14,7 @@ #include <iterator> #include <map> #include <memory> +#include <optional> #include <sstream> #include <string> #include <vector> @@ -44,7 +45,6 @@ #include "testing/utils/file_util.h" #include "testing/utils/hash.h" #include "testing/utils/path_service.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/check_op.h" #ifdef _WIN32 @@ -229,7 +229,7 @@ return flags; } -absl::optional<std::string> ExpandDirectoryPath(const std::string& path) { +std::optional<std::string> ExpandDirectoryPath(const std::string& path) { #if defined(WORDEXP_AVAILABLE) wordexp_t expansion; if (wordexp(path.c_str(), &expansion, 0) != 0 || expansion.we_wordc < 1) { @@ -238,7 +238,7 @@ } // Need to contruct the return value before hand, since wordfree will // deallocate |expansion|. - absl::optional<std::string> ret_val = {expansion.we_wordv[0]}; + std::optional<std::string> ret_val = {expansion.we_wordv[0]}; wordfree(&expansion); return ret_val; #else @@ -246,7 +246,7 @@ #endif // WORDEXP_AVAILABLE } -absl::optional<const char*> GetCustomFontPath(const Options& options) { +std::optional<const char*> GetCustomFontPath(const Options& options) { #if defined(__APPLE__) || (defined(__linux__) && !defined(__ANDROID__)) // Set custom font path to an empty path. This avoids the fallback to default // font paths. @@ -256,7 +256,7 @@ // No custom font path. Use default. if (options.font_directory.empty()) - return absl::nullopt; + return std::nullopt; // Set custom font path to |options.font_directory|. return options.font_directory.c_str(); @@ -608,7 +608,7 @@ return false; } std::string path = value; - absl::optional<std::string> expanded_path = ExpandDirectoryPath(path); + std::optional<std::string> expanded_path = ExpandDirectoryPath(path); if (!expanded_path.has_value()) { fprintf(stderr, "Failed to expand --font-dir, %s\n", path.c_str()); return false; @@ -663,7 +663,7 @@ return false; } std::string path = value; - absl::optional<std::string> expanded_path = ExpandDirectoryPath(path); + std::optional<std::string> expanded_path = ExpandDirectoryPath(path); if (!expanded_path.has_value()) { fprintf(stderr, "Failed to expand --bin-dir, %s\n", path.c_str()); return false; @@ -1930,7 +1930,7 @@ #endif // PDF_ENABLE_V8 const char* path_array[2] = {nullptr, nullptr}; - absl::optional<const char*> custom_font_path = GetCustomFontPath(options); + std::optional<const char*> custom_font_path = GetCustomFontPath(options); if (custom_font_path.has_value()) { path_array[0] = custom_font_path.value(); config.m_pUserFontPaths = path_array;
diff --git a/testing/scoped_set_tz.h b/testing/scoped_set_tz.h index 5928958..6b1d284 100644 --- a/testing/scoped_set_tz.h +++ b/testing/scoped_set_tz.h
@@ -5,10 +5,10 @@ #ifndef TESTING_SCOPED_SET_TZ_H_ #define TESTING_SCOPED_SET_TZ_H_ +#include <optional> #include <string> #include "core/fxcrt/fx_memory.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class ScopedSetTZ { public: @@ -20,7 +20,7 @@ ~ScopedSetTZ(); private: - absl::optional<std::string> old_tz_; + std::optional<std::string> old_tz_; }; #endif // TESTING_SCOPED_SET_TZ_H_
diff --git a/xfa/fgas/font/cfgas_fontmgr.cpp b/xfa/fgas/font/cfgas_fontmgr.cpp index eef78ea..eb3d8ae 100644 --- a/xfa/fgas/font/cfgas_fontmgr.cpp +++ b/xfa/fgas/font/cfgas_fontmgr.cpp
@@ -444,13 +444,13 @@ flags |= FXFONT_FIXED_PITCH; } - absl::optional<std::array<uint32_t, 2>> code_page_range = + std::optional<std::array<uint32_t, 2>> code_page_range = face->GetOs2CodePageRange(); if (code_page_range.has_value() && (code_page_range.value()[0] & (1 << 31))) { flags |= FXFONT_SYMBOLIC; } - absl::optional<std::array<uint8_t, 2>> panose = face->GetOs2Panose(); + std::optional<std::array<uint8_t, 2>> panose = face->GetOs2Panose(); if (panose.has_value() && panose.value()[0] == 2) { uint8_t serif = panose.value()[1]; if ((serif > 1 && serif < 10) || serif > 13) { @@ -722,7 +722,7 @@ // TODO(crbug.com/pdfium/2085): Use make_span() in fewer places after updating // pdfium::span. - absl::optional<std::array<uint32_t, 4>> unicode_range = + std::optional<std::array<uint32_t, 4>> unicode_range = pFace->GetOs2UnicodeRange(); auto usb_span = pdfium::make_span(pFont->m_dwUsb); if (unicode_range.has_value()) { @@ -731,7 +731,7 @@ fxcrt::spanclr(usb_span); } - absl::optional<std::array<uint32_t, 2>> code_page_range = + std::optional<std::array<uint32_t, 2>> code_page_range = pFace->GetOs2CodePageRange(); auto csb_span = pdfium::make_span(pFont->m_dwCsb); if (code_page_range.has_value()) {
diff --git a/xfa/fgas/font/cfgas_gefont.cpp b/xfa/fgas/font/cfgas_gefont.cpp index 35e8de5..4a4a99b 100644 --- a/xfa/fgas/font/cfgas_gefont.cpp +++ b/xfa/fgas/font/cfgas_gefont.cpp
@@ -150,7 +150,7 @@ return dwStyles; } -absl::optional<uint16_t> CFGAS_GEFont::GetCharWidth(wchar_t wUnicode) { +std::optional<uint16_t> CFGAS_GEFont::GetCharWidth(wchar_t wUnicode) { auto it = m_CharWidthMap.find(wUnicode); if (it != m_CharWidthMap.end()) return it->second; @@ -159,23 +159,23 @@ int32_t glyph; std::tie(glyph, pFont) = GetGlyphIndexAndFont(wUnicode, true); if (!pFont || glyph == 0xffff) { - m_CharWidthMap[wUnicode] = absl::nullopt; - return absl::nullopt; + m_CharWidthMap[wUnicode] = std::nullopt; + return std::nullopt; } if (pFont != this) return pFont->GetCharWidth(wUnicode); int32_t width_from_cfx_font = m_pFont->GetGlyphWidth(glyph); if (width_from_cfx_font < 0) { - m_CharWidthMap[wUnicode] = absl::nullopt; - return absl::nullopt; + m_CharWidthMap[wUnicode] = std::nullopt; + return std::nullopt; } uint16_t width = static_cast<uint16_t>(width_from_cfx_font); m_CharWidthMap[wUnicode] = width; return width; } -absl::optional<FX_RECT> CFGAS_GEFont::GetCharBBox(wchar_t wUnicode) { +std::optional<FX_RECT> CFGAS_GEFont::GetCharBBox(wchar_t wUnicode) { auto it = m_BBoxMap.find(wUnicode); if (it != m_BBoxMap.end()) return it->second; @@ -184,12 +184,12 @@ int32_t iGlyph; std::tie(iGlyph, pFont) = GetGlyphIndexAndFont(wUnicode, true); if (!pFont || iGlyph == 0xFFFF) - return absl::nullopt; + return std::nullopt; if (pFont.Get() != this) return pFont->GetCharBBox(wUnicode); - absl::optional<FX_RECT> rtBBox = m_pFont->GetGlyphBBox(iGlyph); + std::optional<FX_RECT> rtBBox = m_pFont->GetGlyphBBox(iGlyph); if (rtBBox.has_value()) m_BBoxMap[wUnicode] = rtBBox.value();
diff --git a/xfa/fgas/font/cfgas_gefont.h b/xfa/fgas/font/cfgas_gefont.h index fe910df..7ebf2d9 100644 --- a/xfa/fgas/font/cfgas_gefont.h +++ b/xfa/fgas/font/cfgas_gefont.h
@@ -11,6 +11,7 @@ #include <map> #include <memory> +#include <optional> #include <utility> #include <vector> @@ -20,7 +21,6 @@ #include "core/fxcrt/fx_string.h" #include "core/fxcrt/maybe_owned.h" #include "core/fxcrt/retain_ptr.h" -#include "third_party/abseil-cpp/absl/types/optional.h" class CFX_Font; class CFX_UnicodeEncodingEx; @@ -40,11 +40,11 @@ const ByteString& font_family); uint32_t GetFontStyles() const; - absl::optional<uint16_t> GetCharWidth(wchar_t wUnicode); + std::optional<uint16_t> GetCharWidth(wchar_t wUnicode); int32_t GetGlyphIndex(wchar_t wUnicode); int32_t GetAscent() const; int32_t GetDescent() const; - absl::optional<FX_RECT> GetCharBBox(wchar_t wUnicode); + std::optional<FX_RECT> GetCharBBox(wchar_t wUnicode); RetainPtr<CFGAS_GEFont> GetSubstFont(int32_t iGlyphIndex); CFX_Font* GetDevFont() const { return m_pFont.Get(); } @@ -70,11 +70,11 @@ bool bRecursive); WideString GetFamilyName() const; - absl::optional<uint32_t> m_dwLogFontStyle; + std::optional<uint32_t> m_dwLogFontStyle; RetainPtr<CPDF_Font> m_pPDFFont; // Must come before |m_pFont|. MaybeOwned<CFX_Font> m_pFont; // Must come before |m_pFontEncoding|. std::unique_ptr<CFX_UnicodeEncodingEx> m_pFontEncoding; - std::map<wchar_t, absl::optional<uint16_t>> m_CharWidthMap; + std::map<wchar_t, std::optional<uint16_t>> m_CharWidthMap; std::map<wchar_t, FX_RECT> m_BBoxMap; std::vector<RetainPtr<CFGAS_GEFont>> m_SubstFonts; std::map<wchar_t, RetainPtr<CFGAS_GEFont>> m_FontMapper;
diff --git a/xfa/fgas/layout/cfgas_rtfbreak.cpp b/xfa/fgas/layout/cfgas_rtfbreak.cpp index 540a226..6a2dff7 100644 --- a/xfa/fgas/layout/cfgas_rtfbreak.cpp +++ b/xfa/fgas/layout/cfgas_rtfbreak.cpp
@@ -122,7 +122,7 @@ } void CFGAS_RTFBreak::AppendChar_Combination(CFGAS_Char* pCurChar) { - absl::optional<uint16_t> iCharWidthRet; + std::optional<uint16_t> iCharWidthRet; if (m_pFont) { iCharWidthRet = m_pFont->GetCharWidth(pCurChar->char_code()); } @@ -212,7 +212,7 @@ pLastChar->GetCharType() == FX_CHARTYPE::kArabicAlef); FX_SAFE_INT32 iCharWidth = 0; if (m_pFont) { - absl::optional<uint16_t> iCharWidthRet = m_pFont->GetCharWidth(wForm); + std::optional<uint16_t> iCharWidthRet = m_pFont->GetCharWidth(wForm); if (iCharWidthRet.has_value()) { iCharWidth = iCharWidthRet.value(); } else { @@ -241,7 +241,7 @@ nullptr); FX_SAFE_INT32 iCharWidth = 0; if (m_pFont) { - absl::optional<uint16_t> iCharWidthRet = m_pFont->GetCharWidth(wForm); + std::optional<uint16_t> iCharWidthRet = m_pFont->GetCharWidth(wForm); if (!iCharWidthRet.has_value()) iCharWidthRet = m_pFont->GetCharWidth(pCurChar->char_code()); iCharWidth = iCharWidthRet.value_or(0);
diff --git a/xfa/fgas/layout/cfgas_txtbreak.cpp b/xfa/fgas/layout/cfgas_txtbreak.cpp index 22a6277..129ace0 100644 --- a/xfa/fgas/layout/cfgas_txtbreak.cpp +++ b/xfa/fgas/layout/cfgas_txtbreak.cpp
@@ -65,7 +65,7 @@ if (pLastChar && (pLastChar->m_dwCharStyles & FX_TXTCHARSTYLE_ArabicShadda) == 0) { wchar_t wLast = pLastChar->char_code(); - absl::optional<uint16_t> maybe_shadda; + std::optional<uint16_t> maybe_shadda; if (wch == pdfium::arabic::kArabicShadda) { maybe_shadda = pdfium::arabic::GetArabicFromShaddaTable(wLast); } else if (wLast == pdfium::arabic::kArabicShadda) { @@ -78,7 +78,7 @@ pLastChar->m_iCharWidth = 0; } } - absl::optional<uint16_t> iCharWidthRet; + std::optional<uint16_t> iCharWidthRet; if (m_pFont) { iCharWidthRet = m_pFont->GetCharWidth(wch); } @@ -734,7 +734,7 @@ } else if (i < iLength) { wNext = *pStr; } - absl::optional<uint16_t> maybe_shadda; + std::optional<uint16_t> maybe_shadda; if (wch == pdfium::arabic::kArabicShadda) { maybe_shadda = pdfium::arabic::GetArabicFromShaddaTable(wNext); } else if (wNext == pdfium::arabic::kArabicShadda) { @@ -826,7 +826,7 @@ pCharPos->m_Origin.x += fOffset; } if (chartype == FX_CHARTYPE::kCombination) { - absl::optional<FX_RECT> rtBBox = pFont->GetCharBBox(wForm); + std::optional<FX_RECT> rtBBox = pFont->GetCharBBox(wForm); if (rtBBox.has_value()) { pCharPos->m_Origin.y = fYBase + fFontSize - @@ -836,7 +836,7 @@ wLast != pdfium::unicode::kZeroWidthNoBreakSpace) { if (pdfium::unicode::GetCharType(wLast) == FX_CHARTYPE::kCombination) { - absl::optional<FX_RECT> rtOtherBox = pFont->GetCharBBox(wLast); + std::optional<FX_RECT> rtOtherBox = pFont->GetCharBBox(wLast); if (rtOtherBox.has_value()) { pCharPos->m_Origin.y -= fFontSize * rtOtherBox.value().Height() / iMaxHeight;
diff --git a/xfa/fgas/layout/fgas_arabic.cpp b/xfa/fgas/layout/fgas_arabic.cpp index 172c3ed..a7d41fe 100644 --- a/xfa/fgas/layout/fgas_arabic.cpp +++ b/xfa/fgas/layout/fgas_arabic.cpp
@@ -212,9 +212,9 @@ return (eNext < FX_CHARTYPE::kArabicAlef) ? ft->wFinal : ft->wMedial; } -absl::optional<wchar_t> GetArabicFromShaddaTable(wchar_t shadda) { +std::optional<wchar_t> GetArabicFromShaddaTable(wchar_t shadda) { if (shadda < kFirstShaddaTableEntry || shadda > kLastShaddaTableEntry) - return absl::nullopt; + return std::nullopt; return kShaddaTable[shadda - kFirstShaddaTableEntry]; }
diff --git a/xfa/fgas/layout/fgas_arabic.h b/xfa/fgas/layout/fgas_arabic.h index 6b5ba66..45d8584 100644 --- a/xfa/fgas/layout/fgas_arabic.h +++ b/xfa/fgas/layout/fgas_arabic.h
@@ -7,7 +7,7 @@ #ifndef XFA_FGAS_LAYOUT_FGAS_ARABIC_H_ #define XFA_FGAS_LAYOUT_FGAS_ARABIC_H_ -#include "third_party/abseil-cpp/absl/types/optional.h" +#include <optional> class CFGAS_Char; @@ -23,7 +23,7 @@ wchar_t GetFormChar(const CFGAS_Char* cur, const CFGAS_Char* prev, const CFGAS_Char* next); -absl::optional<wchar_t> GetArabicFromShaddaTable(wchar_t shadda); +std::optional<wchar_t> GetArabicFromShaddaTable(wchar_t shadda); } // namespace arabic } // namespace pdfium
diff --git a/xfa/fwl/cfwl_barcode.h b/xfa/fwl/cfwl_barcode.h index 45da19c..eb89003 100644 --- a/xfa/fwl/cfwl_barcode.h +++ b/xfa/fwl/cfwl_barcode.h
@@ -10,9 +10,9 @@ #include <stdint.h> #include <memory> +#include <optional> #include "fxbarcode/BC_Library.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "xfa/fwl/cfwl_edit.h" class CFX_Barcode; @@ -62,17 +62,17 @@ BC_TYPE m_type = BC_TYPE::kUnknown; Status m_eStatus = Status::kNormal; - absl::optional<BC_TEXT_LOC> m_eTextLocation; - absl::optional<BC_CHAR_ENCODING> m_eCharEncoding; - absl::optional<bool> m_bCalChecksum; - absl::optional<bool> m_bPrintChecksum; - absl::optional<char> m_cStartChar; - absl::optional<char> m_cEndChar; - absl::optional<int8_t> m_nWideNarrowRatio; - absl::optional<int32_t> m_nModuleHeight; - absl::optional<int32_t> m_nModuleWidth; - absl::optional<int32_t> m_nDataLength; - absl::optional<int32_t> m_nECLevel; + std::optional<BC_TEXT_LOC> m_eTextLocation; + std::optional<BC_CHAR_ENCODING> m_eCharEncoding; + std::optional<bool> m_bCalChecksum; + std::optional<bool> m_bPrintChecksum; + std::optional<char> m_cStartChar; + std::optional<char> m_cEndChar; + std::optional<int8_t> m_nWideNarrowRatio; + std::optional<int32_t> m_nModuleHeight; + std::optional<int32_t> m_nModuleWidth; + std::optional<int32_t> m_nDataLength; + std::optional<int32_t> m_nECLevel; std::unique_ptr<CFX_Barcode> m_pBarcodeEngine; };
diff --git a/xfa/fwl/cfwl_combobox.h b/xfa/fwl/cfwl_combobox.h index 590b889..efe9c8c 100644 --- a/xfa/fwl/cfwl_combobox.h +++ b/xfa/fwl/cfwl_combobox.h
@@ -72,8 +72,8 @@ return EditCanCopy(); } bool EditCanSelectAll() const { return m_pEdit->GetTextLength() > 0; } - absl::optional<WideString> EditCopy() const { return m_pEdit->Copy(); } - absl::optional<WideString> EditCut() { return m_pEdit->Cut(); } + std::optional<WideString> EditCopy() const { return m_pEdit->Copy(); } + std::optional<WideString> EditCut() { return m_pEdit->Cut(); } bool EditPaste(const WideString& wsPaste) { return m_pEdit->Paste(wsPaste); } void EditSelectAll() { m_pEdit->SelectAll(); } void EditDelete() { m_pEdit->ClearText(); }
diff --git a/xfa/fwl/cfwl_datetimepicker.cpp b/xfa/fwl/cfwl_datetimepicker.cpp index dd0cf21..8d9bf7e 100644 --- a/xfa/fwl/cfwl_datetimepicker.cpp +++ b/xfa/fwl/cfwl_datetimepicker.cpp
@@ -436,11 +436,11 @@ m_pEdit->ClearSelection(); } -absl::optional<WideString> CFWL_DateTimePicker::Copy() { +std::optional<WideString> CFWL_DateTimePicker::Copy() { return m_pEdit->Copy(); } -absl::optional<WideString> CFWL_DateTimePicker::Cut() { +std::optional<WideString> CFWL_DateTimePicker::Cut() { return m_pEdit->Cut(); }
diff --git a/xfa/fwl/cfwl_datetimepicker.h b/xfa/fwl/cfwl_datetimepicker.h index 75c73ac..5e1d248 100644 --- a/xfa/fwl/cfwl_datetimepicker.h +++ b/xfa/fwl/cfwl_datetimepicker.h
@@ -60,8 +60,8 @@ std::pair<size_t, size_t> GetSelection() const { return m_pEdit->GetSelection(); } - absl::optional<WideString> Copy(); - absl::optional<WideString> Cut(); + std::optional<WideString> Copy(); + std::optional<WideString> Cut(); bool Paste(const WideString& wsPaste); bool Undo(); bool Redo();
diff --git a/xfa/fwl/cfwl_edit.cpp b/xfa/fwl/cfwl_edit.cpp index 9d624c9..e619c92 100644 --- a/xfa/fwl/cfwl_edit.cpp +++ b/xfa/fwl/cfwl_edit.cpp
@@ -204,16 +204,16 @@ m_pEditEngine->SetAliasChar(wAlias); } -absl::optional<WideString> CFWL_Edit::Copy() { +std::optional<WideString> CFWL_Edit::Copy() { if (!m_pEditEngine->HasSelection()) - return absl::nullopt; + return std::nullopt; return m_pEditEngine->GetSelectedText(); } -absl::optional<WideString> CFWL_Edit::Cut() { +std::optional<WideString> CFWL_Edit::Cut() { if (!m_pEditEngine->HasSelection()) - return absl::nullopt; + return std::nullopt; WideString cut_text = m_pEditEngine->DeleteSelectedText(); UpdateCaret();
diff --git a/xfa/fwl/cfwl_edit.h b/xfa/fwl/cfwl_edit.h index 2a85935..66d8664 100644 --- a/xfa/fwl/cfwl_edit.h +++ b/xfa/fwl/cfwl_edit.h
@@ -80,8 +80,8 @@ int32_t GetLimit() const; void SetLimit(int32_t nLimit); void SetAliasChar(wchar_t wAlias); - absl::optional<WideString> Copy(); - absl::optional<WideString> Cut(); + std::optional<WideString> Copy(); + std::optional<WideString> Cut(); bool Paste(const WideString& wsPaste); bool Undo(); bool Redo();
diff --git a/xfa/fxfa/cxfa_ffbarcode.cpp b/xfa/fxfa/cxfa_ffbarcode.cpp index 4ba37bb..aaf3690 100644 --- a/xfa/fxfa/cxfa_ffbarcode.cpp +++ b/xfa/fxfa/cxfa_ffbarcode.cpp
@@ -93,16 +93,16 @@ {0xfb48155c, "code3Of9", BC_TYPE::kCode39}, }; -absl::optional<BC_CHAR_ENCODING> CharEncodingFromString( +std::optional<BC_CHAR_ENCODING> CharEncodingFromString( const WideString& value) { if (value.CompareNoCase(L"UTF-16")) return BC_CHAR_ENCODING::kUnicode; if (value.CompareNoCase(L"UTF-8")) return BC_CHAR_ENCODING::kUTF8; - return absl::nullopt; + return std::nullopt; } -absl::optional<BC_TEXT_LOC> TextLocFromAttribute(XFA_AttributeValue value) { +std::optional<BC_TEXT_LOC> TextLocFromAttribute(XFA_AttributeValue value) { switch (value) { case XFA_AttributeValue::None: return BC_TEXT_LOC::kNone; @@ -115,7 +115,7 @@ case XFA_AttributeValue::BelowEmbedded: return BC_TEXT_LOC::kBelowEmbed; default: - return absl::nullopt; + return std::nullopt; } } @@ -198,49 +198,49 @@ auto* pBarCodeWidget = static_cast<CFWL_Barcode*>(GetNormalWidget()); pBarCodeWidget->SetType(bc_type); - absl::optional<WideString> encoding_string = barcode_->GetCharEncoding(); + std::optional<WideString> encoding_string = barcode_->GetCharEncoding(); if (encoding_string.has_value()) { - absl::optional<BC_CHAR_ENCODING> encoding = + std::optional<BC_CHAR_ENCODING> encoding = CharEncodingFromString(encoding_string.value()); if (encoding.has_value()) pBarCodeWidget->SetCharEncoding(encoding.value()); } - absl::optional<bool> calcChecksum = barcode_->GetChecksum(); + std::optional<bool> calcChecksum = barcode_->GetChecksum(); if (calcChecksum.has_value()) pBarCodeWidget->SetCalChecksum(calcChecksum.value()); - absl::optional<int32_t> dataLen = barcode_->GetDataLength(); + std::optional<int32_t> dataLen = barcode_->GetDataLength(); if (dataLen.has_value()) pBarCodeWidget->SetDataLength(dataLen.value()); - absl::optional<char> startChar = barcode_->GetStartChar(); + std::optional<char> startChar = barcode_->GetStartChar(); if (startChar.has_value()) pBarCodeWidget->SetStartChar(startChar.value()); - absl::optional<char> endChar = barcode_->GetEndChar(); + std::optional<char> endChar = barcode_->GetEndChar(); if (endChar.has_value()) pBarCodeWidget->SetEndChar(endChar.value()); - absl::optional<int32_t> ecLevel = barcode_->GetECLevel(); + std::optional<int32_t> ecLevel = barcode_->GetECLevel(); if (ecLevel.has_value()) pBarCodeWidget->SetErrorCorrectionLevel(ecLevel.value()); - absl::optional<int32_t> width = barcode_->GetModuleWidth(); + std::optional<int32_t> width = barcode_->GetModuleWidth(); if (width.has_value()) pBarCodeWidget->SetModuleWidth(width.value()); - absl::optional<int32_t> height = barcode_->GetModuleHeight(); + std::optional<int32_t> height = barcode_->GetModuleHeight(); if (height.has_value()) pBarCodeWidget->SetModuleHeight(height.value()); - absl::optional<bool> printCheck = barcode_->GetPrintChecksum(); + std::optional<bool> printCheck = barcode_->GetPrintChecksum(); if (printCheck.has_value()) pBarCodeWidget->SetPrintChecksum(printCheck.value()); - absl::optional<XFA_AttributeValue> text_attr = barcode_->GetTextLocation(); + std::optional<XFA_AttributeValue> text_attr = barcode_->GetTextLocation(); if (text_attr.has_value()) { - absl::optional<BC_TEXT_LOC> textLoc = + std::optional<BC_TEXT_LOC> textLoc = TextLocFromAttribute(text_attr.value()); if (textLoc.has_value()) pBarCodeWidget->SetTextLocation(textLoc.value()); @@ -248,7 +248,7 @@ // Truncated is currently not a supported flag. - absl::optional<int8_t> ratio = barcode_->GetWideNarrowRatio(); + std::optional<int8_t> ratio = barcode_->GetWideNarrowRatio(); if (ratio.has_value()) pBarCodeWidget->SetWideNarrowRatio(ratio.value());
diff --git a/xfa/fxfa/cxfa_ffcombobox.cpp b/xfa/fxfa/cxfa_ffcombobox.cpp index bdcc9b1..6764ca6 100644 --- a/xfa/fxfa/cxfa_ffcombobox.cpp +++ b/xfa/fxfa/cxfa_ffcombobox.cpp
@@ -253,13 +253,13 @@ ToComboBox(GetNormalWidget())->EditRedo(); } -absl::optional<WideString> CXFA_FFComboBox::Copy() { +std::optional<WideString> CXFA_FFComboBox::Copy() { return ToComboBox(GetNormalWidget())->EditCopy(); } -absl::optional<WideString> CXFA_FFComboBox::Cut() { +std::optional<WideString> CXFA_FFComboBox::Cut() { if (!m_pNode->IsChoiceListAllowTextEntry()) - return absl::nullopt; + return std::nullopt; return ToComboBox(GetNormalWidget())->EditCut(); }
diff --git a/xfa/fxfa/cxfa_ffcombobox.h b/xfa/fxfa/cxfa_ffcombobox.h index d1c8113..1227dff 100644 --- a/xfa/fxfa/cxfa_ffcombobox.h +++ b/xfa/fxfa/cxfa_ffcombobox.h
@@ -37,8 +37,8 @@ bool CanSelectAll() override; bool Undo() override; bool Redo() override; - absl::optional<WideString> Copy() override; - absl::optional<WideString> Cut() override; + std::optional<WideString> Copy() override; + std::optional<WideString> Cut() override; bool Paste(const WideString& wsPaste) override; void SelectAll() override; void Delete() override;
diff --git a/xfa/fxfa/cxfa_ffdatetimeedit.cpp b/xfa/fxfa/cxfa_ffdatetimeedit.cpp index 8e57833..a490ccb 100644 --- a/xfa/fxfa/cxfa_ffdatetimeedit.cpp +++ b/xfa/fxfa/cxfa_ffdatetimeedit.cpp
@@ -92,7 +92,7 @@ GetNormalWidget()->ModifyStyleExts(dwExtendedStyle, 0xFFFFFFFF); uint32_t dwEditStyles = 0; - absl::optional<int32_t> numCells = m_pNode->GetNumberOfCells(); + std::optional<int32_t> numCells = m_pNode->GetNumberOfCells(); if (numCells.has_value() && numCells.value() > 0) { dwEditStyles |= FWL_STYLEEXT_EDT_CombText; pPicker->SetEditLimit(numCells.value()); @@ -243,7 +243,7 @@ return GetPickerWidget()->GetEditTextLength() > 0; } -absl::optional<WideString> CXFA_FFDateTimeEdit::Copy() { +std::optional<WideString> CXFA_FFDateTimeEdit::Copy() { return GetPickerWidget()->Copy(); } @@ -255,7 +255,7 @@ return GetPickerWidget()->Redo(); } -absl::optional<WideString> CXFA_FFDateTimeEdit::Cut() { +std::optional<WideString> CXFA_FFDateTimeEdit::Cut() { return GetPickerWidget()->Cut(); }
diff --git a/xfa/fxfa/cxfa_ffdatetimeedit.h b/xfa/fxfa/cxfa_ffdatetimeedit.h index 44b2e32..93eb0a6 100644 --- a/xfa/fxfa/cxfa_ffdatetimeedit.h +++ b/xfa/fxfa/cxfa_ffdatetimeedit.h
@@ -39,8 +39,8 @@ bool CanSelectAll() override; bool Undo() override; bool Redo() override; - absl::optional<WideString> Copy() override; - absl::optional<WideString> Cut() override; + std::optional<WideString> Copy() override; + std::optional<WideString> Cut() override; bool Paste(const WideString& wsPaste) override; void SelectAll() override; void Delete() override;
diff --git a/xfa/fxfa/cxfa_ffdocview.cpp b/xfa/fxfa/cxfa_ffdocview.cpp index 616d26a..41f6f31 100644 --- a/xfa/fxfa/cxfa_ffdocview.cpp +++ b/xfa/fxfa/cxfa_ffdocview.cpp
@@ -467,7 +467,7 @@ pRefNode = node->IsWidgetReady() ? node : nullptr; } WideString wsExpression = (!pRefNode ? L"$form." : L"") + wsName; - absl::optional<CFXJSE_Engine::ResolveResult> maybeResult = + std::optional<CFXJSE_Engine::ResolveResult> maybeResult = pScriptContext->ResolveObjects( pRefNode, wsExpression.AsStringView(), Mask<XFA_ResolveFlag>{ @@ -661,7 +661,7 @@ CFXJSE_Engine* pScriptContext = pWidgetNode->GetDocument()->GetScriptContext(); WideString wsRef = item->GetRef(); - absl::optional<CFXJSE_Engine::ResolveResult> maybeRS = + std::optional<CFXJSE_Engine::ResolveResult> maybeRS = pScriptContext->ResolveObjects( pWidgetNode, wsRef.AsStringView(), Mask<XFA_ResolveFlag>{
diff --git a/xfa/fxfa/cxfa_ffnumericedit.cpp b/xfa/fxfa/cxfa_ffnumericedit.cpp index 33513e5..75face7 100644 --- a/xfa/fxfa/cxfa_ffnumericedit.cpp +++ b/xfa/fxfa/cxfa_ffnumericedit.cpp
@@ -55,7 +55,7 @@ if (!m_pNode->IsHorizontalScrollPolicyOff()) dwExtendedStyle |= FWL_STYLEEXT_EDT_AutoHScroll; - absl::optional<int32_t> numCells = m_pNode->GetNumberOfCells(); + std::optional<int32_t> numCells = m_pNode->GetNumberOfCells(); if (numCells.has_value() && numCells.value() > 0) { dwExtendedStyle |= FWL_STYLEEXT_EDT_CombText; pWidget->SetLimit(numCells.value());
diff --git a/xfa/fxfa/cxfa_ffpageview.cpp b/xfa/fxfa/cxfa_ffpageview.cpp index 5549bfb..4da33a0 100644 --- a/xfa/fxfa/cxfa_ffpageview.cpp +++ b/xfa/fxfa/cxfa_ffpageview.cpp
@@ -416,7 +416,7 @@ CXFA_Traverse* pTraverse = pTraversal->GetChild<CXFA_Traverse>(0, XFA_Element::Traverse, false); if (pTraverse) { - absl::optional<WideString> traverseWidgetName = + std::optional<WideString> traverseWidgetName = pTraverse->JSObject()->TryAttribute(XFA_Attribute::Ref, true); if (traverseWidgetName.has_value()) return FindWidgetByName(traverseWidgetName.value(), pWidget);
diff --git a/xfa/fxfa/cxfa_fftextedit.cpp b/xfa/fxfa/cxfa_fftextedit.cpp index 2fd4d46..fdec8fb 100644 --- a/xfa/fxfa/cxfa_fftextedit.cpp +++ b/xfa/fxfa/cxfa_fftextedit.cpp
@@ -100,7 +100,7 @@ if (eType == XFA_Element::ExData) iMaxChars = 0; - absl::optional<int32_t> numCells = m_pNode->GetNumberOfCells(); + std::optional<int32_t> numCells = m_pNode->GetNumberOfCells(); if (!numCells.has_value()) { pWidget->SetLimit(iMaxChars); } else if (numCells == 0) { @@ -397,11 +397,11 @@ return ToEdit(GetNormalWidget())->Redo(); } -absl::optional<WideString> CXFA_FFTextEdit::Copy() { +std::optional<WideString> CXFA_FFTextEdit::Copy() { return ToEdit(GetNormalWidget())->Copy(); } -absl::optional<WideString> CXFA_FFTextEdit::Cut() { +std::optional<WideString> CXFA_FFTextEdit::Cut() { return ToEdit(GetNormalWidget())->Cut(); }
diff --git a/xfa/fxfa/cxfa_fftextedit.h b/xfa/fxfa/cxfa_fftextedit.h index 53fd536..73affe8 100644 --- a/xfa/fxfa/cxfa_fftextedit.h +++ b/xfa/fxfa/cxfa_fftextedit.h
@@ -62,8 +62,8 @@ bool CanSelectAll() override; bool Undo() override; bool Redo() override; - absl::optional<WideString> Copy() override; - absl::optional<WideString> Cut() override; + std::optional<WideString> Copy() override; + std::optional<WideString> Cut() override; bool Paste(const WideString& wsPaste) override; void SelectAll() override; void Delete() override;
diff --git a/xfa/fxfa/cxfa_ffwidget.cpp b/xfa/fxfa/cxfa_ffwidget.cpp index 6c69912..61d8542 100644 --- a/xfa/fxfa/cxfa_ffwidget.cpp +++ b/xfa/fxfa/cxfa_ffwidget.cpp
@@ -496,12 +496,12 @@ return false; } -absl::optional<WideString> CXFA_FFWidget::Copy() { - return absl::nullopt; +std::optional<WideString> CXFA_FFWidget::Copy() { + return std::nullopt; } -absl::optional<WideString> CXFA_FFWidget::Cut() { - return absl::nullopt; +std::optional<WideString> CXFA_FFWidget::Cut() { + return std::nullopt; } bool CXFA_FFWidget::Paste(const WideString& wsPaste) {
diff --git a/xfa/fxfa/cxfa_ffwidget.h b/xfa/fxfa/cxfa_ffwidget.h index e9afcab..3af75b2 100644 --- a/xfa/fxfa/cxfa_ffwidget.h +++ b/xfa/fxfa/cxfa_ffwidget.h
@@ -146,8 +146,8 @@ virtual bool CanDeSelect(); virtual bool Undo(); virtual bool Redo(); - virtual absl::optional<WideString> Copy(); - virtual absl::optional<WideString> Cut(); + virtual std::optional<WideString> Copy(); + virtual std::optional<WideString> Cut(); virtual bool Paste(const WideString& wsPaste); virtual void SelectAll(); virtual void Delete();
diff --git a/xfa/fxfa/cxfa_textlayout.cpp b/xfa/fxfa/cxfa_textlayout.cpp index 0bcd594..44278d2 100644 --- a/xfa/fxfa/cxfa_textlayout.cpp +++ b/xfa/fxfa/cxfa_textlayout.cpp
@@ -811,7 +811,7 @@ while (iTabCount-- > 0) wsText += L'\t'; } else { - absl::optional<WideString> obj = + std::optional<WideString> obj = m_pTextParser->GetEmbeddedObj(m_pTextProvider, pXMLNode); if (obj.has_value()) wsText = obj.value();
diff --git a/xfa/fxfa/cxfa_textparser.cpp b/xfa/fxfa/cxfa_textparser.cpp index 15b5178..5c4879c 100644 --- a/xfa/fxfa/cxfa_textparser.cpp +++ b/xfa/fxfa/cxfa_textparser.cpp
@@ -350,7 +350,7 @@ } if (pStyle) { - absl::optional<WideString> last_family = pStyle->GetLastFontFamily(); + std::optional<WideString> last_family = pStyle->GetLastFontFamily(); if (last_family.has_value()) wsFamily = last_family.value(); @@ -499,19 +499,19 @@ return fLineHeight; } -absl::optional<WideString> CXFA_TextParser::GetEmbeddedObj( +std::optional<WideString> CXFA_TextParser::GetEmbeddedObj( const CXFA_TextProvider* pTextProvider, const CFX_XMLNode* pXMLNode) { if (!pXMLNode) - return absl::nullopt; + return std::nullopt; const CFX_XMLElement* pElement = ToXMLElement(pXMLNode); if (!pElement) - return absl::nullopt; + return std::nullopt; WideString wsAttr = pElement->GetAttribute(L"xfa:embed"); if (wsAttr.IsEmpty()) - return absl::nullopt; + return std::nullopt; if (wsAttr[0] == L'#') wsAttr.Delete(0); @@ -519,12 +519,12 @@ WideString ws = GetLowerCaseElementAttributeOrDefault(pElement, L"xfa:embedType", L"som"); if (!ws.EqualsASCII("uri")) - return absl::nullopt; + return std::nullopt; ws = GetLowerCaseElementAttributeOrDefault(pElement, L"xfa:embedMode", L"formatted"); if (!(ws.EqualsASCII("raw") || ws.EqualsASCII("formatted"))) - return absl::nullopt; + return std::nullopt; return pTextProvider->GetEmbeddedObj(wsAttr); }
diff --git a/xfa/fxfa/cxfa_textparser.h b/xfa/fxfa/cxfa_textparser.h index 3e92bc2..651afe6 100644 --- a/xfa/fxfa/cxfa_textparser.h +++ b/xfa/fxfa/cxfa_textparser.h
@@ -11,6 +11,7 @@ #include <map> #include <memory> +#include <optional> #include <vector> #include "core/fxcrt/css/cfx_css.h" @@ -20,7 +21,6 @@ #include "core/fxcrt/widestring.h" #include "core/fxge/dib/fx_dib.h" #include "fxjs/gc/heap.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "v8/include/cppgc/garbage-collected.h" #include "xfa/fxfa/fxfa_basic.h" @@ -110,7 +110,7 @@ bool bFirst, float fVerScale) const; - absl::optional<WideString> GetEmbeddedObj( + std::optional<WideString> GetEmbeddedObj( const CXFA_TextProvider* pTextProvider, const CFX_XMLNode* pXMLNode); Context* GetParseContextFromMap(const CFX_XMLNode* pXMLNode);
diff --git a/xfa/fxfa/cxfa_textprovider.cpp b/xfa/fxfa/cxfa_textprovider.cpp index 2186c4b..a346923 100644 --- a/xfa/fxfa/cxfa_textprovider.cpp +++ b/xfa/fxfa/cxfa_textprovider.cpp
@@ -53,7 +53,7 @@ CXFA_Node* pChildNode = pValueNode->GetFirstChild(); if (pChildNode && pChildNode->GetElementType() == XFA_Element::ExData) { - absl::optional<WideString> contentType = + std::optional<WideString> contentType = pChildNode->JSObject()->TryAttribute(XFA_Attribute::ContentType, false); if (contentType.has_value() && @@ -77,7 +77,7 @@ CXFA_Node* pChildNode = pValueNode->GetFirstChild(); if (pChildNode && pChildNode->GetElementType() == XFA_Element::ExData) { - absl::optional<WideString> contentType = + std::optional<WideString> contentType = pChildNode->JSObject()->TryAttribute(XFA_Attribute::ContentType, false); if (contentType.has_value() && @@ -132,10 +132,10 @@ return !m_pNode->TryWidth().has_value(); } -absl::optional<WideString> CXFA_TextProvider::GetEmbeddedObj( +std::optional<WideString> CXFA_TextProvider::GetEmbeddedObj( const WideString& wsAttr) const { if (m_eType != Type::kText) - return absl::nullopt; + return std::nullopt; CXFA_Node* pParent = m_pNode->GetParent(); CXFA_Document* pDocument = m_pNode->GetDocument(); @@ -149,7 +149,7 @@ wsAttr.AsStringView()); } if (!pIDNode || !pIDNode->IsWidgetReady()) - return absl::nullopt; + return std::nullopt; return pIDNode->GetValue(XFA_ValuePicture::kDisplay); }
diff --git a/xfa/fxfa/cxfa_textprovider.h b/xfa/fxfa/cxfa_textprovider.h index b24e9e9..414b24d 100644 --- a/xfa/fxfa/cxfa_textprovider.h +++ b/xfa/fxfa/cxfa_textprovider.h
@@ -7,9 +7,10 @@ #ifndef XFA_FXFA_CXFA_TEXTPROVIDER_H_ #define XFA_FXFA_CXFA_TEXTPROVIDER_H_ +#include <optional> + #include "core/fxcrt/widestring.h" #include "fxjs/gc/heap.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "v8/include/cppgc/garbage-collected.h" #include "v8/include/cppgc/member.h" #include "v8/include/cppgc/visitor.h" @@ -37,7 +38,7 @@ CXFA_Para* GetParaIfExists(); CXFA_Font* GetFontIfExists(); bool IsCheckButtonAndAutoWidth() const; - absl::optional<WideString> GetEmbeddedObj(const WideString& wsAttr) const; + std::optional<WideString> GetEmbeddedObj(const WideString& wsAttr) const; private: CXFA_TextProvider(CXFA_Node* pNode, Type eType);
diff --git a/xfa/fxfa/formcalc/cxfa_fmexpression.cpp b/xfa/fxfa/formcalc/cxfa_fmexpression.cpp index 2b2f089..35bbfe2 100644 --- a/xfa/fxfa/formcalc/cxfa_fmexpression.cpp +++ b/xfa/fxfa/formcalc/cxfa_fmexpression.cpp
@@ -773,7 +773,7 @@ ContainerTrace(visitor, expressions_); } -absl::optional<WideTextBuffer> CXFA_FMAST::ToJavaScript() const { +std::optional<WideTextBuffer> CXFA_FMAST::ToJavaScript() const { WideTextBuffer js; if (expressions_.empty()) { js << "// comments only"; @@ -798,13 +798,13 @@ ? CXFA_FMAssignExpression::ReturnType::kImplied : CXFA_FMAssignExpression::ReturnType::kInferred; if (!expr->ToJavaScript(&js, ret_type)) - return absl::nullopt; + return std::nullopt; } js << "return pfm_rt.get_val(pfm_ret);\n"; js << "}).call(this);"; if (CXFA_IsTooBig(js)) - return absl::nullopt; + return std::nullopt; return js; }
diff --git a/xfa/fxfa/formcalc/cxfa_fmexpression.h b/xfa/fxfa/formcalc/cxfa_fmexpression.h index e00921f..f53da0b 100644 --- a/xfa/fxfa/formcalc/cxfa_fmexpression.h +++ b/xfa/fxfa/formcalc/cxfa_fmexpression.h
@@ -7,12 +7,12 @@ #ifndef XFA_FXFA_FORMCALC_CXFA_FMEXPRESSION_H_ #define XFA_FXFA_FORMCALC_CXFA_FMEXPRESSION_H_ +#include <optional> #include <vector> #include "core/fxcrt/widestring.h" #include "core/fxcrt/widetext_buffer.h" #include "fxjs/gc/heap.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "v8/include/cppgc/garbage-collected.h" #include "v8/include/cppgc/member.h" #include "xfa/fxfa/formcalc/cxfa_fmlexer.h" @@ -594,7 +594,7 @@ ~CXFA_FMAST(); void Trace(cppgc::Visitor* visitor) const; - absl::optional<WideTextBuffer> ToJavaScript() const; + std::optional<WideTextBuffer> ToJavaScript() const; private: explicit CXFA_FMAST(
diff --git a/xfa/fxfa/formcalc/cxfa_fmparser.cpp b/xfa/fxfa/formcalc/cxfa_fmparser.cpp index 7c73c37..cc8e7fc 100644 --- a/xfa/fxfa/formcalc/cxfa_fmparser.cpp +++ b/xfa/fxfa/formcalc/cxfa_fmparser.cpp
@@ -651,7 +651,7 @@ switch (m_token.GetType()) { case TOKlparen: { - absl::optional<std::vector<cppgc::Member<CXFA_FMSimpleExpression>>> + std::optional<std::vector<cppgc::Member<CXFA_FMSimpleExpression>>> expressions = ParseArgumentList(); if (!expressions.has_value()) return nullptr; @@ -682,7 +682,7 @@ if (!NextToken()) return nullptr; if (m_token.GetType() == TOKlparen) { - absl::optional<std::vector<cppgc::Member<CXFA_FMSimpleExpression>>> + std::optional<std::vector<cppgc::Member<CXFA_FMSimpleExpression>>> expressions = ParseArgumentList(); if (!expressions.has_value()) return nullptr; @@ -800,10 +800,10 @@ // Argument lists are zero or more comma seperated simple expressions found // between '(' and ')' -absl::optional<std::vector<cppgc::Member<CXFA_FMSimpleExpression>>> +std::optional<std::vector<cppgc::Member<CXFA_FMSimpleExpression>>> CXFA_FMParser::ParseArgumentList() { if (m_token.GetType() != TOKlparen || !NextToken()) - return absl::nullopt; + return std::nullopt; std::vector<cppgc::Member<CXFA_FMSimpleExpression>> expressions; bool first_arg = true; @@ -812,16 +812,16 @@ first_arg = false; } else { if (m_token.GetType() != TOKcomma || !NextToken()) - return absl::nullopt; + return std::nullopt; } CXFA_FMSimpleExpression* exp = ParseSimpleExpression(); if (!exp) - return absl::nullopt; + return std::nullopt; expressions.push_back(exp); if (expressions.size() > kMaxPostExpressions) - return absl::nullopt; + return std::nullopt; } return expressions;
diff --git a/xfa/fxfa/formcalc/cxfa_fmparser.h b/xfa/fxfa/formcalc/cxfa_fmparser.h index e8b6c44..22ce68d 100644 --- a/xfa/fxfa/formcalc/cxfa_fmparser.h +++ b/xfa/fxfa/formcalc/cxfa_fmparser.h
@@ -7,11 +7,11 @@ #ifndef XFA_FXFA_FORMCALC_CXFA_FMPARSER_H_ #define XFA_FXFA_FORMCALC_CXFA_FMPARSER_H_ +#include <optional> #include <vector> #include "core/fxcrt/unowned_ptr_exclusion.h" #include "fxjs/gc/heap.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "v8/include/cppgc/macros.h" #include "v8/include/cppgc/member.h" #include "xfa/fxfa/formcalc/cxfa_fmexpression.h" @@ -60,7 +60,7 @@ CXFA_FMSimpleExpression* ParsePostExpression(CXFA_FMSimpleExpression* e); CXFA_FMSimpleExpression* ParseIndexExpression(); CXFA_FMSimpleExpression* ParseLiteral(); - absl::optional<std::vector<cppgc::Member<CXFA_FMSimpleExpression>>> + std::optional<std::vector<cppgc::Member<CXFA_FMSimpleExpression>>> ParseArgumentList(); UnownedPtr<cppgc::Heap> const m_heap;
diff --git a/xfa/fxfa/formcalc/cxfa_fmparser_unittest.cpp b/xfa/fxfa/formcalc/cxfa_fmparser_unittest.cpp index 98c73f0..00b1e3c 100644 --- a/xfa/fxfa/formcalc/cxfa_fmparser_unittest.cpp +++ b/xfa/fxfa/formcalc/cxfa_fmparser_unittest.cpp
@@ -19,7 +19,7 @@ EXPECT_FALSE(parser.HasError()); CXFA_FMToJavaScriptDepth::Reset(); - absl::optional<WideTextBuffer> buf = ast->ToJavaScript(); + std::optional<WideTextBuffer> buf = ast->ToJavaScript(); ASSERT_TRUE(buf.has_value()); // TODO(dsinclair): This is a little weird ..... EXPECT_STREQ(L"// comments only", buf.value().MakeString().c_str()); @@ -35,7 +35,7 @@ // EXPECT_TRUE(parser.HasError()); CXFA_FMToJavaScriptDepth::Reset(); - absl::optional<WideTextBuffer> buf = ast->ToJavaScript(); + std::optional<WideTextBuffer> buf = ast->ToJavaScript(); ASSERT_TRUE(buf.has_value()); EXPECT_STREQ(L"// comments only", buf.value().MakeString().c_str()); } @@ -65,7 +65,7 @@ EXPECT_FALSE(parser.HasError()); CXFA_FMToJavaScriptDepth::Reset(); - absl::optional<WideTextBuffer> buf = ast->ToJavaScript(); + std::optional<WideTextBuffer> buf = ast->ToJavaScript(); ASSERT_TRUE(buf.has_value()); EXPECT_STREQ(ret, buf.value().MakeString().c_str()); } @@ -135,7 +135,7 @@ EXPECT_FALSE(parser.HasError()); CXFA_FMToJavaScriptDepth::Reset(); - absl::optional<WideTextBuffer> buf = ast->ToJavaScript(); + std::optional<WideTextBuffer> buf = ast->ToJavaScript(); ASSERT_TRUE(buf.has_value()); EXPECT_EQ(ret, buf.value().AsStringView()); } @@ -201,7 +201,7 @@ EXPECT_FALSE(parser.HasError()); CXFA_FMToJavaScriptDepth::Reset(); - absl::optional<WideTextBuffer> buf = ast->ToJavaScript(); + std::optional<WideTextBuffer> buf = ast->ToJavaScript(); ASSERT_TRUE(buf.has_value()); EXPECT_STREQ(ret, buf.value().MakeString().c_str()); } @@ -240,7 +240,7 @@ EXPECT_FALSE(parser.HasError()); CXFA_FMToJavaScriptDepth::Reset(); - absl::optional<WideTextBuffer> buf = ast->ToJavaScript(); + std::optional<WideTextBuffer> buf = ast->ToJavaScript(); ASSERT_TRUE(buf.has_value()); EXPECT_STREQ(ret, buf.value().MakeString().c_str()); } @@ -329,7 +329,7 @@ EXPECT_FALSE(parser.HasError()); CXFA_FMToJavaScriptDepth::Reset(); - absl::optional<WideTextBuffer> buf = ast->ToJavaScript(); + std::optional<WideTextBuffer> buf = ast->ToJavaScript(); ASSERT_TRUE(buf.has_value()); EXPECT_STREQ(ret, buf.value().MakeString().c_str()); } @@ -371,7 +371,7 @@ EXPECT_FALSE(parser.HasError()); CXFA_FMToJavaScriptDepth::Reset(); - absl::optional<WideTextBuffer> buf = ast->ToJavaScript(); + std::optional<WideTextBuffer> buf = ast->ToJavaScript(); ASSERT_TRUE(buf.has_value()); EXPECT_STREQ(ret, buf.value().MakeString().c_str()); } @@ -403,7 +403,7 @@ EXPECT_FALSE(parser.HasError()); CXFA_FMToJavaScriptDepth::Reset(); - absl::optional<WideTextBuffer> buf = ast->ToJavaScript(); + std::optional<WideTextBuffer> buf = ast->ToJavaScript(); ASSERT_TRUE(buf.has_value()); EXPECT_STREQ(ret, buf.value().MakeString().c_str()); } @@ -437,7 +437,7 @@ EXPECT_FALSE(parser.HasError()); CXFA_FMToJavaScriptDepth::Reset(); - absl::optional<WideTextBuffer> buf = ast->ToJavaScript(); + std::optional<WideTextBuffer> buf = ast->ToJavaScript(); ASSERT_TRUE(buf.has_value()); EXPECT_STREQ(ret, buf.value().MakeString().c_str()); } @@ -471,7 +471,7 @@ EXPECT_FALSE(parser.HasError()); CXFA_FMToJavaScriptDepth::Reset(); - absl::optional<WideTextBuffer> buf = ast->ToJavaScript(); + std::optional<WideTextBuffer> buf = ast->ToJavaScript(); ASSERT_TRUE(buf.has_value()); EXPECT_STREQ(ret, buf.value().MakeString().c_str()); } @@ -505,7 +505,7 @@ EXPECT_FALSE(parser.HasError()); CXFA_FMToJavaScriptDepth::Reset(); - absl::optional<WideTextBuffer> buf = ast->ToJavaScript(); + std::optional<WideTextBuffer> buf = ast->ToJavaScript(); ASSERT_TRUE(buf.has_value()); EXPECT_STREQ(ret, buf.value().MakeString().c_str()); }
diff --git a/xfa/fxfa/layout/cxfa_contentlayoutprocessor.cpp b/xfa/fxfa/layout/cxfa_contentlayoutprocessor.cpp index 370d5c0..2df317e 100644 --- a/xfa/fxfa/layout/cxfa_contentlayoutprocessor.cpp +++ b/xfa/fxfa/layout/cxfa_contentlayoutprocessor.cpp
@@ -92,14 +92,14 @@ CFX_SizeF containerSize; if (eType == XFA_Element::Subform || eType == XFA_Element::ExclGroup) { - absl::optional<CXFA_Measurement> wValue = + std::optional<CXFA_Measurement> wValue = pFormNode->JSObject()->TryMeasure(XFA_Attribute::W, false); if (wValue.has_value() && wValue->GetValue() > kXFALayoutPrecision) { containerSize.width = wValue->ToUnit(XFA_Unit::Pt); *bContainerWidthAutoSize = false; } - absl::optional<CXFA_Measurement> hValue = + std::optional<CXFA_Measurement> hValue = pFormNode->JSObject()->TryMeasure(XFA_Attribute::H, false); if (hValue.has_value() && hValue->GetValue() > kXFALayoutPrecision) { containerSize.height = hValue->ToUnit(XFA_Unit::Pt); @@ -108,14 +108,14 @@ } if (*bContainerWidthAutoSize && eType == XFA_Element::Subform) { - absl::optional<CXFA_Measurement> maxW = + std::optional<CXFA_Measurement> maxW = pFormNode->JSObject()->TryMeasure(XFA_Attribute::MaxW, false); if (maxW.has_value() && maxW->GetValue() > kXFALayoutPrecision) { containerSize.width = maxW->ToUnit(XFA_Unit::Pt); *bContainerWidthAutoSize = false; } - absl::optional<CXFA_Measurement> maxH = + std::optional<CXFA_Measurement> maxH = pFormNode->JSObject()->TryMeasure(XFA_Attribute::MaxH, false); if (maxH.has_value() && maxH->GetValue() > kXFALayoutPrecision) { containerSize.height = maxH->ToUnit(XFA_Unit::Pt); @@ -138,12 +138,12 @@ if (bContainerWidthAutoSize) { componentSize.width = fContentCalculatedWidth; if (pMarginNode) { - absl::optional<CXFA_Measurement> leftInset = + std::optional<CXFA_Measurement> leftInset = pMarginNode->JSObject()->TryMeasure(XFA_Attribute::LeftInset, false); if (leftInset.has_value()) componentSize.width += leftInset->ToUnit(XFA_Unit::Pt); - absl::optional<CXFA_Measurement> rightInset = + std::optional<CXFA_Measurement> rightInset = pMarginNode->JSObject()->TryMeasure(XFA_Attribute::RightInset, false); if (rightInset.has_value()) componentSize.width += rightInset->ToUnit(XFA_Unit::Pt); @@ -153,12 +153,12 @@ if (bContainerHeightAutoSize) { componentSize.height = fContentCalculatedHeight; if (pMarginNode) { - absl::optional<CXFA_Measurement> topInset = + std::optional<CXFA_Measurement> topInset = pMarginNode->JSObject()->TryMeasure(XFA_Attribute::TopInset, false); if (topInset.has_value()) componentSize.height += topInset->ToUnit(XFA_Unit::Pt); - absl::optional<CXFA_Measurement> bottomInset = + std::optional<CXFA_Measurement> bottomInset = pMarginNode->JSObject()->TryMeasure(XFA_Attribute::BottomInset, false); if (bottomInset.has_value()) @@ -337,7 +337,7 @@ XFA_AttributeValue GetLayout(CXFA_Node* pFormNode, bool* bRootForceTb) { *bRootForceTb = false; - absl::optional<XFA_AttributeValue> layoutMode = + std::optional<XFA_AttributeValue> layoutMode = pFormNode->JSObject()->TryEnum(XFA_Attribute::Layout, false); if (layoutMode.has_value()) return layoutMode.value(); @@ -366,7 +366,7 @@ if (!bPreFind) eKeepType = XFA_Attribute::Next; - absl::optional<XFA_AttributeValue> previous = + std::optional<XFA_AttributeValue> previous = pKeep->JSObject()->TryEnum(eKeepType, false); if (previous == XFA_AttributeValue::ContentArea || previous == XFA_AttributeValue::PageArea) { @@ -382,7 +382,7 @@ if (!bPreFind) eKeepType = XFA_Attribute::Previous; - absl::optional<XFA_AttributeValue> next = + std::optional<XFA_AttributeValue> next = pKeep->JSObject()->TryEnum(eKeepType, false); if (next == XFA_AttributeValue::ContentArea || next == XFA_AttributeValue::PageArea) { @@ -391,7 +391,7 @@ return false; } -absl::optional<CXFA_ContentLayoutProcessor::Stage> FindBreakBeforeNode( +std::optional<CXFA_ContentLayoutProcessor::Stage> FindBreakBeforeNode( CXFA_Node* pContainerNode, CXFA_Node** pCurActionNode) { for (CXFA_Node* pBreakNode = pContainerNode; pBreakNode; @@ -411,10 +411,10 @@ break; } } - return absl::nullopt; + return std::nullopt; } -absl::optional<CXFA_ContentLayoutProcessor::Stage> FindBreakAfterNode( +std::optional<CXFA_ContentLayoutProcessor::Stage> FindBreakAfterNode( CXFA_Node* pContainerNode, CXFA_Node** pCurActionNode) { for (CXFA_Node* pBreakNode = pContainerNode; pBreakNode; @@ -434,7 +434,7 @@ break; } } - return absl::nullopt; + return std::nullopt; } void DeleteLayoutGeneratedNode(CXFA_Node* pGenerateNode) { @@ -498,7 +498,7 @@ while (bChanged) { bChanged = false; { - absl::optional<float> fRelSplitPos = pFormNode->FindSplitPos( + std::optional<float> fRelSplitPos = pFormNode->FindSplitPos( pNotify->GetFFDoc()->GetDocView(), pLayoutItem->GetIndex(), *fProposedSplitPos - fCurVerticalOffset); if (fRelSplitPos.has_value()) { @@ -876,7 +876,7 @@ break; } - absl::optional<Stage> ret; + std::optional<Stage> ret; switch (nCurStage) { case Stage::kKeep: ret = HandleKeep(pChildContainer->GetFirstChild(), &pCurActionNode); @@ -934,7 +934,7 @@ return {Stage::kDone, nullptr}; } -absl::optional<CXFA_ContentLayoutProcessor::Stage> +std::optional<CXFA_ContentLayoutProcessor::Stage> CXFA_ContentLayoutProcessor::ProcessKeepNodesForCheckNext( CXFA_Node** pCurActionNode, CXFA_Node** pNextContainer, @@ -948,35 +948,35 @@ m_pKeepHeadNode = *pNextContainer; m_bIsProcessKeep = true; } - return absl::nullopt; + return std::nullopt; } if (!m_bIsProcessKeep || !m_pKeepHeadNode) { if (m_bKeepBreakFinish) *pLastKeepNode = true; m_bKeepBreakFinish = false; - return absl::nullopt; + return std::nullopt; } m_pKeepTailNode = *pNextContainer; if (m_bKeepBreakFinish) { *pNextContainer = m_pKeepHeadNode; ProcessKeepNodesEnd(); - return absl::nullopt; + return std::nullopt; } - absl::optional<Stage> ret = + std::optional<Stage> ret = FindBreakBeforeNode((*pNextContainer)->GetFirstChild(), pCurActionNode); if (!ret.has_value()) { *pNextContainer = m_pKeepHeadNode; ProcessKeepNodesEnd(); - return absl::nullopt; + return std::nullopt; } return ret; } -absl::optional<CXFA_ContentLayoutProcessor::Stage> +std::optional<CXFA_ContentLayoutProcessor::Stage> CXFA_ContentLayoutProcessor::ProcessKeepNodesForBreakBefore( CXFA_Node** pCurActionNode, CXFA_Node* pContainerNode) { @@ -1647,7 +1647,7 @@ if (!bUseBreakControl || !m_pViewLayoutProcessor) break; - absl::optional<CXFA_ViewLayoutProcessor::BreakData> break_data = + std::optional<CXFA_ViewLayoutProcessor::BreakData> break_data = m_pViewLayoutProcessor->ProcessBreakBefore(m_pCurChildNode); if (!break_data.has_value() || !break_data.value().bCreatePage || GetFormNode()->GetElementType() == XFA_Element::Form) { @@ -1688,7 +1688,7 @@ if (!bUseBreakControl || !m_pViewLayoutProcessor) break; - absl::optional<CXFA_ViewLayoutProcessor::BreakData> break_data = + std::optional<CXFA_ViewLayoutProcessor::BreakData> break_data = m_pViewLayoutProcessor->ProcessBreakAfter(m_pCurChildNode); if (!break_data.has_value() || GetFormNode()->GetElementType() == XFA_Element::Form) { @@ -2431,7 +2431,7 @@ pFormNode = pLayoutContext->m_pOverflowNode; bUseInherited = true; } - absl::optional<CXFA_ViewLayoutProcessor::OverflowData> overflow_data = + std::optional<CXFA_ViewLayoutProcessor::OverflowData> overflow_data = m_pViewLayoutProcessor->ProcessOverflow(pFormNode, false); if (overflow_data.has_value()) { pOverflowLeaderNode = overflow_data.value().pLeader; @@ -2633,7 +2633,7 @@ if (pProcessor->GetFormNode()->GetIntact() == XFA_AttributeValue::None && eLayout == XFA_AttributeValue::Tb) { if (m_pViewLayoutProcessor) { - absl::optional<CXFA_ViewLayoutProcessor::OverflowData> overflow_data = + std::optional<CXFA_ViewLayoutProcessor::OverflowData> overflow_data = m_pViewLayoutProcessor->ProcessOverflow(pFormNode, true); if (overflow_data.has_value()) { pOverflowLeaderNode = overflow_data.value().pLeader; @@ -2654,7 +2654,7 @@ if (!pFormNode && pLayoutContext) pFormNode = pLayoutContext->m_pOverflowProcessor->GetFormNode(); if (m_pViewLayoutProcessor) { - absl::optional<CXFA_ViewLayoutProcessor::OverflowData> overflow_data = + std::optional<CXFA_ViewLayoutProcessor::OverflowData> overflow_data = m_pViewLayoutProcessor->ProcessOverflow(pFormNode, true); if (overflow_data.has_value()) { pOverflowLeaderNode = overflow_data.value().pLeader; @@ -2669,15 +2669,15 @@ return Result::kPageFullBreak; } -absl::optional<CXFA_ContentLayoutProcessor::Stage> +std::optional<CXFA_ContentLayoutProcessor::Stage> CXFA_ContentLayoutProcessor::HandleKeep(CXFA_Node* pBreakAfterNode, CXFA_Node** pCurActionNode) { if (m_bKeepBreakFinish) - return absl::nullopt; + return std::nullopt; return FindBreakAfterNode(pBreakAfterNode, pCurActionNode); } -absl::optional<CXFA_ContentLayoutProcessor::Stage> +std::optional<CXFA_ContentLayoutProcessor::Stage> CXFA_ContentLayoutProcessor::HandleBookendLeader(CXFA_Node* pParentContainer, CXFA_Node** pCurActionNode) { for (CXFA_Node* pBookendNode = *pCurActionNode @@ -2693,18 +2693,18 @@ break; } } - return absl::nullopt; + return std::nullopt; } -absl::optional<CXFA_ContentLayoutProcessor::Stage> +std::optional<CXFA_ContentLayoutProcessor::Stage> CXFA_ContentLayoutProcessor::HandleBreakBefore(CXFA_Node* pChildContainer, CXFA_Node** pCurActionNode) { if (!*pCurActionNode) - return absl::nullopt; + return std::nullopt; CXFA_Node* pBreakBeforeNode = (*pCurActionNode)->GetNextSibling(); if (!m_bKeepBreakFinish) { - absl::optional<Stage> ret = + std::optional<Stage> ret = FindBreakBeforeNode(pBreakBeforeNode, pCurActionNode); if (ret.has_value()) return ret.value(); @@ -2716,7 +2716,7 @@ return Stage::kContainer; } -absl::optional<CXFA_ContentLayoutProcessor::Stage> +std::optional<CXFA_ContentLayoutProcessor::Stage> CXFA_ContentLayoutProcessor::HandleBreakAfter(CXFA_Node* pChildContainer, CXFA_Node** pCurActionNode) { if (*pCurActionNode) { @@ -2728,7 +2728,7 @@ return HandleKeep(pBreakAfterNode, pCurActionNode); } -absl::optional<CXFA_ContentLayoutProcessor::Stage> +std::optional<CXFA_ContentLayoutProcessor::Stage> CXFA_ContentLayoutProcessor::HandleCheckNextChildContainer( CXFA_Node* pParentContainer, CXFA_Node* pChildContainer, @@ -2743,10 +2743,10 @@ DeleteLayoutGeneratedNode(pSaveNode); } if (!pNextChildContainer) - return absl::nullopt; + return std::nullopt; bool bLastKeep = false; - absl::optional<Stage> ret = ProcessKeepNodesForCheckNext( + std::optional<Stage> ret = ProcessKeepNodesForCheckNext( pCurActionNode, &pNextChildContainer, &bLastKeep); if (ret.has_value()) return ret.value(); @@ -2761,7 +2761,7 @@ return m_bIsProcessKeep ? Stage::kKeep : Stage::kContainer; } -absl::optional<CXFA_ContentLayoutProcessor::Stage> +std::optional<CXFA_ContentLayoutProcessor::Stage> CXFA_ContentLayoutProcessor::HandleBookendTrailer(CXFA_Node* pParentContainer, CXFA_Node** pCurActionNode) { for (CXFA_Node* pBookendNode = *pCurActionNode @@ -2777,7 +2777,7 @@ break; } } - return absl::nullopt; + return std::nullopt; } void CXFA_ContentLayoutProcessor::ProcessKeepNodesEnd() {
diff --git a/xfa/fxfa/layout/cxfa_contentlayoutprocessor.h b/xfa/fxfa/layout/cxfa_contentlayoutprocessor.h index 9267ebc..173e39d 100644 --- a/xfa/fxfa/layout/cxfa_contentlayoutprocessor.h +++ b/xfa/fxfa/layout/cxfa_contentlayoutprocessor.h
@@ -11,13 +11,13 @@ #include <list> #include <map> +#include <optional> #include <utility> #include <vector> #include "core/fxcrt/fx_coordinates.h" #include "core/fxcrt/unowned_ptr.h" #include "fxjs/gc/heap.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "v8/include/cppgc/garbage-collected.h" #include "v8/include/cppgc/macros.h" #include "v8/include/cppgc/member.h" @@ -72,7 +72,7 @@ Context(); ~Context(); - absl::optional<float> m_fCurColumnWidth; + std::optional<float> m_fCurColumnWidth; UnownedPtr<std::vector<float>> m_prgSpecifiedColumnWidths; UnownedPtr<CXFA_ContentLayoutProcessor> m_pOverflowProcessor; // OK, stack UnownedPtr<CXFA_Node> m_pOverflowNode; // Ok, stack @@ -154,11 +154,11 @@ CXFA_Node* pParentContainer, CXFA_Node* pCurActionNode); - absl::optional<Stage> ProcessKeepNodesForCheckNext(CXFA_Node** pCurActionNode, - CXFA_Node** pNextContainer, - bool* pLastKeepNode); + std::optional<Stage> ProcessKeepNodesForCheckNext(CXFA_Node** pCurActionNode, + CXFA_Node** pNextContainer, + bool* pLastKeepNode); - absl::optional<Stage> ProcessKeepNodesForBreakBefore( + std::optional<Stage> ProcessKeepNodesForBreakBefore( CXFA_Node** pCurActionNode, CXFA_Node* pContainerNode); @@ -192,20 +192,20 @@ Context* pLayoutContext, bool bNewRow); - absl::optional<Stage> HandleKeep(CXFA_Node* pBreakAfterNode, - CXFA_Node** pCurActionNode); - absl::optional<Stage> HandleBookendLeader(CXFA_Node* pParentContainer, - CXFA_Node** pCurActionNode); - absl::optional<Stage> HandleBreakBefore(CXFA_Node* pChildContainer, - CXFA_Node** pCurActionNode); - absl::optional<Stage> HandleBreakAfter(CXFA_Node* pChildContainer, + std::optional<Stage> HandleKeep(CXFA_Node* pBreakAfterNode, + CXFA_Node** pCurActionNode); + std::optional<Stage> HandleBookendLeader(CXFA_Node* pParentContainer, + CXFA_Node** pCurActionNode); + std::optional<Stage> HandleBreakBefore(CXFA_Node* pChildContainer, CXFA_Node** pCurActionNode); - absl::optional<Stage> HandleCheckNextChildContainer( + std::optional<Stage> HandleBreakAfter(CXFA_Node* pChildContainer, + CXFA_Node** pCurActionNode); + std::optional<Stage> HandleCheckNextChildContainer( CXFA_Node* pParentContainer, CXFA_Node* pChildContainer, CXFA_Node** pCurActionNode); - absl::optional<Stage> HandleBookendTrailer(CXFA_Node* pParentContainer, - CXFA_Node** pCurActionNode); + std::optional<Stage> HandleBookendTrailer(CXFA_Node* pParentContainer, + CXFA_Node** pCurActionNode); void ProcessKeepNodesEnd(); void AdjustContainerSpecifiedSize(Context* pContext, CFX_SizeF* pSize,
diff --git a/xfa/fxfa/layout/cxfa_viewlayoutprocessor.cpp b/xfa/fxfa/layout/cxfa_viewlayoutprocessor.cpp index c8ec206..e3c30ed 100644 --- a/xfa/fxfa/layout/cxfa_viewlayoutprocessor.cpp +++ b/xfa/fxfa/layout/cxfa_viewlayoutprocessor.cpp
@@ -176,7 +176,7 @@ bool bTargetAllFind = true; while (true) { WideString wsExpr; - absl::optional<size_t> iSplitNextIndex = 0; + std::optional<size_t> iSplitNextIndex = 0; if (!bTargetAllFind) { iSplitNextIndex = pTargetAll->Find(' ', iSplitIndex); if (!iSplitNextIndex.has_value()) @@ -201,7 +201,7 @@ if (wsExpr.First(4).EqualsASCII("som(") && wsExpr.Back() == L')') wsProcessedTarget = wsExpr.Substr(4, wsExpr.GetLength() - 5); - absl::optional<CFXJSE_Engine::ResolveResult> maybeResult = + std::optional<CFXJSE_Engine::ResolveResult> maybeResult = pDocument->GetScriptContext()->ResolveObjects( pPageSetRoot, wsProcessedTarget.AsStringView(), Mask<XFA_ResolveFlag>{ @@ -222,8 +222,8 @@ pNode->ClearFlag(XFA_NodeFlag::kUnusedNode); } -// Note: Returning nullptr is not the same as returning absl::nullopt. -absl::optional<CXFA_ViewLayoutItem*> CheckContentAreaNotUsed( +// Note: Returning nullptr is not the same as returning std::nullopt. +std::optional<CXFA_ViewLayoutItem*> CheckContentAreaNotUsed( CXFA_ViewLayoutItem* pPageAreaLayoutItem, CXFA_Node* pContentArea) { for (CXFA_LayoutItem* pChild = pPageAreaLayoutItem->GetFirstChild(); pChild; @@ -232,7 +232,7 @@ if (pLayoutItem && pLayoutItem->GetFormNode() == pContentArea) { if (!pLayoutItem->GetFirstChild()) return pLayoutItem; - return absl::nullopt; + return std::nullopt; } } return nullptr; @@ -853,22 +853,22 @@ return ret; } -absl::optional<CXFA_ViewLayoutProcessor::BreakData> +std::optional<CXFA_ViewLayoutProcessor::BreakData> CXFA_ViewLayoutProcessor::ProcessBreakBefore(const CXFA_Node* pBreakNode) { return ProcessBreakBeforeOrAfter(pBreakNode, /*bBefore=*/true); } -absl::optional<CXFA_ViewLayoutProcessor::BreakData> +std::optional<CXFA_ViewLayoutProcessor::BreakData> CXFA_ViewLayoutProcessor::ProcessBreakAfter(const CXFA_Node* pBreakNode) { return ProcessBreakBeforeOrAfter(pBreakNode, /*bBefore=*/false); } -absl::optional<CXFA_ViewLayoutProcessor::BreakData> +std::optional<CXFA_ViewLayoutProcessor::BreakData> CXFA_ViewLayoutProcessor::ProcessBreakBeforeOrAfter(const CXFA_Node* pBreakNode, bool bBefore) { CXFA_Node* pFormNode = pBreakNode->GetContainerParent(); if (!pFormNode->PresenceRequiresSpace()) - return absl::nullopt; + return std::nullopt; BreakData break_data = ExecuteBreakBeforeOrAfter(pBreakNode, bBefore); CXFA_Document* pDocument = pBreakNode->GetDocument(); @@ -876,20 +876,20 @@ pFormNode = pFormNode->GetContainerParent(); if (break_data.pLeader) { if (!break_data.pLeader->IsContainerNode()) - return absl::nullopt; + return std::nullopt; pDataScope = XFA_DataMerge_FindDataScope(pFormNode); break_data.pLeader = pDocument->DataMerge_CopyContainer( break_data.pLeader, pFormNode, pDataScope, true, true, true); if (!break_data.pLeader) - return absl::nullopt; + return std::nullopt; pDocument->DataMerge_UpdateBindingRelations(break_data.pLeader); SetLayoutGeneratedNodeFlag(break_data.pLeader); } if (break_data.pTrailer) { if (!break_data.pTrailer->IsContainerNode()) - return absl::nullopt; + return std::nullopt; if (!pDataScope) pDataScope = XFA_DataMerge_FindDataScope(pFormNode); @@ -897,7 +897,7 @@ break_data.pTrailer = pDocument->DataMerge_CopyContainer( break_data.pTrailer, pFormNode, pDataScope, true, true, true); if (!break_data.pTrailer) - return absl::nullopt; + return std::nullopt; pDocument->DataMerge_UpdateBindingRelations(break_data.pTrailer); SetLayoutGeneratedNodeFlag(break_data.pTrailer); @@ -1017,11 +1017,11 @@ return true; } -absl::optional<CXFA_ViewLayoutProcessor::OverflowData> +std::optional<CXFA_ViewLayoutProcessor::OverflowData> CXFA_ViewLayoutProcessor::ProcessOverflow(CXFA_Node* pFormNode, bool bCreatePage) { if (!pFormNode) - return absl::nullopt; + return std::nullopt; CXFA_Node* pLeaderTemplate = nullptr; CXFA_Node* pTrailerTemplate = nullptr; @@ -1044,7 +1044,7 @@ overflow_data.pLeader = pDocument->DataMerge_CopyContainer( pLeaderTemplate, pFormNode, pDataScope, true, true, true); if (!overflow_data.pLeader) - return absl::nullopt; + return std::nullopt; pDocument->DataMerge_UpdateBindingRelations(overflow_data.pLeader); SetLayoutGeneratedNodeFlag(overflow_data.pLeader); @@ -1056,7 +1056,7 @@ overflow_data.pTrailer = pDocument->DataMerge_CopyContainer( pTrailerTemplate, pFormNode, pDataScope, true, true, true); if (!overflow_data.pTrailer) - return absl::nullopt; + return std::nullopt; pDocument->DataMerge_UpdateBindingRelations(overflow_data.pTrailer); SetLayoutGeneratedNodeFlag(overflow_data.pTrailer); @@ -1066,7 +1066,7 @@ if (bIsOverflowNode) break; } - return absl::nullopt; + return std::nullopt; } CXFA_Node* CXFA_ViewLayoutProcessor::ResolveBookendLeaderOrTrailer( @@ -1129,7 +1129,7 @@ CXFA_Node* pOccurNode = pPageSet->GetFirstChildByClass<CXFA_Occur>(XFA_Element::Occur); if (pOccurNode) { - absl::optional<int32_t> ret = + std::optional<int32_t> ret = pOccurNode->JSObject()->TryInteger(XFA_Attribute::Max, false); if (ret.has_value()) iMax = ret.value(); @@ -1298,7 +1298,7 @@ if (m_ePageSetMode != XFA_AttributeValue::DuplexPaginated) return true; - absl::optional<XFA_AttributeValue> ret = + std::optional<XFA_AttributeValue> ret = pPageArea->JSObject()->TryEnum(XFA_Attribute::OddOrEven, true); if (!ret.has_value() || ret == XFA_AttributeValue::Any) return true; @@ -1327,7 +1327,7 @@ CXFA_Node* pOccurNode = m_pCurPageArea->GetFirstChildByClass<CXFA_Occur>(XFA_Element::Occur); if (pOccurNode) { - absl::optional<int32_t> ret = + std::optional<int32_t> ret = pOccurNode->JSObject()->TryInteger(XFA_Attribute::Max, false); if (ret.has_value()) iMax = ret.value(); @@ -1389,7 +1389,7 @@ if (pContentArea->GetParent() != m_pCurPageArea) return false; - absl::optional<CXFA_ViewLayoutItem*> pContentAreaLayout = + std::optional<CXFA_ViewLayoutItem*> pContentAreaLayout = CheckContentAreaNotUsed(GetCurrentViewRecord()->pCurPageArea.Get(), pContentArea); if (!pContentAreaLayout.has_value()) @@ -1432,7 +1432,7 @@ return 0; int32_t iMin = 0; - absl::optional<int32_t> ret; + std::optional<int32_t> ret; CXFA_Node* pOccurNode = pPageArea->GetFirstChildByClass<CXFA_Occur>(XFA_Element::Occur); if (pOccurNode) { @@ -1476,7 +1476,7 @@ if (!pOccurNode) return; - absl::optional<int32_t> iMin = + std::optional<int32_t> iMin = pOccurNode->JSObject()->TryInteger(XFA_Attribute::Min, false); if (!iMin.has_value() || iCurSetCount >= iMin.value()) return; @@ -1544,7 +1544,7 @@ CXFA_Node* pOccurNode = pPageNode->GetFirstChildByClass<CXFA_Occur>(XFA_Element::Occur); int32_t iMax = 0; - absl::optional<int32_t> ret; + std::optional<int32_t> ret; if (pOccurNode) { ret = pOccurNode->JSObject()->TryInteger(XFA_Attribute::Max, false); if (ret.has_value())
diff --git a/xfa/fxfa/layout/cxfa_viewlayoutprocessor.h b/xfa/fxfa/layout/cxfa_viewlayoutprocessor.h index 859621d..1c65e00 100644 --- a/xfa/fxfa/layout/cxfa_viewlayoutprocessor.h +++ b/xfa/fxfa/layout/cxfa_viewlayoutprocessor.h
@@ -10,12 +10,12 @@ #include <iterator> #include <list> #include <map> +#include <optional> #include <vector> #include "core/fxcrt/unowned_ptr.h" #include "core/fxcrt/unowned_ptr_exclusion.h" #include "fxjs/gc/heap.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "v8/include/cppgc/garbage-collected.h" #include "v8/include/cppgc/member.h" #include "v8/include/cppgc/prefinalizer.h" @@ -67,10 +67,10 @@ CXFA_ViewLayoutItem* GetRootLayoutItem() const { return m_pPageSetRootLayoutItem; } - absl::optional<BreakData> ProcessBreakBefore(const CXFA_Node* pBreakNode); - absl::optional<BreakData> ProcessBreakAfter(const CXFA_Node* pBreakNode); - absl::optional<OverflowData> ProcessOverflow(CXFA_Node* pFormNode, - bool bCreatePage); + std::optional<BreakData> ProcessBreakBefore(const CXFA_Node* pBreakNode); + std::optional<BreakData> ProcessBreakAfter(const CXFA_Node* pBreakNode); + std::optional<OverflowData> ProcessOverflow(CXFA_Node* pFormNode, + bool bCreatePage); CXFA_Node* QueryOverflow(CXFA_Node* pFormNode); CXFA_Node* ProcessBookendLeader(const CXFA_Node* pBookendNode); CXFA_Node* ProcessBookendTrailer(const CXFA_Node* pBookendNode); @@ -133,7 +133,7 @@ bool bLeader); CXFA_Node* ResolveBookendLeaderOrTrailer(const CXFA_Node* pBookendNode, bool bLeader); - absl::optional<BreakData> ProcessBreakBeforeOrAfter( + std::optional<BreakData> ProcessBreakBeforeOrAfter( const CXFA_Node* pBreakNode, bool bBefore); BreakData ExecuteBreakBeforeOrAfter(const CXFA_Node* pCurNode, bool bBefore);
diff --git a/xfa/fxfa/parser/cxfa_barcode.cpp b/xfa/fxfa/parser/cxfa_barcode.cpp index 2801dc1..ceb96e3 100644 --- a/xfa/fxfa/parser/cxfa_barcode.cpp +++ b/xfa/fxfa/parser/cxfa_barcode.cpp
@@ -71,15 +71,15 @@ return WideString(JSObject()->GetCData(XFA_Attribute::Type)); } -absl::optional<WideString> CXFA_Barcode::GetCharEncoding() { +std::optional<WideString> CXFA_Barcode::GetCharEncoding() { return JSObject()->TryCData(XFA_Attribute::CharEncoding, true); } -absl::optional<bool> CXFA_Barcode::GetChecksum() { - absl::optional<XFA_AttributeValue> checksum = +std::optional<bool> CXFA_Barcode::GetChecksum() { + std::optional<XFA_AttributeValue> checksum = JSObject()->TryEnum(XFA_Attribute::Checksum, true); if (!checksum.has_value()) - return absl::nullopt; + return std::nullopt; switch (checksum.value()) { case XFA_AttributeValue::None: @@ -92,81 +92,81 @@ default: break; } - return absl::nullopt; + return std::nullopt; } -absl::optional<int32_t> CXFA_Barcode::GetDataLength() { - absl::optional<WideString> wsDataLength = +std::optional<int32_t> CXFA_Barcode::GetDataLength() { + std::optional<WideString> wsDataLength = JSObject()->TryCData(XFA_Attribute::DataLength, true); if (!wsDataLength.has_value()) - return absl::nullopt; + return std::nullopt; return FXSYS_wtoi(wsDataLength->c_str()); } -absl::optional<char> CXFA_Barcode::GetStartChar() { - absl::optional<WideString> wsStartEndChar = +std::optional<char> CXFA_Barcode::GetStartChar() { + std::optional<WideString> wsStartEndChar = JSObject()->TryCData(XFA_Attribute::StartChar, true); if (!wsStartEndChar.has_value() || wsStartEndChar->IsEmpty()) - return absl::nullopt; + return std::nullopt; return static_cast<char>(wsStartEndChar.value()[0]); } -absl::optional<char> CXFA_Barcode::GetEndChar() { - absl::optional<WideString> wsStartEndChar = +std::optional<char> CXFA_Barcode::GetEndChar() { + std::optional<WideString> wsStartEndChar = JSObject()->TryCData(XFA_Attribute::EndChar, true); if (!wsStartEndChar.has_value() || wsStartEndChar->IsEmpty()) - return absl::nullopt; + return std::nullopt; return static_cast<char>(wsStartEndChar.value()[0]); } -absl::optional<int32_t> CXFA_Barcode::GetECLevel() { - absl::optional<WideString> wsECLevel = +std::optional<int32_t> CXFA_Barcode::GetECLevel() { + std::optional<WideString> wsECLevel = JSObject()->TryCData(XFA_Attribute::ErrorCorrectionLevel, true); if (!wsECLevel.has_value()) - return absl::nullopt; + return std::nullopt; return FXSYS_wtoi(wsECLevel->c_str()); } -absl::optional<int32_t> CXFA_Barcode::GetModuleWidth() { - absl::optional<CXFA_Measurement> moduleWidthHeight = +std::optional<int32_t> CXFA_Barcode::GetModuleWidth() { + std::optional<CXFA_Measurement> moduleWidthHeight = JSObject()->TryMeasure(XFA_Attribute::ModuleWidth, true); if (!moduleWidthHeight.has_value()) - return absl::nullopt; + return std::nullopt; return static_cast<int32_t>(moduleWidthHeight->ToUnit(XFA_Unit::Pt)); } -absl::optional<int32_t> CXFA_Barcode::GetModuleHeight() { - absl::optional<CXFA_Measurement> moduleWidthHeight = +std::optional<int32_t> CXFA_Barcode::GetModuleHeight() { + std::optional<CXFA_Measurement> moduleWidthHeight = JSObject()->TryMeasure(XFA_Attribute::ModuleHeight, true); if (!moduleWidthHeight.has_value()) - return absl::nullopt; + return std::nullopt; return static_cast<int32_t>(moduleWidthHeight->ToUnit(XFA_Unit::Pt)); } -absl::optional<bool> CXFA_Barcode::GetPrintChecksum() { +std::optional<bool> CXFA_Barcode::GetPrintChecksum() { return JSObject()->TryBoolean(XFA_Attribute::PrintCheckDigit, true); } -absl::optional<XFA_AttributeValue> CXFA_Barcode::GetTextLocation() { +std::optional<XFA_AttributeValue> CXFA_Barcode::GetTextLocation() { return JSObject()->TryEnum(XFA_Attribute::TextLocation, true); } -absl::optional<bool> CXFA_Barcode::GetTruncate() { +std::optional<bool> CXFA_Barcode::GetTruncate() { return JSObject()->TryBoolean(XFA_Attribute::Truncate, true); } -absl::optional<int8_t> CXFA_Barcode::GetWideNarrowRatio() { - absl::optional<WideString> wsWideNarrowRatio = +std::optional<int8_t> CXFA_Barcode::GetWideNarrowRatio() { + std::optional<WideString> wsWideNarrowRatio = JSObject()->TryCData(XFA_Attribute::WideNarrowRatio, true); if (!wsWideNarrowRatio.has_value()) - return absl::nullopt; + return std::nullopt; - absl::optional<size_t> ptPos = wsWideNarrowRatio->Find(':'); + std::optional<size_t> ptPos = wsWideNarrowRatio->Find(':'); if (!ptPos.has_value()) return static_cast<int8_t>(FXSYS_wtoi(wsWideNarrowRatio->c_str()));
diff --git a/xfa/fxfa/parser/cxfa_barcode.h b/xfa/fxfa/parser/cxfa_barcode.h index a297ec0..99b24ad 100644 --- a/xfa/fxfa/parser/cxfa_barcode.h +++ b/xfa/fxfa/parser/cxfa_barcode.h
@@ -7,7 +7,8 @@ #ifndef XFA_FXFA_PARSER_CXFA_BARCODE_H_ #define XFA_FXFA_PARSER_CXFA_BARCODE_H_ -#include "third_party/abseil-cpp/absl/types/optional.h" +#include <optional> + #include "xfa/fxfa/parser/cxfa_node.h" class CXFA_Barcode final : public CXFA_Node { @@ -20,18 +21,18 @@ XFA_FFWidgetType GetDefaultFFWidgetType() const override; WideString GetBarcodeType(); - absl::optional<WideString> GetCharEncoding(); - absl::optional<bool> GetChecksum(); - absl::optional<int32_t> GetDataLength(); - absl::optional<char> GetStartChar(); - absl::optional<char> GetEndChar(); - absl::optional<int32_t> GetECLevel(); - absl::optional<int32_t> GetModuleWidth(); - absl::optional<int32_t> GetModuleHeight(); - absl::optional<bool> GetPrintChecksum(); - absl::optional<XFA_AttributeValue> GetTextLocation(); - absl::optional<bool> GetTruncate(); - absl::optional<int8_t> GetWideNarrowRatio(); + std::optional<WideString> GetCharEncoding(); + std::optional<bool> GetChecksum(); + std::optional<int32_t> GetDataLength(); + std::optional<char> GetStartChar(); + std::optional<char> GetEndChar(); + std::optional<int32_t> GetECLevel(); + std::optional<int32_t> GetModuleWidth(); + std::optional<int32_t> GetModuleHeight(); + std::optional<bool> GetPrintChecksum(); + std::optional<XFA_AttributeValue> GetTextLocation(); + std::optional<bool> GetTruncate(); + std::optional<int8_t> GetWideNarrowRatio(); private: CXFA_Barcode(CXFA_Document* doc, XFA_PacketType packet);
diff --git a/xfa/fxfa/parser/cxfa_box.cpp b/xfa/fxfa/parser/cxfa_box.cpp index cd644aa..db331c5 100644 --- a/xfa/fxfa/parser/cxfa_box.cpp +++ b/xfa/fxfa/parser/cxfa_box.cpp
@@ -111,11 +111,11 @@ return JSObject()->GetBoolean(XFA_Attribute::Circular); } -absl::optional<int32_t> CXFA_Box::GetStartAngle() { +std::optional<int32_t> CXFA_Box::GetStartAngle() { return JSObject()->TryInteger(XFA_Attribute::StartAngle, false); } -absl::optional<int32_t> CXFA_Box::GetSweepAngle() { +std::optional<int32_t> CXFA_Box::GetSweepAngle() { return JSObject()->TryInteger(XFA_Attribute::SweepAngle, false); } @@ -256,8 +256,8 @@ rtDraw.top = center.y - b; rtDraw.width = a + a; rtDraw.height = b + b; - absl::optional<int32_t> startAngle = GetStartAngle(); - absl::optional<int32_t> sweepAngle = GetSweepAngle(); + std::optional<int32_t> startAngle = GetStartAngle(); + std::optional<int32_t> sweepAngle = GetSweepAngle(); if (!startAngle.has_value() && !sweepAngle.has_value()) { fillPath->AddEllipse(rtDraw); return;
diff --git a/xfa/fxfa/parser/cxfa_box.h b/xfa/fxfa/parser/cxfa_box.h index 5012094..b906573 100644 --- a/xfa/fxfa/parser/cxfa_box.h +++ b/xfa/fxfa/parser/cxfa_box.h
@@ -52,8 +52,8 @@ private: bool IsCircular(); - absl::optional<int32_t> GetStartAngle(); - absl::optional<int32_t> GetSweepAngle(); + std::optional<int32_t> GetStartAngle(); + std::optional<int32_t> GetSweepAngle(); std::vector<CXFA_Stroke*> GetStrokesInternal(bool bNull); void DrawFill(const std::vector<CXFA_Stroke*>& strokes,
diff --git a/xfa/fxfa/parser/cxfa_color.cpp b/xfa/fxfa/parser/cxfa_color.cpp index 044372d..ed78cd7 100644 --- a/xfa/fxfa/parser/cxfa_color.cpp +++ b/xfa/fxfa/parser/cxfa_color.cpp
@@ -95,13 +95,13 @@ CXFA_Color::~CXFA_Color() = default; FX_ARGB CXFA_Color::GetValue() const { - absl::optional<WideString> val = + std::optional<WideString> val = JSObject()->TryCData(XFA_Attribute::Value, false); return val.has_value() ? StringToFXARGB(val->AsStringView()) : 0xFF000000; } FX_ARGB CXFA_Color::GetValueOrDefault(FX_ARGB defaultValue) const { - absl::optional<WideString> val = + std::optional<WideString> val = JSObject()->TryCData(XFA_Attribute::Value, false); return val.has_value() ? StringToFXARGB(val->AsStringView()) : defaultValue; }
diff --git a/xfa/fxfa/parser/cxfa_document.cpp b/xfa/fxfa/parser/cxfa_document.cpp index 45c7849..28b1f3b 100644 --- a/xfa/fxfa/parser/cxfa_document.cpp +++ b/xfa/fxfa/parser/cxfa_document.cpp
@@ -106,7 +106,7 @@ if (!pContentRawDataNode) { XFA_Element element = XFA_Element::Sharptext; if (pChildNode->GetElementType() == XFA_Element::ExData) { - absl::optional<WideString> contentType = + std::optional<WideString> contentType = pChildNode->JSObject()->TryAttribute(XFA_Attribute::ContentType, false); if (contentType.has_value()) { @@ -352,7 +352,7 @@ dwFlags |= XFA_ResolveFlag::kParent; dwFlags |= XFA_ResolveFlag::kSiblings; } - absl::optional<CFXJSE_Engine::ResolveResult> maybeResult = + std::optional<CFXJSE_Engine::ResolveResult> maybeResult = pDocument->GetScriptContext()->ResolveObjectsWithBindNode( pDataScope, wsRef.AsStringView(), dwFlags, pTemplateNode); if (!maybeResult.has_value()) @@ -752,7 +752,7 @@ if (pDDGroupNode->GetElementType() != XFA_Element::DataGroup) continue; - absl::optional<WideString> ns = pDDGroupNode->JSObject()->TryNamespace(); + std::optional<WideString> ns = pDDGroupNode->JSObject()->TryNamespace(); if (!ns.has_value() || !ns.value().EqualsASCII("http://ns.adobe.com/data-description/")) { continue; @@ -1201,7 +1201,7 @@ : WideString(); const Mask<XFA_ResolveFlag> kFlags = {XFA_ResolveFlag::kChildren, XFA_ResolveFlag::kCreateNode}; - absl::optional<CFXJSE_Engine::ResolveResult> maybeResult = + std::optional<CFXJSE_Engine::ResolveResult> maybeResult = pDocument->GetScriptContext()->ResolveObjectsWithBindNode( pDataScope, wsRef.AsStringView(), kFlags, pTemplateNode); CXFA_Object* pObject = @@ -1259,8 +1259,7 @@ if (pDDGroupNode->GetElementType() != XFA_Element::DataGroup) continue; - absl::optional<WideString> ns = - pDDGroupNode->JSObject()->TryNamespace(); + std::optional<WideString> ns = pDDGroupNode->JSObject()->TryNamespace(); if (!ns.has_value() || !ns.value().EqualsASCII("http://ns.adobe.com/data-description/")) { continue; @@ -1341,12 +1340,12 @@ if (pDatasetsChild->GetNameHash() != XFA_HASHCODE_Data) continue; - absl::optional<WideString> namespaceURI = + std::optional<WideString> namespaceURI = pDatasetsChild->JSObject()->TryNamespace(); if (!namespaceURI.has_value()) continue; - absl::optional<WideString> datasetsURI = + std::optional<WideString> datasetsURI = pDatasetsNode->JSObject()->TryNamespace(); if (!datasetsURI.has_value()) continue; @@ -1561,7 +1560,7 @@ CXFA_Node* pProtoNode = nullptr; if (!wsSOM.IsEmpty()) { - absl::optional<CFXJSE_Engine::ResolveResult> maybeResult = + std::optional<CFXJSE_Engine::ResolveResult> maybeResult = m_pScriptContext->ResolveObjects( pUseHrefNode, wsSOM, Mask<XFA_ResolveFlag>{ @@ -1701,7 +1700,7 @@ continue; if (!pDDRoot && pChildNode->GetNameHash() == XFA_HASHCODE_DataDescription) { - absl::optional<WideString> namespaceURI = + std::optional<WideString> namespaceURI = pChildNode->JSObject()->TryNamespace(); if (!namespaceURI.has_value()) continue; @@ -1710,7 +1709,7 @@ pDDRoot = pChildNode; } } else if (!pDataRoot && pChildNode->GetNameHash() == XFA_HASHCODE_Data) { - absl::optional<WideString> namespaceURI = + std::optional<WideString> namespaceURI = pChildNode->JSObject()->TryNamespace(); if (!namespaceURI.has_value()) continue;
diff --git a/xfa/fxfa/parser/cxfa_document.h b/xfa/fxfa/parser/cxfa_document.h index ac09825..0bccfe0 100644 --- a/xfa/fxfa/parser/cxfa_document.h +++ b/xfa/fxfa/parser/cxfa_document.h
@@ -12,12 +12,12 @@ #include <map> #include <memory> +#include <optional> #include <vector> #include "core/fxcrt/unowned_ptr.h" #include "core/fxcrt/widestring.h" #include "fxjs/gc/heap.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/containers/span.h" #include "v8/include/cppgc/garbage-collected.h" #include "v8/include/cppgc/member.h" @@ -179,7 +179,7 @@ std::map<uint32_t, cppgc::Member<CXFA_Node>> m_rgGlobalBinding; std::vector<cppgc::Member<CXFA_Node>> m_pPendingPageSet; XFA_VERSION m_eCurVersionMode = XFA_VERSION_DEFAULT; - absl::optional<bool> m_Interactive; + std::optional<bool> m_Interactive; bool m_bStrictScoping = false; bool m_bScripting = false; };
diff --git a/xfa/fxfa/parser/cxfa_document_builder.cpp b/xfa/fxfa/parser/cxfa_document_builder.cpp index c103284..d6333e9 100644 --- a/xfa/fxfa/parser/cxfa_document_builder.cpp +++ b/xfa/fxfa/parser/cxfa_document_builder.cpp
@@ -6,6 +6,7 @@ #include "xfa/fxfa/parser/cxfa_document_builder.h" +#include <optional> #include <utility> #include <vector> @@ -19,7 +20,6 @@ #include "core/fxcrt/xml/cfx_xmlnode.h" #include "core/fxcrt/xml/cfx_xmltext.h" #include "fxjs/xfa/cjx_object.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/check.h" #include "third_party/base/notreached.h" #include "xfa/fxfa/parser/cxfa_document.h" @@ -96,7 +96,7 @@ return true; } -absl::optional<WideString> FindAttributeWithNS( +std::optional<WideString> FindAttributeWithNS( CFX_XMLElement* pElement, WideStringView wsLocalAttributeName, WideStringView wsNamespaceURIPrefix) { @@ -121,7 +121,7 @@ } return it.second; } - return absl::nullopt; + return std::nullopt; } CFX_XMLNode* GetDataSetsFromXDP(CFX_XMLNode* pXMLDocumentNode) { @@ -377,7 +377,7 @@ continue; WideString wsPacketName = pElement->GetLocalTagName(); - absl::optional<XFA_PACKETINFO> packet_info = + std::optional<XFA_PACKETINFO> packet_info = XFA_GetPacketByName(wsPacketName.AsStringView()); if (packet_info.has_value() && packet_info.value().uri && !MatchNodeName(pElement, packet_info.value().name, @@ -677,7 +677,7 @@ if (wsAttrName.EqualsASCII("nil") && it.second.EqualsASCII("true")) IsNeedValue = false; - absl::optional<XFA_ATTRIBUTEINFO> attr = + std::optional<XFA_ATTRIBUTEINFO> attr = XFA_GetAttributeByName(wsAttrName.AsStringView()); if (!attr.has_value()) continue; @@ -795,7 +795,7 @@ XFA_Element eNodeType = XFA_Element::DataModel; if (eNodeType == XFA_Element::DataModel) { - absl::optional<WideString> wsDataNodeAttr = + std::optional<WideString> wsDataNodeAttr = FindAttributeWithNS(pXMLElement, L"dataNode", L"http://www.xfa.org/schema/xfa-data/1.0/"); if (wsDataNodeAttr.has_value()) { @@ -806,7 +806,7 @@ } } if (eNodeType == XFA_Element::DataModel) { - absl::optional<WideString> wsContentType = + std::optional<WideString> wsContentType = FindAttributeWithNS(pXMLElement, L"contentType", L"http://www.xfa.org/schema/xfa-data/1.0/"); if (wsContentType.has_value() && !wsContentType.value().IsEmpty())
diff --git a/xfa/fxfa/parser/cxfa_localemgr.cpp b/xfa/fxfa/parser/cxfa_localemgr.cpp index f49275e..dcdd626 100644 --- a/xfa/fxfa/parser/cxfa_localemgr.cpp +++ b/xfa/fxfa/parser/cxfa_localemgr.cpp
@@ -1231,7 +1231,7 @@ m_pDefLocale = pLocale; } -absl::optional<WideString> CXFA_LocaleMgr::GetConfigLocaleName( +std::optional<WideString> CXFA_LocaleMgr::GetConfigLocaleName( CXFA_Node* pConfig) const { if (m_bConfigLocaleCached) return m_wsConfigLocale; @@ -1260,7 +1260,7 @@ if (!pLocale) return m_wsConfigLocale; - absl::optional<WideString> wsMaybeLocale = + std::optional<WideString> wsMaybeLocale = pLocale->JSObject()->TryCData(XFA_Attribute::Value, false); if (!wsMaybeLocale.has_value() || wsMaybeLocale.value().IsEmpty()) return m_wsConfigLocale;
diff --git a/xfa/fxfa/parser/cxfa_localemgr.h b/xfa/fxfa/parser/cxfa_localemgr.h index d06f211..3c8376c 100644 --- a/xfa/fxfa/parser/cxfa_localemgr.h +++ b/xfa/fxfa/parser/cxfa_localemgr.h
@@ -7,12 +7,12 @@ #ifndef XFA_FXFA_PARSER_CXFA_LOCALEMGR_H_ #define XFA_FXFA_PARSER_CXFA_LOCALEMGR_H_ +#include <optional> #include <vector> #include "core/fxcrt/unowned_ptr.h" #include "core/fxcrt/widestring.h" #include "fxjs/gc/heap.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "v8/include/cppgc/garbage-collected.h" #include "v8/include/cppgc/member.h" #include "xfa/fgas/crt/locale_mgr_iface.h" @@ -52,7 +52,7 @@ GCedLocaleIface* GetLocaleByName(const WideString& wsLocaleName) override; void SetDefLocale(GCedLocaleIface* pLocale); - absl::optional<WideString> GetConfigLocaleName(CXFA_Node* pConfig) const; + std::optional<WideString> GetConfigLocaleName(CXFA_Node* pConfig) const; private: CXFA_LocaleMgr(cppgc::Heap* pHeap, @@ -74,7 +74,7 @@ // 3. we might have tried and gotten something. // So |m_bConfigLocaleCached| indicates whether we've already tried, // and |m_wsConfigLocale| is the possibly nothing we got if we tried. - mutable absl::optional<WideString> m_wsConfigLocale; + mutable std::optional<WideString> m_wsConfigLocale; mutable bool m_bConfigLocaleCached = false; LangID m_eDeflcid;
diff --git a/xfa/fxfa/parser/cxfa_margin.cpp b/xfa/fxfa/parser/cxfa_margin.cpp index 7c0eee4..933725e 100644 --- a/xfa/fxfa/parser/cxfa_margin.cpp +++ b/xfa/fxfa/parser/cxfa_margin.cpp
@@ -57,18 +57,18 @@ return TryBottomInset().value_or(0); } -absl::optional<float> CXFA_Margin::TryLeftInset() const { +std::optional<float> CXFA_Margin::TryLeftInset() const { return JSObject()->TryMeasureAsFloat(XFA_Attribute::LeftInset); } -absl::optional<float> CXFA_Margin::TryTopInset() const { +std::optional<float> CXFA_Margin::TryTopInset() const { return JSObject()->TryMeasureAsFloat(XFA_Attribute::TopInset); } -absl::optional<float> CXFA_Margin::TryRightInset() const { +std::optional<float> CXFA_Margin::TryRightInset() const { return JSObject()->TryMeasureAsFloat(XFA_Attribute::RightInset); } -absl::optional<float> CXFA_Margin::TryBottomInset() const { +std::optional<float> CXFA_Margin::TryBottomInset() const { return JSObject()->TryMeasureAsFloat(XFA_Attribute::BottomInset); }
diff --git a/xfa/fxfa/parser/cxfa_margin.h b/xfa/fxfa/parser/cxfa_margin.h index e54b03e..90ca5dc 100644 --- a/xfa/fxfa/parser/cxfa_margin.h +++ b/xfa/fxfa/parser/cxfa_margin.h
@@ -19,10 +19,10 @@ float GetRightInset() const; float GetBottomInset() const; - absl::optional<float> TryLeftInset() const; - absl::optional<float> TryTopInset() const; - absl::optional<float> TryRightInset() const; - absl::optional<float> TryBottomInset() const; + std::optional<float> TryLeftInset() const; + std::optional<float> TryTopInset() const; + std::optional<float> TryRightInset() const; + std::optional<float> TryBottomInset() const; private: CXFA_Margin(CXFA_Document* doc, XFA_PacketType packet);
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp index 9a5552e..1adf44c 100644 --- a/xfa/fxfa/parser/cxfa_node.cpp +++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -1165,13 +1165,13 @@ return pNewNode; } -absl::optional<XFA_Element> CXFA_Node::GetFirstPropertyWithFlag( +std::optional<XFA_Element> CXFA_Node::GetFirstPropertyWithFlag( XFA_PropertyFlag flag) const { for (const auto& prop : m_Properties) { if (prop.flags & flag) return prop.property; } - return absl::nullopt; + return std::nullopt; } const CXFA_Node::AttributeData* CXFA_Node::GetAttributeData( @@ -1249,7 +1249,7 @@ if (!bFilterOneOfProperties || !nodes.empty()) return nodes; - absl::optional<XFA_Element> property = + std::optional<XFA_Element> property = GetFirstPropertyWithFlag(XFA_PropertyFlag::kDefaultOneOf); if (!property.has_value()) return nodes; @@ -1414,7 +1414,7 @@ } GCedLocaleIface* CXFA_Node::GetLocale() { - absl::optional<WideString> localeName = GetLocaleName(); + std::optional<WideString> localeName = GetLocaleName(); if (!localeName.has_value()) return nullptr; if (localeName.value().EqualsASCII("ambient")) @@ -1422,17 +1422,17 @@ return GetDocument()->GetLocaleMgr()->GetLocaleByName(localeName.value()); } -absl::optional<WideString> CXFA_Node::GetLocaleName() { +std::optional<WideString> CXFA_Node::GetLocaleName() { CXFA_Node* pForm = ToNode(GetDocument()->GetXFAObject(XFA_HASHCODE_Form)); if (!pForm) - return absl::nullopt; + return std::nullopt; CXFA_Subform* pTopSubform = pForm->GetFirstChildByClass<CXFA_Subform>(XFA_Element::Subform); if (!pTopSubform) - return absl::nullopt; + return std::nullopt; - absl::optional<WideString> localeName; + std::optional<WideString> localeName; CXFA_Node* pLocaleNode = this; do { localeName = @@ -1457,7 +1457,7 @@ LocaleIface* pLocale = GetDocument()->GetLocaleMgr()->GetDefLocale(); if (!pLocale) - return absl::nullopt; + return std::nullopt; return pLocale->GetName(); } @@ -1468,7 +1468,7 @@ XFA_AttributeValue eLayoutType = layout.value_or(XFA_AttributeValue::Position); if (pKeep) { - absl::optional<XFA_AttributeValue> intact = + std::optional<XFA_AttributeValue> intact = GetIntactFromKeep(pKeep, eLayoutType); if (intact.has_value()) return intact.value(); @@ -1501,7 +1501,7 @@ XFA_VERSION version = m_pDocument->GetCurVersionMode(); if (eParLayout == XFA_AttributeValue::Tb && version < XFA_VERSION_208) { - absl::optional<CXFA_Measurement> measureH = + std::optional<CXFA_Measurement> measureH = JSObject()->TryMeasure(XFA_Attribute::H, false); if (measureH.has_value()) return XFA_AttributeValue::ContentArea; @@ -2042,57 +2042,55 @@ return pInstance; } -absl::optional<bool> CXFA_Node::GetDefaultBoolean(XFA_Attribute attr) const { - absl::optional<void*> value = +std::optional<bool> CXFA_Node::GetDefaultBoolean(XFA_Attribute attr) const { + std::optional<void*> value = GetDefaultValue(attr, XFA_AttributeType::Boolean); if (!value.has_value()) - return absl::nullopt; + return std::nullopt; return !!value.value(); } -absl::optional<int32_t> CXFA_Node::GetDefaultInteger(XFA_Attribute attr) const { - absl::optional<void*> value = +std::optional<int32_t> CXFA_Node::GetDefaultInteger(XFA_Attribute attr) const { + std::optional<void*> value = GetDefaultValue(attr, XFA_AttributeType::Integer); if (!value.has_value()) - return absl::nullopt; + return std::nullopt; return static_cast<int32_t>(reinterpret_cast<uintptr_t>(value.value())); } -absl::optional<CXFA_Measurement> CXFA_Node::GetDefaultMeasurement( +std::optional<CXFA_Measurement> CXFA_Node::GetDefaultMeasurement( XFA_Attribute attr) const { - absl::optional<void*> value = + std::optional<void*> value = GetDefaultValue(attr, XFA_AttributeType::Measure); if (!value.has_value()) - return absl::nullopt; + return std::nullopt; WideString str = WideString(static_cast<const wchar_t*>(value.value())); return CXFA_Measurement(str.AsStringView()); } -absl::optional<WideString> CXFA_Node::GetDefaultCData( - XFA_Attribute attr) const { - absl::optional<void*> value = GetDefaultValue(attr, XFA_AttributeType::CData); +std::optional<WideString> CXFA_Node::GetDefaultCData(XFA_Attribute attr) const { + std::optional<void*> value = GetDefaultValue(attr, XFA_AttributeType::CData); if (!value.has_value()) - return absl::nullopt; + return std::nullopt; return WideString(static_cast<const wchar_t*>(value.value())); } -absl::optional<XFA_AttributeValue> CXFA_Node::GetDefaultEnum( +std::optional<XFA_AttributeValue> CXFA_Node::GetDefaultEnum( XFA_Attribute attr) const { - absl::optional<void*> value = GetDefaultValue(attr, XFA_AttributeType::Enum); + std::optional<void*> value = GetDefaultValue(attr, XFA_AttributeType::Enum); if (!value.has_value()) - return absl::nullopt; + return std::nullopt; return static_cast<XFA_AttributeValue>( reinterpret_cast<uintptr_t>(value.value())); } -absl::optional<void*> CXFA_Node::GetDefaultValue( - XFA_Attribute attr, - XFA_AttributeType eType) const { +std::optional<void*> CXFA_Node::GetDefaultValue(XFA_Attribute attr, + XFA_AttributeType eType) const { const AttributeData* data = GetAttributeData(attr); if (!data || data->type != eType) - return absl::nullopt; + return std::nullopt; return data->default_value; } @@ -2257,7 +2255,7 @@ } int32_t CXFA_Node::GetRotate() const { - absl::optional<int32_t> degrees = + std::optional<int32_t> degrees = JSObject()->TryInteger(XFA_Attribute::Rotate, false); return degrees.has_value() ? XFA_MapRotation(degrees.value()) / 90 * 90 : 0; } @@ -2349,13 +2347,13 @@ return JSObject()->GetProperty<CXFA_Bind>(0, XFA_Element::Bind); } -absl::optional<XFA_AttributeValue> CXFA_Node::GetIntactFromKeep( +std::optional<XFA_AttributeValue> CXFA_Node::GetIntactFromKeep( const CXFA_Keep* pKeep, XFA_AttributeValue eLayoutType) const { - absl::optional<XFA_AttributeValue> intact = + std::optional<XFA_AttributeValue> intact = pKeep->JSObject()->TryEnum(XFA_Attribute::Intact, false); if (!intact.has_value()) - return absl::nullopt; + return std::nullopt; if (intact.value() != XFA_AttributeValue::None || eLayoutType != XFA_AttributeValue::Row || @@ -2369,7 +2367,7 @@ return intact; } - absl::optional<XFA_AttributeValue> value = + std::optional<XFA_AttributeValue> value = pKeep->JSObject()->TryEnum(XFA_Attribute::Previous, false); if (value == XFA_AttributeValue::ContentArea || value == XFA_AttributeValue::PageArea) { @@ -2381,7 +2379,7 @@ if (!pNode) return intact; - absl::optional<XFA_AttributeValue> ret = + std::optional<XFA_AttributeValue> ret = pNode->JSObject()->TryEnum(XFA_Attribute::Next, false); if (ret == XFA_AttributeValue::ContentArea || ret == XFA_AttributeValue::PageArea) { @@ -2390,27 +2388,27 @@ return intact; } -absl::optional<float> CXFA_Node::TryWidth() { +std::optional<float> CXFA_Node::TryWidth() { return JSObject()->TryMeasureAsFloat(XFA_Attribute::W); } -absl::optional<float> CXFA_Node::TryHeight() { +std::optional<float> CXFA_Node::TryHeight() { return JSObject()->TryMeasureAsFloat(XFA_Attribute::H); } -absl::optional<float> CXFA_Node::TryMinWidth() { +std::optional<float> CXFA_Node::TryMinWidth() { return JSObject()->TryMeasureAsFloat(XFA_Attribute::MinW); } -absl::optional<float> CXFA_Node::TryMinHeight() { +std::optional<float> CXFA_Node::TryMinHeight() { return JSObject()->TryMeasureAsFloat(XFA_Attribute::MinH); } -absl::optional<float> CXFA_Node::TryMaxWidth() { +std::optional<float> CXFA_Node::TryMaxWidth() { return JSObject()->TryMeasureAsFloat(XFA_Attribute::MaxW); } -absl::optional<float> CXFA_Node::TryMaxHeight() { +std::optional<float> CXFA_Node::TryMaxHeight() { return JSObject()->TryMeasureAsFloat(XFA_Attribute::MaxH); } @@ -3007,10 +3005,10 @@ if (border && border->GetPresence() != XFA_AttributeValue::Visible) return CFX_RectF(); - absl::optional<float> left = mgUI->TryLeftInset(); - absl::optional<float> top = mgUI->TryTopInset(); - absl::optional<float> right = mgUI->TryRightInset(); - absl::optional<float> bottom = mgUI->TryBottomInset(); + std::optional<float> left = mgUI->TryLeftInset(); + std::optional<float> top = mgUI->TryTopInset(); + std::optional<float> right = mgUI->TryRightInset(); + std::optional<float> bottom = mgUI->TryBottomInset(); if (border) { bool bVisible = false; float fThickness = 0; @@ -3254,28 +3252,28 @@ if (para) pSize->width += para->GetMarginLeft() + para->GetTextIndent(); - absl::optional<float> width = TryWidth(); + std::optional<float> width = TryWidth(); if (width.has_value()) { pSize->width = width.value(); } else { - absl::optional<float> min = TryMinWidth(); + std::optional<float> min = TryMinWidth(); if (min.has_value()) pSize->width = std::max(pSize->width, min.value()); - absl::optional<float> max = TryMaxWidth(); + std::optional<float> max = TryMaxWidth(); if (max.has_value() && max.value() > 0) pSize->width = std::min(pSize->width, max.value()); } - absl::optional<float> height = TryHeight(); + std::optional<float> height = TryHeight(); if (height.has_value()) { pSize->height = height.value(); } else { - absl::optional<float> min = TryMinHeight(); + std::optional<float> min = TryMinHeight(); if (min.has_value()) pSize->height = std::max(pSize->height, min.value()); - absl::optional<float> max = TryMaxHeight(); + std::optional<float> max = TryMaxHeight(); if (max.has_value() && max.value() > 0) pSize->height = std::min(pSize->height, max.value()); } @@ -3384,7 +3382,7 @@ XFA_UnitPx2Pt(img_height, dpi.height)); CFX_RectF rtFit; - absl::optional<float> width = TryWidth(); + std::optional<float> width = TryWidth(); if (width.has_value()) { rtFit.width = width.value(); GetWidthWithoutMargin(rtFit.width); @@ -3392,7 +3390,7 @@ rtFit.width = rtImage.width; } - absl::optional<float> height = TryHeight(); + std::optional<float> height = TryHeight(); if (height.has_value()) { rtFit.height = height.value(); GetHeightWithoutMargin(rtFit.height); @@ -3457,11 +3455,11 @@ if (margin) fWidthCalc += margin->GetLeftInset() + margin->GetRightInset(); - absl::optional<float> min = TryMinWidth(); + std::optional<float> min = TryMinWidth(); if (min.has_value()) fWidthCalc = std::max(fWidthCalc, min.value()); - absl::optional<float> max = TryMaxWidth(); + std::optional<float> max = TryMaxWidth(); if (max.has_value() && max.value() > 0) fWidthCalc = std::min(fWidthCalc, max.value()); @@ -3480,11 +3478,11 @@ if (margin) fHeightCalc += margin->GetTopInset() + margin->GetBottomInset(); - absl::optional<float> min = TryMinHeight(); + std::optional<float> min = TryMinHeight(); if (min.has_value()) fHeightCalc = std::max(fHeightCalc, min.value()); - absl::optional<float> max = TryMaxHeight(); + std::optional<float> max = TryMaxHeight(); if (max.has_value() && max.value() > 0) fHeightCalc = std::min(fHeightCalc, max.value()); @@ -3514,7 +3512,7 @@ m_pLayoutData->SetWidgetHeight(-1.0f); float fWidth = 0; if (*pCalcWidth > 0 && *pCalcHeight < 0) { - absl::optional<float> height = TryHeight(); + std::optional<float> height = TryHeight(); if (height.has_value()) { *pCalcHeight = height.value(); } else { @@ -3526,8 +3524,8 @@ return; } if (*pCalcWidth < 0 && *pCalcHeight < 0) { - absl::optional<float> height; - absl::optional<float> width = TryWidth(); + std::optional<float> height; + std::optional<float> width = TryWidth(); if (width.has_value()) { fWidth = width.value(); height = TryHeight(); @@ -3586,14 +3584,14 @@ return sz; } -absl::optional<float> CXFA_Node::FindSplitPos(CXFA_FFDocView* pDocView, - size_t szBlockIndex, - float fCalcHeight) { +std::optional<float> CXFA_Node::FindSplitPos(CXFA_FFDocView* pDocView, + size_t szBlockIndex, + float fCalcHeight) { if (!HasCreatedUIWidget()) - return absl::nullopt; + return std::nullopt; if (GetFFWidgetType() == XFA_FFWidgetType::kSubform) - return absl::nullopt; + return std::nullopt; switch (GetFFWidgetType()) { case XFA_FFWidgetType::kText: @@ -3633,7 +3631,7 @@ if (szBlockIndex == 0) fCalcHeight += fTopInset; if (fabs(fHeight - fCalcHeight) < kXFAWidgetPrecision) - return absl::nullopt; + return std::nullopt; } return fCalcHeight; } @@ -3674,14 +3672,14 @@ std::vector<float>* pFieldArray = &pFieldData->m_FieldSplitArray; size_t szFieldSplitCount = pFieldArray->size(); if (szFieldSplitCount < szBlockIndex * 3) - return absl::nullopt; + return std::nullopt; for (size_t i = 0; i < szBlockIndex * 3; i += 3) { iLinesCount -= static_cast<int32_t>((*pFieldArray)[i + 1]); fHeight -= (*pFieldArray)[i + 2]; } if (iLinesCount == 0) - return absl::nullopt; + return std::nullopt; float fLineHeight = GetLineHeight(); float fFontSize = GetFontSize(); @@ -3757,7 +3755,7 @@ pFieldArray->push_back(0); pFieldArray->push_back(fCalcHeight); } - return absl::nullopt; + return std::nullopt; } if (fCalcHeight - fStartOffset < fLineHeight) { @@ -3785,7 +3783,7 @@ pFieldArray->push_back(iLinesCount); pFieldArray->push_back(fCalcHeight); } - return absl::nullopt; + return std::nullopt; } if (fHeight - fStartOffset - fTextHeight < fFontSize) { iLineNum -= 1; @@ -3807,7 +3805,7 @@ pFieldArray->push_back(fSplitHeight); } if (fabs(fSplitHeight - fCalcHeight) < kXFAWidgetPrecision) - return absl::nullopt; + return std::nullopt; return fSplitHeight; } @@ -3867,7 +3865,7 @@ pTextLayout->StartLayout(fWidth); } if (*pCalcWidth < 0 && *pCalcHeight < 0) { - absl::optional<float> width = TryWidth(); + std::optional<float> width = TryWidth(); if (width.has_value()) { pTextLayout->StartLayout(GetWidthWithoutMargin(width.value())); *pCalcWidth = width.value(); @@ -3998,7 +3996,7 @@ CXFA_Node* pText = pItems->GetFirstChild(); int32_t i = 0; while (pText) { - absl::optional<WideString> wsContent = + std::optional<WideString> wsContent = pText->JSObject()->TryContent(false, true); if (wsContent == wsValue) return static_cast<XFA_CheckState>(i); @@ -4218,8 +4216,8 @@ return pItem->CountChildren(XFA_Element::Unknown, false); } -absl::optional<WideString> CXFA_Node::GetChoiceListItem(int32_t nIndex, - bool bSaveValue) { +std::optional<WideString> CXFA_Node::GetChoiceListItem(int32_t nIndex, + bool bSaveValue) { std::vector<CXFA_Node*> pItemsArray; int32_t iCount = 0; for (CXFA_Node* pNode = GetFirstChild(); pNode; @@ -4233,7 +4231,7 @@ break; } if (iCount == 0) - return absl::nullopt; + return std::nullopt; CXFA_Node* pItems = pItemsArray[0]; if (iCount > 1) { @@ -4245,12 +4243,12 @@ pItems = pItemsArray[1]; } if (!pItems) - return absl::nullopt; + return std::nullopt; CXFA_Node* pItem = pItems->GetChild<CXFA_Node>(nIndex, XFA_Element::Unknown, false); if (!pItem) - return absl::nullopt; + return std::nullopt; return pItem->JSObject()->GetContent(false); } @@ -4611,14 +4609,14 @@ return false; } -absl::optional<int32_t> CXFA_Node::GetNumberOfCells() { +std::optional<int32_t> CXFA_Node::GetNumberOfCells() { CXFA_Node* pUIChild = GetUIChildNode(); if (!pUIChild) - return absl::nullopt; + return std::nullopt; CXFA_Comb* pNode = pUIChild->GetChild<CXFA_Comb>(0, XFA_Element::Comb, false); if (!pNode) - return absl::nullopt; + return std::nullopt; return pNode->JSObject()->GetInteger(XFA_Attribute::NumberOfCells); } @@ -4737,7 +4735,7 @@ auto* pPicture = pFormat->GetChild<CXFA_Picture>(0, XFA_Element::Picture, false); if (pPicture) { - absl::optional<WideString> picture = + std::optional<WideString> picture = pPicture->JSObject()->TryContent(false, true); if (picture.has_value()) return picture.value(); @@ -4772,7 +4770,7 @@ if (pUI) { if (CXFA_Picture* pPicture = pUI->GetChild<CXFA_Picture>(0, XFA_Element::Picture, false)) { - absl::optional<WideString> picture = + std::optional<WideString> picture = pPicture->JSObject()->TryContent(false, true); if (picture.has_value()) return picture.value();
diff --git a/xfa/fxfa/parser/cxfa_node.h b/xfa/fxfa/parser/cxfa_node.h index d0c6798..5ed0487 100644 --- a/xfa/fxfa/parser/cxfa_node.h +++ b/xfa/fxfa/parser/cxfa_node.h
@@ -10,6 +10,7 @@ #include <stddef.h> #include <stdint.h> +#include <optional> #include <utility> #include <vector> @@ -21,7 +22,6 @@ #include "core/fxcrt/widestring.h" #include "core/fxge/dib/fx_dib.h" #include "fxjs/gc/gced_tree_node_mixin.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/base/containers/span.h" #include "v8/include/cppgc/member.h" #include "v8/include/cppgc/visitor.h" @@ -234,7 +234,7 @@ bool HasBindItem() const; CXFA_Node* GetContainerNode(); GCedLocaleIface* GetLocale(); - absl::optional<WideString> GetLocaleName(); + std::optional<WideString> GetLocaleName(); XFA_AttributeValue GetIntact(); WideString GetNameExpression(); @@ -264,12 +264,12 @@ CXFA_Node* GetInstanceMgrOfSubform(); - absl::optional<bool> GetDefaultBoolean(XFA_Attribute attr) const; - absl::optional<int32_t> GetDefaultInteger(XFA_Attribute attr) const; - absl::optional<CXFA_Measurement> GetDefaultMeasurement( + std::optional<bool> GetDefaultBoolean(XFA_Attribute attr) const; + std::optional<int32_t> GetDefaultInteger(XFA_Attribute attr) const; + std::optional<CXFA_Measurement> GetDefaultMeasurement( XFA_Attribute attr) const; - absl::optional<WideString> GetDefaultCData(XFA_Attribute attr) const; - absl::optional<XFA_AttributeValue> GetDefaultEnum(XFA_Attribute attr) const; + std::optional<WideString> GetDefaultCData(XFA_Attribute attr) const; + std::optional<XFA_AttributeValue> GetDefaultEnum(XFA_Attribute attr) const; bool IsOpenAccess() const; @@ -294,7 +294,7 @@ WideString GetRawValue() const; int32_t GetRotate() const; - absl::optional<float> TryWidth(); + std::optional<float> TryWidth(); CXFA_Node* GetExclGroupIfExists(); @@ -332,9 +332,9 @@ void StartWidgetLayout(CXFA_FFDoc* doc, float* pCalcWidth, float* pCalcHeight); - absl::optional<float> FindSplitPos(CXFA_FFDocView* pDocView, - size_t szBlockIndex, - float fCalcHeight); + std::optional<float> FindSplitPos(CXFA_FFDocView* pDocView, + size_t szBlockIndex, + float fCalcHeight); bool LoadCaption(CXFA_FFDoc* doc); CXFA_TextLayout* GetCaptionTextLayout(); @@ -375,7 +375,7 @@ bool IsChoiceListAllowTextEntry(); size_t CountChoiceListItems(bool bSaveValue); - absl::optional<WideString> GetChoiceListItem(int32_t nIndex, bool bSaveValue); + std::optional<WideString> GetChoiceListItem(int32_t nIndex, bool bSaveValue); bool IsChoiceListMultiSelect(); bool IsChoiceListCommitOnSelect(); std::vector<WideString> GetChoiceListItems(bool bSaveValue); @@ -404,7 +404,7 @@ bool IsHorizontalScrollPolicyOff(); bool IsVerticalScrollPolicyOff(); - absl::optional<int32_t> GetNumberOfCells(); + std::optional<int32_t> GetNumberOfCells(); bool SetValue(XFA_ValuePicture eValueType, const WideString& wsValue); WideString GetValue(XFA_ValuePicture eValueType); @@ -452,11 +452,11 @@ bool HasFlag(XFA_NodeFlag dwFlag) const; const PropertyData* GetPropertyData(XFA_Element property) const; const AttributeData* GetAttributeData(XFA_Attribute attr) const; - absl::optional<XFA_Element> GetFirstPropertyWithFlag( + std::optional<XFA_Element> GetFirstPropertyWithFlag( XFA_PropertyFlag flag) const; void OnRemoved(bool bNotify) const; - absl::optional<void*> GetDefaultValue(XFA_Attribute attr, - XFA_AttributeType eType) const; + std::optional<void*> GetDefaultValue(XFA_Attribute attr, + XFA_AttributeType eType) const; CXFA_Node* GetChildInternal(size_t index, XFA_Element eType, bool bOnlyChild) const; @@ -505,16 +505,16 @@ void SyncValue(const WideString& wsValue, bool bNotify); CXFA_Value* GetDefaultValueIfExists(); CXFA_Bind* GetBindIfExists() const; - absl::optional<XFA_AttributeValue> GetIntactFromKeep( + std::optional<XFA_AttributeValue> GetIntactFromKeep( const CXFA_Keep* pKeep, XFA_AttributeValue eLayoutType) const; CXFA_Node* GetTransparentParent(); - absl::optional<float> TryHeight(); - absl::optional<float> TryMinWidth(); - absl::optional<float> TryMinHeight(); - absl::optional<float> TryMaxWidth(); - absl::optional<float> TryMaxHeight(); + std::optional<float> TryHeight(); + std::optional<float> TryMinWidth(); + std::optional<float> TryMinHeight(); + std::optional<float> TryMaxWidth(); + std::optional<float> TryMaxHeight(); XFA_EventError ProcessEventInternal(CXFA_FFDocView* pDocView, XFA_AttributeValue iActivity, CXFA_Event* event,
diff --git a/xfa/fxfa/parser/cxfa_occur.cpp b/xfa/fxfa/parser/cxfa_occur.cpp index 515ffdd..9c20573 100644 --- a/xfa/fxfa/parser/cxfa_occur.cpp +++ b/xfa/fxfa/parser/cxfa_occur.cpp
@@ -41,14 +41,12 @@ CXFA_Occur::~CXFA_Occur() = default; int32_t CXFA_Occur::GetMax() { - absl::optional<int32_t> max = - JSObject()->TryInteger(XFA_Attribute::Max, true); + std::optional<int32_t> max = JSObject()->TryInteger(XFA_Attribute::Max, true); return max.has_value() ? max.value() : GetMin(); } int32_t CXFA_Occur::GetMin() { - absl::optional<int32_t> min = - JSObject()->TryInteger(XFA_Attribute::Min, true); + std::optional<int32_t> min = JSObject()->TryInteger(XFA_Attribute::Min, true); return min.has_value() && min.value() >= 0 ? min.value() : 1; } @@ -56,7 +54,7 @@ int32_t iMin = GetMin(); int32_t iMax = GetMax(); - absl::optional<int32_t> init = + std::optional<int32_t> init = JSObject()->TryInteger(XFA_Attribute::Initial, false); return {iMin, iMax, init.has_value() && init.value() >= iMin ? init.value() : iMin};
diff --git a/xfa/fxfa/parser/cxfa_script.cpp b/xfa/fxfa/parser/cxfa_script.cpp index 4b4e8ce..6bec90f 100644 --- a/xfa/fxfa/parser/cxfa_script.cpp +++ b/xfa/fxfa/parser/cxfa_script.cpp
@@ -55,7 +55,7 @@ CXFA_Script::~CXFA_Script() = default; CXFA_Script::Type CXFA_Script::GetContentType() { - absl::optional<WideString> cData = + std::optional<WideString> cData = JSObject()->TryCData(XFA_Attribute::ContentType, false); if (!cData.has_value()) return Type::Formcalc;
diff --git a/xfa/fxfa/parser/cxfa_validate.cpp b/xfa/fxfa/parser/cxfa_validate.cpp index 2ca3811..e725976 100644 --- a/xfa/fxfa/parser/cxfa_validate.cpp +++ b/xfa/fxfa/parser/cxfa_validate.cpp
@@ -62,7 +62,7 @@ } void CXFA_Validate::SetNullTest(const WideString& wsValue) { - absl::optional<XFA_AttributeValue> item = + std::optional<XFA_AttributeValue> item = XFA_GetAttributeValueByName(wsValue.AsStringView()); JSObject()->SetEnum( XFA_Attribute::NullTest,
diff --git a/xfa/fxfa/parser/xfa_basic_data.cpp b/xfa/fxfa/parser/xfa_basic_data.cpp index 4ae0dc0..0cd5f74 100644 --- a/xfa/fxfa/parser/xfa_basic_data.cpp +++ b/xfa/fxfa/parser/xfa_basic_data.cpp
@@ -164,14 +164,14 @@ return kPacketTable[static_cast<uint8_t>(ePacket)].info; } -absl::optional<XFA_PACKETINFO> XFA_GetPacketByName(WideStringView wsName) { +std::optional<XFA_PACKETINFO> XFA_GetPacketByName(WideStringView wsName) { uint32_t hash = FX_HashCode_GetW(wsName); auto* elem = std::lower_bound( std::begin(kPacketTable), std::end(kPacketTable), hash, [](const PacketTableRecord& a, uint32_t hash) { return a.hash < hash; }); if (elem != std::end(kPacketTable) && wsName.EqualsASCII(elem->info.name)) return elem->info; - return absl::nullopt; + return std::nullopt; } ByteStringView XFA_ElementToName(XFA_Element elem) { @@ -195,17 +195,17 @@ return kAttributeNames[static_cast<size_t>(attr)]; } -absl::optional<XFA_ATTRIBUTEINFO> XFA_GetAttributeByName(WideStringView name) { +std::optional<XFA_ATTRIBUTEINFO> XFA_GetAttributeByName(WideStringView name) { uint32_t hash = FX_HashCode_GetW(name); auto* elem = std::lower_bound( std::begin(kAttributeRecords), std::end(kAttributeRecords), hash, [](const AttributeRecord& a, uint32_t hash) { return a.hash < hash; }); if (elem == std::end(kAttributeRecords)) - return absl::nullopt; + return std::nullopt; size_t index = std::distance(std::begin(kAttributeRecords), elem); if (!name.EqualsASCII(kAttributeNames[index])) - return absl::nullopt; + return std::nullopt; XFA_ATTRIBUTEINFO result; result.attribute = elem->attribute; @@ -217,7 +217,7 @@ return kAttributeValueNames[static_cast<int32_t>(item)]; } -absl::optional<XFA_AttributeValue> XFA_GetAttributeValueByName( +std::optional<XFA_AttributeValue> XFA_GetAttributeValueByName( WideStringView name) { auto* it = std::lower_bound(std::begin(kAttributeValueRecords), @@ -226,22 +226,22 @@ return arg.uHash < hash; }); if (it == std::end(kAttributeValueRecords)) - return absl::nullopt; + return std::nullopt; size_t index = std::distance(std::begin(kAttributeValueRecords), it); if (!name.EqualsASCII(kAttributeValueNames[index])) - return absl::nullopt; + return std::nullopt; return it->eName; } -absl::optional<XFA_SCRIPTATTRIBUTEINFO> XFA_GetScriptAttributeByName( +std::optional<XFA_SCRIPTATTRIBUTEINFO> XFA_GetScriptAttributeByName( XFA_Element element, WideStringView attribute_name) { - absl::optional<XFA_ATTRIBUTEINFO> attr = + std::optional<XFA_ATTRIBUTEINFO> attr = XFA_GetAttributeByName(attribute_name); if (!attr.has_value()) - return absl::nullopt; + return std::nullopt; while (element != XFA_Element::Unknown) { auto compound_key = std::make_pair(element, attr.value().attribute); @@ -263,5 +263,5 @@ } element = kElementRecords[static_cast<size_t>(element)].parent; } - return absl::nullopt; + return std::nullopt; }
diff --git a/xfa/fxfa/parser/xfa_basic_data.h b/xfa/fxfa/parser/xfa_basic_data.h index b338bec..f17e350 100644 --- a/xfa/fxfa/parser/xfa_basic_data.h +++ b/xfa/fxfa/parser/xfa_basic_data.h
@@ -9,9 +9,10 @@ #include <stddef.h> +#include <optional> + #include "core/fxcrt/widestring.h" #include "fxjs/xfa/cjx_object.h" -#include "third_party/abseil-cpp/absl/types/optional.h" #include "xfa/fxfa/fxfa_basic.h" using XFA_ATTRIBUTE_CALLBACK = void (*)(v8::Isolate* pIsolate, @@ -51,19 +52,19 @@ }; XFA_PACKETINFO XFA_GetPacketByIndex(XFA_PacketType ePacket); -absl::optional<XFA_PACKETINFO> XFA_GetPacketByName(WideStringView wsName); +std::optional<XFA_PACKETINFO> XFA_GetPacketByName(WideStringView wsName); ByteStringView XFA_ElementToName(XFA_Element elem); XFA_Element XFA_GetElementByName(WideStringView name); ByteStringView XFA_AttributeToName(XFA_Attribute attr); -absl::optional<XFA_ATTRIBUTEINFO> XFA_GetAttributeByName(WideStringView name); +std::optional<XFA_ATTRIBUTEINFO> XFA_GetAttributeByName(WideStringView name); ByteStringView XFA_AttributeValueToName(XFA_AttributeValue item); -absl::optional<XFA_AttributeValue> XFA_GetAttributeValueByName( +std::optional<XFA_AttributeValue> XFA_GetAttributeValueByName( WideStringView name); -absl::optional<XFA_SCRIPTATTRIBUTEINFO> XFA_GetScriptAttributeByName( +std::optional<XFA_SCRIPTATTRIBUTEINFO> XFA_GetScriptAttributeByName( XFA_Element eElement, WideStringView wsAttributeName);
diff --git a/xfa/fxfa/parser/xfa_basic_data_unittest.cpp b/xfa/fxfa/parser/xfa_basic_data_unittest.cpp index f30d655..d7b740b 100644 --- a/xfa/fxfa/parser/xfa_basic_data_unittest.cpp +++ b/xfa/fxfa/parser/xfa_basic_data_unittest.cpp
@@ -7,7 +7,7 @@ #include "testing/gtest/include/gtest/gtest.h" TEST(XFABasicDataTest, GetPacketByName) { - absl::optional<XFA_PACKETINFO> result = XFA_GetPacketByName(L""); + std::optional<XFA_PACKETINFO> result = XFA_GetPacketByName(L""); EXPECT_FALSE(result.has_value()); result = XFA_GetPacketByName(L"nonesuch"); @@ -49,7 +49,7 @@ } TEST(XFABasicDataTest, GetAttributeByName) { - absl::optional<XFA_ATTRIBUTEINFO> result = XFA_GetAttributeByName(L""); + std::optional<XFA_ATTRIBUTEINFO> result = XFA_GetAttributeByName(L""); EXPECT_FALSE(result.has_value()); result = XFA_GetAttributeByName(L"nonesuch"); @@ -74,7 +74,7 @@ } TEST(XFABasicDataTest, GetAttributeValueByName) { - absl::optional<XFA_AttributeValue> result = XFA_GetAttributeValueByName(L""); + std::optional<XFA_AttributeValue> result = XFA_GetAttributeValueByName(L""); EXPECT_FALSE(result.has_value()); result = XFA_GetAttributeValueByName(L"nonesuch");
diff --git a/xfa/fxfa/parser/xfa_utils.cpp b/xfa/fxfa/parser/xfa_utils.cpp index a594ffd..33def0f 100644 --- a/xfa/fxfa/parser/xfa_utils.cpp +++ b/xfa/fxfa/parser/xfa_utils.cpp
@@ -112,7 +112,7 @@ } bool ContentNodeNeedtoExport(CXFA_Node* pContentNode) { - absl::optional<WideString> wsContent = + std::optional<WideString> wsContent = pContentNode->JSObject()->TryContent(false, false); if (!wsContent.has_value()) return false; @@ -139,7 +139,7 @@ if (!bProto && !pNode->JSObject()->HasAttribute(eName)) return WideString(); - absl::optional<WideString> value = + std::optional<WideString> value = pNode->JSObject()->TryAttribute(eName, false); if (!value.has_value()) return WideString(); @@ -181,7 +181,7 @@ if (!pRawValueNode) break; - absl::optional<WideString> contentType = + std::optional<WideString> contentType = pNode->JSObject()->TryAttribute(XFA_Attribute::ContentType, false); if (pRawValueNode->GetElementType() == XFA_Element::SharpxHTML && contentType.has_value() && @@ -201,7 +201,7 @@ } else if (pRawValueNode->GetElementType() == XFA_Element::Sharpxml && contentType.has_value() && contentType.value().EqualsASCII("text/xml")) { - absl::optional<WideString> rawValue = + std::optional<WideString> rawValue = pRawValueNode->JSObject()->TryAttribute(XFA_Attribute::Value, false); if (!rawValue.has_value() || rawValue->IsEmpty()) @@ -338,7 +338,7 @@ if (!pTemplateRoot) return WideString(); - absl::optional<WideString> templateNS = + std::optional<WideString> templateNS = pTemplateRoot->JSObject()->TryNamespace(); if (!templateNS.has_value()) return WideString();