Migrate absl variant.h and utility.h in pdfium
Since https://crrev.com/c/6330348 and
https://pdfium-review.googlesource.com/c/pdfium/+/129650/1, some utils
in third_party/abseil-cpp/absl/types/variant.h and
third_party/abseil-cpp/absl/utility/utility.h are only aliases for
their std counterparts. This CL migrates code to use std:: directly.
Bug: 40242126
Change-Id: If5d05bc22d3cabf4fd915f19b00813d963b4cdfe
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/129630
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Auto-Submit: Victor Vianna <victorvianna@google.com>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp b/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp
index c26decf..9630c5c 100644
--- a/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp
+++ b/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp
@@ -10,6 +10,7 @@
#include <numeric>
#include <sstream>
#include <utility>
+#include <variant>
#include <vector>
#include "core/fpdfapi/page/cpdf_pageobject.h"
@@ -24,7 +25,6 @@
#include "core/fxcrt/containers/adapters.h"
#include "core/fxcrt/containers/contains.h"
#include "core/fxcrt/numerics/safe_conversions.h"
-#include "third_party/abseil-cpp/absl/types/variant.h"
CPDF_PageContentManager::CPDF_PageContentManager(
CPDF_PageObjectHolder* page_obj_holder,
@@ -237,15 +237,15 @@
}
RetainPtr<CPDF_Stream> CPDF_PageContentManager::GetContentsStream() {
- if (absl::holds_alternative<RetainPtr<CPDF_Stream>>(contents_)) {
- return absl::get<RetainPtr<CPDF_Stream>>(contents_);
+ if (std::holds_alternative<RetainPtr<CPDF_Stream>>(contents_)) {
+ return std::get<RetainPtr<CPDF_Stream>>(contents_);
}
return nullptr;
}
RetainPtr<CPDF_Array> CPDF_PageContentManager::GetContentsArray() {
- if (absl::holds_alternative<RetainPtr<CPDF_Array>>(contents_)) {
- return absl::get<RetainPtr<CPDF_Array>>(contents_);
+ if (std::holds_alternative<RetainPtr<CPDF_Array>>(contents_)) {
+ return std::get<RetainPtr<CPDF_Array>>(contents_);
}
return nullptr;
}
diff --git a/core/fpdfapi/edit/cpdf_pagecontentmanager.h b/core/fpdfapi/edit/cpdf_pagecontentmanager.h
index fcb4162..1a6d94b 100644
--- a/core/fpdfapi/edit/cpdf_pagecontentmanager.h
+++ b/core/fpdfapi/edit/cpdf_pagecontentmanager.h
@@ -8,11 +8,11 @@
#include <stdint.h>
#include <set>
+#include <variant>
#include "core/fxcrt/fx_string_wrappers.h"
#include "core/fxcrt/retain_ptr.h"
#include "core/fxcrt/unowned_ptr.h"
-#include "third_party/abseil-cpp/absl/types/variant.h"
class CPDF_Array;
class CPDF_Document;
@@ -56,7 +56,7 @@
UnownedPtr<CPDF_Document> const document_;
const std::set<uint32_t> objects_with_multi_refs_;
// When holding a CPDF_Stream, the pointer may be null.
- absl::variant<RetainPtr<CPDF_Stream>, RetainPtr<CPDF_Array>> contents_;
+ std::variant<RetainPtr<CPDF_Stream>, RetainPtr<CPDF_Array>> contents_;
std::set<size_t> streams_to_remove_;
};
diff --git a/core/fpdfapi/font/cfx_cttgsubtable.cpp b/core/fpdfapi/font/cfx_cttgsubtable.cpp
index 80c512d..95146ec 100644
--- a/core/fpdfapi/font/cfx_cttgsubtable.cpp
+++ b/core/fpdfapi/font/cfx_cttgsubtable.cpp
@@ -9,6 +9,7 @@
#include <stdint.h>
#include <utility>
+#include <variant>
#include "core/fxcrt/byteorder.h"
#include "core/fxcrt/data_vector.h"
@@ -100,17 +101,17 @@
const Lookup& lookup,
uint32_t glyphnum) const {
for (const auto& sub_table : lookup.sub_tables) {
- if (absl::holds_alternative<absl::monostate>(sub_table.table_data)) {
+ if (std::holds_alternative<std::monostate>(sub_table.table_data)) {
continue;
}
int index = GetCoverageIndex(sub_table.coverage, glyphnum);
- if (absl::holds_alternative<int16_t>(sub_table.table_data)) {
+ if (std::holds_alternative<int16_t>(sub_table.table_data)) {
if (index >= 0) {
- return glyphnum + absl::get<int16_t>(sub_table.table_data);
+ return glyphnum + std::get<int16_t>(sub_table.table_data);
}
} else {
const auto& substitutes =
- absl::get<DataVector<uint16_t>>(sub_table.table_data);
+ std::get<DataVector<uint16_t>>(sub_table.table_data);
if (fxcrt::IndexInBounds(substitutes, index)) {
return substitutes[index];
}
@@ -121,13 +122,13 @@
int CFX_CTTGSUBTable::GetCoverageIndex(const CoverageFormat& coverage,
uint32_t g) const {
- if (absl::holds_alternative<absl::monostate>(coverage)) {
+ if (std::holds_alternative<std::monostate>(coverage)) {
return -1;
}
- if (absl::holds_alternative<DataVector<uint16_t>>(coverage)) {
+ if (std::holds_alternative<DataVector<uint16_t>>(coverage)) {
int i = 0;
- const auto& glyph_array = absl::get<DataVector<uint16_t>>(coverage);
+ const auto& glyph_array = std::get<DataVector<uint16_t>>(coverage);
for (const auto& glyph : glyph_array) {
if (static_cast<uint32_t>(glyph) == g) {
return i;
@@ -137,7 +138,7 @@
return -1;
}
- const auto& range_records = absl::get<std::vector<RangeRecord>>(coverage);
+ const auto& range_records = std::get<std::vector<RangeRecord>>(coverage);
for (const auto& range_rec : range_records) {
uint32_t s = range_rec.start;
uint32_t e = range_rec.end;
@@ -272,7 +273,7 @@
pdfium::span<const uint8_t> sp = raw;
uint16_t format = GetUInt16(sp);
if (format != 1 && format != 2) {
- return absl::monostate();
+ return std::monostate();
}
if (format == 1) {
DataVector<uint16_t> glyph_array(GetUInt16(sp));
diff --git a/core/fpdfapi/font/cfx_cttgsubtable.h b/core/fpdfapi/font/cfx_cttgsubtable.h
index e5dc010..e760607 100644
--- a/core/fpdfapi/font/cfx_cttgsubtable.h
+++ b/core/fpdfapi/font/cfx_cttgsubtable.h
@@ -11,11 +11,11 @@
#include <optional>
#include <set>
+#include <variant>
#include <vector>
#include "core/fxcrt/data_vector.h"
#include "core/fxcrt/span.h"
-#include "third_party/abseil-cpp/absl/types/variant.h"
class CFX_CTTGSUBTable {
public:
@@ -46,8 +46,8 @@
// GlyphArray for format 1.
// RangeRecords for format 2.
- using CoverageFormat = absl::
- variant<absl::monostate, DataVector<uint16_t>, std::vector<RangeRecord>>;
+ using CoverageFormat = std::
+ variant<std::monostate, DataVector<uint16_t>, std::vector<RangeRecord>>;
struct SubTable {
SubTable();
@@ -60,7 +60,7 @@
CoverageFormat coverage;
// DeltaGlyphID for format 1.
// Substitutes for format 2.
- absl::variant<absl::monostate, int16_t, DataVector<uint16_t>> table_data;
+ std::variant<std::monostate, int16_t, DataVector<uint16_t>> table_data;
};
struct Lookup {
diff --git a/core/fpdfapi/font/cpdf_tounicodemap.cpp b/core/fpdfapi/font/cpdf_tounicodemap.cpp
index 7f82390..e799477 100644
--- a/core/fpdfapi/font/cpdf_tounicodemap.cpp
+++ b/core/fpdfapi/font/cpdf_tounicodemap.cpp
@@ -8,6 +8,7 @@
#include <set>
#include <utility>
+#include <variant>
#include "core/fpdfapi/font/cpdf_cid2unicodemap.h"
#include "core/fpdfapi/font/cpdf_fontglobals.h"
@@ -17,7 +18,6 @@
#include "core/fxcrt/containers/contains.h"
#include "core/fxcrt/fx_extension.h"
#include "core/fxcrt/fx_safe_types.h"
-#include "third_party/abseil-cpp/absl/types/variant.h"
namespace {
@@ -244,8 +244,8 @@
uint32_t low_code;
std::vector<WideString> retcodes;
};
- using Range = absl::variant<CodeWordRange, MultimapSingleDestRange,
- MultimapMultiDestRange>;
+ using Range = std::variant<CodeWordRange, MultimapSingleDestRange,
+ MultimapMultiDestRange>;
std::vector<Range> ranges;
const int raw_count = StringToInt(previous_word);
@@ -338,22 +338,22 @@
if (is_valid && ranges.size() == expected_count) {
for (const auto& entry : ranges) {
- if (absl::holds_alternative<CodeWordRange>(entry)) {
- const auto& range = absl::get<CodeWordRange>(entry);
+ if (std::holds_alternative<CodeWordRange>(entry)) {
+ const auto& range = std::get<CodeWordRange>(entry);
uint32_t code = range.low_code;
for (const auto& code_word : range.code_words) {
SetCode(code, StringToWideString(code_word));
++code;
}
- } else if (absl::holds_alternative<MultimapSingleDestRange>(entry)) {
- const auto& range = absl::get<MultimapSingleDestRange>(entry);
+ } else if (std::holds_alternative<MultimapSingleDestRange>(entry)) {
+ const auto& range = std::get<MultimapSingleDestRange>(entry);
uint32_t value = range.start_value;
for (uint32_t code = range.low_code; code <= range.high_code; ++code) {
InsertIntoMultimap(code, value++);
}
} else {
- CHECK(absl::holds_alternative<MultimapMultiDestRange>(entry));
- const auto& range = absl::get<MultimapMultiDestRange>(entry);
+ CHECK(std::holds_alternative<MultimapMultiDestRange>(entry));
+ const auto& range = std::get<MultimapMultiDestRange>(entry);
uint32_t code = range.low_code;
for (const auto& retcode : range.retcodes) {
InsertIntoMultimap(code, GetMultiCharIndexIndicator());
diff --git a/core/fpdfapi/page/cpdf_color.cpp b/core/fpdfapi/page/cpdf_color.cpp
index 46cb8db..7709dfc 100644
--- a/core/fpdfapi/page/cpdf_color.cpp
+++ b/core/fpdfapi/page/cpdf_color.cpp
@@ -8,6 +8,7 @@
#include <optional>
#include <utility>
+#include <variant>
#include "core/fpdfapi/page/cpdf_patterncs.h"
#include "core/fxcrt/check.h"
@@ -22,7 +23,7 @@
CPDF_Color::~CPDF_Color() = default;
bool CPDF_Color::IsNull() const {
- return absl::holds_alternative<absl::monostate>(color_data_);
+ return std::holds_alternative<std::monostate>(color_data_);
}
bool CPDF_Color::IsPattern() const {
@@ -59,7 +60,7 @@
CPDF_ColorSpace::GetStockCS(CPDF_ColorSpace::Family::kPattern));
}
- auto& pattern_value = absl::get<std::unique_ptr<PatternValue>>(color_data_);
+ auto& pattern_value = std::get<std::unique_ptr<PatternValue>>(color_data_);
pattern_value->SetPattern(std::move(pattern));
pattern_value->SetComps(values);
}
@@ -71,15 +72,15 @@
cs_ = that.cs_;
- if (absl::holds_alternative<std::vector<float>>(that.color_data_)) {
- color_data_ = absl::get<std::vector<float>>(that.color_data_);
- } else if (absl::holds_alternative<std::unique_ptr<PatternValue>>(
+ if (std::holds_alternative<std::vector<float>>(that.color_data_)) {
+ color_data_ = std::get<std::vector<float>>(that.color_data_);
+ } else if (std::holds_alternative<std::unique_ptr<PatternValue>>(
that.color_data_)) {
auto& pattern_value =
- absl::get<std::unique_ptr<PatternValue>>(that.color_data_);
+ std::get<std::unique_ptr<PatternValue>>(that.color_data_);
color_data_ = std::make_unique<PatternValue>(*pattern_value);
} else {
- color_data_ = absl::monostate();
+ color_data_ = std::monostate();
}
return *this;
@@ -114,14 +115,14 @@
std::optional<FX_RGB_STRUCT<float>> CPDF_Color::GetRGB() const {
if (IsPatternInternal()) {
- if (absl::holds_alternative<std::unique_ptr<PatternValue>>(color_data_)) {
+ if (std::holds_alternative<std::unique_ptr<PatternValue>>(color_data_)) {
const auto& pattern_value =
- absl::get<std::unique_ptr<PatternValue>>(color_data_);
+ std::get<std::unique_ptr<PatternValue>>(color_data_);
return cs_->AsPatternCS()->GetPatternRGB(*pattern_value);
}
} else {
- if (absl::holds_alternative<std::vector<float>>(color_data_)) {
- const auto& buffer = absl::get<std::vector<float>>(color_data_);
+ if (std::holds_alternative<std::vector<float>>(color_data_)) {
+ const auto& buffer = std::get<std::vector<float>>(color_data_);
return cs_->GetRGB(buffer);
}
}
@@ -132,6 +133,6 @@
DCHECK(IsPattern());
const auto& pattern_value =
- absl::get<std::unique_ptr<PatternValue>>(color_data_);
+ std::get<std::unique_ptr<PatternValue>>(color_data_);
return pattern_value->GetPattern();
}
diff --git a/core/fpdfapi/page/cpdf_color.h b/core/fpdfapi/page/cpdf_color.h
index 34e32f5..69f0226 100644
--- a/core/fpdfapi/page/cpdf_color.h
+++ b/core/fpdfapi/page/cpdf_color.h
@@ -11,12 +11,12 @@
#include <memory>
#include <optional>
+#include <variant>
#include <vector>
#include "core/fxcrt/retain_ptr.h"
#include "core/fxcrt/span.h"
#include "core/fxge/dib/fx_dib.h"
-#include "third_party/abseil-cpp/absl/types/variant.h"
class CPDF_ColorSpace;
class CPDF_Pattern;
@@ -53,9 +53,9 @@
protected:
bool IsPatternInternal() const;
- absl::variant<absl::monostate,
- std::vector<float>, // Used for non-pattern colorspaces.
- std::unique_ptr<PatternValue>> // Used for pattern colorspaces.
+ std::variant<std::monostate,
+ std::vector<float>, // Used for non-pattern colorspaces.
+ std::unique_ptr<PatternValue>> // Used for pattern colorspaces.
color_data_;
RetainPtr<CPDF_ColorSpace> cs_;
};
diff --git a/core/fpdfapi/page/cpdf_contentparser.cpp b/core/fpdfapi/page/cpdf_contentparser.cpp
index 60aec84..e21e817 100644
--- a/core/fpdfapi/page/cpdf_contentparser.cpp
+++ b/core/fpdfapi/page/cpdf_contentparser.cpp
@@ -7,6 +7,7 @@
#include "core/fpdfapi/page/cpdf_contentparser.h"
#include <utility>
+#include <variant>
#include "constants/page_object.h"
#include "core/fpdfapi/font/cpdf_type3char.h"
@@ -279,7 +280,7 @@
pdfium::span<const uint8_t> CPDF_ContentParser::GetData() const {
if (is_owned()) {
- return absl::get<FixedSizeDataVector<uint8_t>>(m_Data).span();
+ return std::get<FixedSizeDataVector<uint8_t>>(m_Data).span();
}
- return absl::get<pdfium::raw_span<const uint8_t>>(m_Data);
+ return std::get<pdfium::raw_span<const uint8_t>>(m_Data);
}
diff --git a/core/fpdfapi/page/cpdf_contentparser.h b/core/fpdfapi/page/cpdf_contentparser.h
index 7105a70..412324f 100644
--- a/core/fpdfapi/page/cpdf_contentparser.h
+++ b/core/fpdfapi/page/cpdf_contentparser.h
@@ -10,6 +10,7 @@
#include <stdint.h>
#include <memory>
+#include <variant>
#include <vector>
#include "core/fpdfapi/page/cpdf_form.h"
@@ -19,7 +20,6 @@
#include "core/fxcrt/raw_span.h"
#include "core/fxcrt/retain_ptr.h"
#include "core/fxcrt/unowned_ptr.h"
-#include "third_party/abseil-cpp/absl/types/variant.h"
class CPDF_AllStates;
class CPDF_Array;
@@ -65,7 +65,7 @@
void HandlePageContentFailure();
bool is_owned() const {
- return absl::holds_alternative<FixedSizeDataVector<uint8_t>>(m_Data);
+ return std::holds_alternative<FixedSizeDataVector<uint8_t>>(m_Data);
}
pdfium::span<const uint8_t> GetData() const;
@@ -75,7 +75,7 @@
RetainPtr<CPDF_StreamAcc> m_pSingleStream;
std::vector<RetainPtr<CPDF_StreamAcc>> m_StreamArray;
std::vector<uint32_t> m_StreamSegmentOffsets;
- absl::variant<pdfium::raw_span<const uint8_t>, FixedSizeDataVector<uint8_t>>
+ std::variant<pdfium::raw_span<const uint8_t>, FixedSizeDataVector<uint8_t>>
m_Data;
uint32_t m_nStreams = 0;
uint32_t m_CurrentOffset = 0;
diff --git a/core/fpdfapi/parser/cpdf_flateencoder.cpp b/core/fpdfapi/parser/cpdf_flateencoder.cpp
index 05dd872..0e977d8 100644
--- a/core/fpdfapi/parser/cpdf_flateencoder.cpp
+++ b/core/fpdfapi/parser/cpdf_flateencoder.cpp
@@ -6,6 +6,8 @@
#include "core/fpdfapi/parser/cpdf_flateencoder.h"
+#include <variant>
+
#include "constants/stream_dict_common.h"
#include "core/fpdfapi/parser/cpdf_dictionary.h"
#include "core/fpdfapi/parser/cpdf_name.h"
@@ -80,6 +82,6 @@
pdfium::span<const uint8_t> CPDF_FlateEncoder::GetSpan() const {
if (is_owned())
- return absl::get<DataVector<uint8_t>>(m_Data);
- return absl::get<pdfium::raw_span<const uint8_t>>(m_Data);
+ return std::get<DataVector<uint8_t>>(m_Data);
+ return std::get<pdfium::raw_span<const uint8_t>>(m_Data);
}
diff --git a/core/fpdfapi/parser/cpdf_flateencoder.h b/core/fpdfapi/parser/cpdf_flateencoder.h
index 0e60d47..69b662e 100644
--- a/core/fpdfapi/parser/cpdf_flateencoder.h
+++ b/core/fpdfapi/parser/cpdf_flateencoder.h
@@ -8,12 +8,12 @@
#define CORE_FPDFAPI_PARSER_CPDF_FLATEENCODER_H_
#include <stdint.h>
+#include <variant>
#include "core/fxcrt/data_vector.h"
#include "core/fxcrt/raw_span.h"
#include "core/fxcrt/retain_ptr.h"
#include "core/fxcrt/span.h"
-#include "third_party/abseil-cpp/absl/types/variant.h"
class CPDF_Dictionary;
class CPDF_Encryptor;
@@ -34,7 +34,7 @@
private:
bool is_owned() const {
- return absl::holds_alternative<DataVector<uint8_t>>(m_Data);
+ return std::holds_alternative<DataVector<uint8_t>>(m_Data);
}
// Returns |m_pClonedDict| if it is valid. Otherwise returns |m_pDict|.
@@ -43,7 +43,7 @@
// Must outlive `m_Data`.
RetainPtr<CPDF_StreamAcc> const m_pAcc;
- absl::variant<pdfium::raw_span<const uint8_t>, DataVector<uint8_t>> m_Data;
+ std::variant<pdfium::raw_span<const uint8_t>, DataVector<uint8_t>> m_Data;
// Only one of these two pointers is valid at any time.
RetainPtr<const CPDF_Dictionary> m_pDict;
diff --git a/core/fpdfapi/parser/cpdf_stream.cpp b/core/fpdfapi/parser/cpdf_stream.cpp
index 287878f..cf16479 100644
--- a/core/fpdfapi/parser/cpdf_stream.cpp
+++ b/core/fpdfapi/parser/cpdf_stream.cpp
@@ -10,6 +10,7 @@
#include <sstream>
#include <utility>
+#include <variant>
#include "constants/stream_dict_common.h"
#include "core/fpdfapi/parser/cpdf_dictionary.h"
@@ -55,7 +56,7 @@
: data_(std::move(file)), dict_(std::move(dict)) {
CHECK(dict_->IsInline());
SetLengthInDict(pdfium::checked_cast<int>(
- absl::get<RetainPtr<IFX_SeekableReadStream>>(data_)->GetSize()));
+ std::get<RetainPtr<IFX_SeekableReadStream>>(data_)->GetSize()));
}
CPDF_Stream::CPDF_Stream(DataVector<uint8_t> data,
@@ -63,7 +64,7 @@
: data_(std::move(data)), dict_(std::move(dict)) {
CHECK(dict_->IsInline());
SetLengthInDict(
- pdfium::checked_cast<int>(absl::get<DataVector<uint8_t>>(data_).size()));
+ pdfium::checked_cast<int>(std::get<DataVector<uint8_t>>(data_).size()));
}
CPDF_Stream::~CPDF_Stream() {
@@ -155,7 +156,7 @@
DataVector<uint8_t> result(GetRawSize());
DCHECK(!result.empty());
- auto underlying_stream = absl::get<RetainPtr<IFX_SeekableReadStream>>(data_);
+ auto underlying_stream = std::get<RetainPtr<IFX_SeekableReadStream>>(data_);
if (!underlying_stream->ReadBlockAtOffset(result, 0))
return DataVector<uint8_t>();
@@ -200,14 +201,14 @@
size_t CPDF_Stream::GetRawSize() const {
if (IsFileBased()) {
return pdfium::checked_cast<size_t>(
- absl::get<RetainPtr<IFX_SeekableReadStream>>(data_)->GetSize());
+ std::get<RetainPtr<IFX_SeekableReadStream>>(data_)->GetSize());
}
- return absl::get<DataVector<uint8_t>>(data_).size();
+ return std::get<DataVector<uint8_t>>(data_).size();
}
pdfium::span<const uint8_t> CPDF_Stream::GetInMemoryRawData() const {
DCHECK(IsMemoryBased());
- return absl::get<DataVector<uint8_t>>(data_);
+ return std::get<DataVector<uint8_t>>(data_);
}
void CPDF_Stream::SetLengthInDict(int length) {
diff --git a/core/fpdfapi/parser/cpdf_stream.h b/core/fpdfapi/parser/cpdf_stream.h
index 2311bf2..ffeea79 100644
--- a/core/fpdfapi/parser/cpdf_stream.h
+++ b/core/fpdfapi/parser/cpdf_stream.h
@@ -11,12 +11,12 @@
#include <memory>
#include <set>
+#include <variant>
#include "core/fpdfapi/parser/cpdf_object.h"
#include "core/fxcrt/data_vector.h"
#include "core/fxcrt/fx_string_wrappers.h"
#include "core/fxcrt/retain_ptr.h"
-#include "third_party/abseil-cpp/absl/types/variant.h"
class IFX_SeekableReadStream;
@@ -57,10 +57,10 @@
DataVector<uint8_t> ReadAllRawData() const;
bool IsFileBased() const {
- return absl::holds_alternative<RetainPtr<IFX_SeekableReadStream>>(data_);
+ return std::holds_alternative<RetainPtr<IFX_SeekableReadStream>>(data_);
}
bool IsMemoryBased() const {
- return absl::holds_alternative<DataVector<uint8_t>>(data_);
+ return std::holds_alternative<DataVector<uint8_t>>(data_);
}
bool HasFilter() const;
@@ -93,7 +93,7 @@
void SetLengthInDict(int length);
- absl::variant<RetainPtr<IFX_SeekableReadStream>, DataVector<uint8_t>> data_;
+ std::variant<RetainPtr<IFX_SeekableReadStream>, DataVector<uint8_t>> data_;
RetainPtr<CPDF_Dictionary> dict_;
};
diff --git a/core/fpdfapi/parser/cpdf_stream_acc.cpp b/core/fpdfapi/parser/cpdf_stream_acc.cpp
index 8e18336..dd24940 100644
--- a/core/fpdfapi/parser/cpdf_stream_acc.cpp
+++ b/core/fpdfapi/parser/cpdf_stream_acc.cpp
@@ -7,6 +7,7 @@
#include "core/fpdfapi/parser/cpdf_stream_acc.h"
#include <utility>
+#include <variant>
#include "core/fdrm/fx_crypt.h"
#include "core/fpdfapi/parser/cpdf_dictionary.h"
@@ -74,7 +75,7 @@
pdfium::span<const uint8_t> CPDF_StreamAcc::GetSpan() const {
if (is_owned())
- return absl::get<DataVector<uint8_t>>(m_Data);
+ return std::get<DataVector<uint8_t>>(m_Data);
if (m_pStream && m_pStream->IsMemoryBased())
return m_pStream->GetInMemoryRawData();
return {};
@@ -90,9 +91,9 @@
DataVector<uint8_t> CPDF_StreamAcc::DetachData() {
if (is_owned())
- return std::move(absl::get<DataVector<uint8_t>>(m_Data));
+ return std::move(std::get<DataVector<uint8_t>>(m_Data));
- auto span = absl::get<pdfium::raw_span<const uint8_t>>(m_Data);
+ auto span = std::get<pdfium::raw_span<const uint8_t>>(m_Data);
return DataVector<uint8_t>(span.begin(), span.end());
}
@@ -119,7 +120,7 @@
if (dwSrcSize == 0)
return;
- absl::variant<pdfium::raw_span<const uint8_t>, DataVector<uint8_t>> src_data;
+ std::variant<pdfium::raw_span<const uint8_t>, DataVector<uint8_t>> src_data;
pdfium::span<const uint8_t> src_span;
if (m_pStream->IsMemoryBased()) {
src_span = m_pStream->GetInMemoryRawData();
diff --git a/core/fpdfapi/parser/cpdf_stream_acc.h b/core/fpdfapi/parser/cpdf_stream_acc.h
index 3ddc5ac..ea358db 100644
--- a/core/fpdfapi/parser/cpdf_stream_acc.h
+++ b/core/fpdfapi/parser/cpdf_stream_acc.h
@@ -10,13 +10,13 @@
#include <stdint.h>
#include <memory>
+#include <variant>
#include "core/fxcrt/bytestring.h"
#include "core/fxcrt/data_vector.h"
#include "core/fxcrt/raw_span.h"
#include "core/fxcrt/retain_ptr.h"
#include "core/fxcrt/span.h"
-#include "third_party/abseil-cpp/absl/types/variant.h"
class CPDF_Dictionary;
class CPDF_Stream;
@@ -57,14 +57,14 @@
DataVector<uint8_t> ReadRawStream() const;
bool is_owned() const {
- return absl::holds_alternative<DataVector<uint8_t>>(m_Data);
+ return std::holds_alternative<DataVector<uint8_t>>(m_Data);
}
ByteString m_ImageDecoder;
RetainPtr<const CPDF_Dictionary> m_pImageParam;
// Needs to outlive `m_Data` when the data is not owned.
RetainPtr<const CPDF_Stream> const m_pStream;
- absl::variant<pdfium::raw_span<const uint8_t>, DataVector<uint8_t>> m_Data;
+ std::variant<pdfium::raw_span<const uint8_t>, DataVector<uint8_t>> m_Data;
};
#endif // CORE_FPDFAPI_PARSER_CPDF_STREAM_ACC_H_
diff --git a/core/fxcrt/fx_number.cpp b/core/fxcrt/fx_number.cpp
index 6e1598f..d2cd130 100644
--- a/core/fxcrt/fx_number.cpp
+++ b/core/fxcrt/fx_number.cpp
@@ -7,6 +7,7 @@
#include "core/fxcrt/fx_number.h"
#include <limits>
+#include <variant>
#include "core/fxcrt/fx_extension.h"
#include "core/fxcrt/fx_safe_types.h"
@@ -82,31 +83,31 @@
}
bool FX_Number::IsInteger() const {
- return absl::holds_alternative<uint32_t>(value_) ||
- absl::holds_alternative<int32_t>(value_);
+ return std::holds_alternative<uint32_t>(value_) ||
+ std::holds_alternative<int32_t>(value_);
}
bool FX_Number::IsSigned() const {
- return absl::holds_alternative<int32_t>(value_) ||
- absl::holds_alternative<float>(value_);
+ return std::holds_alternative<int32_t>(value_) ||
+ std::holds_alternative<float>(value_);
}
int32_t FX_Number::GetSigned() const {
- if (absl::holds_alternative<uint32_t>(value_)) {
- return static_cast<int32_t>(absl::get<uint32_t>(value_));
+ if (std::holds_alternative<uint32_t>(value_)) {
+ return static_cast<int32_t>(std::get<uint32_t>(value_));
}
- if (absl::holds_alternative<int32_t>(value_)) {
- return absl::get<int32_t>(value_);
+ if (std::holds_alternative<int32_t>(value_)) {
+ return std::get<int32_t>(value_);
}
- return pdfium::saturated_cast<int32_t>(absl::get<float>(value_));
+ return pdfium::saturated_cast<int32_t>(std::get<float>(value_));
}
float FX_Number::GetFloat() const {
- if (absl::holds_alternative<uint32_t>(value_)) {
- return static_cast<float>(absl::get<uint32_t>(value_));
+ if (std::holds_alternative<uint32_t>(value_)) {
+ return static_cast<float>(std::get<uint32_t>(value_));
}
- if (absl::holds_alternative<int32_t>(value_)) {
- return static_cast<float>(absl::get<int32_t>(value_));
+ if (std::holds_alternative<int32_t>(value_)) {
+ return static_cast<float>(std::get<int32_t>(value_));
}
- return absl::get<float>(value_);
+ return std::get<float>(value_);
}
diff --git a/core/fxcrt/fx_number.h b/core/fxcrt/fx_number.h
index c943dec..bdaf3f8 100644
--- a/core/fxcrt/fx_number.h
+++ b/core/fxcrt/fx_number.h
@@ -9,8 +9,9 @@
#include <stdint.h>
+#include <variant>
+
#include "core/fxcrt/bytestring.h"
-#include "third_party/abseil-cpp/absl/types/variant.h"
class FX_Number {
public:
@@ -27,7 +28,7 @@
float GetFloat() const;
private:
- absl::variant<uint32_t, int32_t, float> value_ = 0u;
+ std::variant<uint32_t, int32_t, float> value_ = 0u;
};
#endif // CORE_FXCRT_FX_NUMBER_H_
diff --git a/core/fxcrt/maybe_owned.h b/core/fxcrt/maybe_owned.h
index c599d39..6f4de82 100644
--- a/core/fxcrt/maybe_owned.h
+++ b/core/fxcrt/maybe_owned.h
@@ -7,9 +7,9 @@
#include <memory>
#include <utility>
+#include <variant>
#include "core/fxcrt/unowned_ptr.h"
-#include "third_party/abseil-cpp/absl/types/variant.h"
namespace fxcrt {
@@ -39,7 +39,7 @@
void Reset(T* ptr = nullptr) { ptr_ = UnownedType(ptr); }
void Reset(OwnedType ptr) { ptr_ = std::move(ptr); }
- bool IsOwned() const { return absl::holds_alternative<OwnedType>(ptr_); }
+ bool IsOwned() const { return std::holds_alternative<OwnedType>(ptr_); }
// Helpful for untangling a collection of intertwined MaybeOwned<>.
void ResetIfUnowned() {
@@ -48,24 +48,24 @@
}
T* Get() const& {
- return absl::visit([](const auto& obj) { return obj.get(); }, ptr_);
+ return std::visit([](const auto& obj) { return obj.get(); }, ptr_);
}
T* Get() && {
auto local_variable_preventing_move_elision = std::move(ptr_);
- return absl::visit([](const auto& obj) { return obj.get(); },
- local_variable_preventing_move_elision);
+ return std::visit([](const auto& obj) { return obj.get(); },
+ local_variable_preventing_move_elision);
}
// Downgrades to unowned, caller takes ownership.
OwnedType Release() {
- auto result = std::move(absl::get<OwnedType>(ptr_));
+ auto result = std::move(std::get<OwnedType>(ptr_));
ptr_ = UnownedType(result.get());
return result;
}
// Downgrades to empty, caller takes ownership.
OwnedType ReleaseAndClear() {
- auto result = std::move(absl::get<OwnedType>(ptr_));
+ auto result = std::move(std::get<OwnedType>(ptr_));
ptr_ = UnownedType();
return result;
}
@@ -96,7 +96,7 @@
T* operator->() const { return Get(); }
private:
- absl::variant<UnownedType, OwnedType> ptr_;
+ std::variant<UnownedType, OwnedType> ptr_;
};
} // namespace fxcrt
diff --git a/core/fxge/agg/cfx_agg_devicedriver.cpp b/core/fxge/agg/cfx_agg_devicedriver.cpp
index a306b4c..ab4af05 100644
--- a/core/fxge/agg/cfx_agg_devicedriver.cpp
+++ b/core/fxge/agg/cfx_agg_devicedriver.cpp
@@ -29,7 +29,6 @@
#include "core/fxge/cfx_path.h"
#include "core/fxge/dib/cfx_dibitmap.h"
#include "core/fxge/dib/cfx_imagestretcher.h"
-#include "third_party/abseil-cpp/absl/types/variant.h"
// Ignore fallthrough warnings in agg23 headers.
#if defined(__clang__)
@@ -443,12 +442,12 @@
}
const FX_BGR_STRUCT<uint8_t>& GetBGR() const {
- return absl::get<FX_BGR_STRUCT<uint8_t>>(m_ColorData);
+ return std::get<FX_BGR_STRUCT<uint8_t>>(m_ColorData);
}
- int GetGray() const { return absl::get<int>(m_ColorData); }
+ int GetGray() const { return std::get<int>(m_ColorData); }
const int m_Alpha;
- absl::variant<FX_BGR_STRUCT<uint8_t>, int> m_ColorData;
+ std::variant<FX_BGR_STRUCT<uint8_t>, int> m_ColorData;
const uint32_t m_Color;
const bool m_bFullCover;
const bool m_bRgbByteOrder;
diff --git a/fpdfsdk/fpdf_formfill.cpp b/fpdfsdk/fpdf_formfill.cpp
index 8e794a5..2ad5fcc 100644
--- a/fpdfsdk/fpdf_formfill.cpp
+++ b/fpdfsdk/fpdf_formfill.cpp
@@ -8,6 +8,7 @@
#include <memory>
#include <utility>
+#include <variant>
#include "constants/form_fields.h"
#include "core/fpdfapi/page/cpdf_annotcontext.h"
@@ -28,7 +29,6 @@
#include "fpdfsdk/cpdfsdk_interactiveform.h"
#include "fpdfsdk/cpdfsdk_pageview.h"
#include "public/fpdfview.h"
-#include "third_party/abseil-cpp/absl/types/variant.h"
#ifdef PDF_ENABLE_XFA
#include "fpdfsdk/fpdfxfa/cpdfxfa_context.h"
@@ -178,9 +178,9 @@
}
#if defined(PDF_USE_SKIA)
-using BitmapOrCanvas = absl::variant<CFX_DIBitmap*, SkCanvas*>;
+using BitmapOrCanvas = std::variant<CFX_DIBitmap*, SkCanvas*>;
#else
-using BitmapOrCanvas = absl::variant<CFX_DIBitmap*>;
+using BitmapOrCanvas = std::variant<CFX_DIBitmap*>;
#endif
// `dest` must be non-null.
@@ -207,9 +207,9 @@
SkCanvas* canvas = nullptr;
#endif
- const bool dest_is_bitmap = absl::holds_alternative<CFX_DIBitmap*>(dest);
+ const bool dest_is_bitmap = std::holds_alternative<CFX_DIBitmap*>(dest);
if (dest_is_bitmap) {
- holder.Reset(absl::get<CFX_DIBitmap*>(dest));
+ holder.Reset(std::get<CFX_DIBitmap*>(dest));
CHECK(holder);
} else {
#if defined(PDF_USE_SKIA)
@@ -217,7 +217,7 @@
return;
}
- canvas = absl::get<SkCanvas*>(dest);
+ canvas = std::get<SkCanvas*>(dest);
CHECK(canvas);
#endif
}