Use absl::holds_alternative<T>(variant) instead of variant.index().

This makes the absl::variant usage more readable, and reduce the amount
of changes required in the future, if the variant type ordering changes.

Change-Id: I99478cf0e9215483bb8a62fc5e122fef101eb539
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/102690
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/page/cpdf_contentparser.h b/core/fpdfapi/page/cpdf_contentparser.h
index 34006c7..090c624 100644
--- a/core/fpdfapi/page/cpdf_contentparser.h
+++ b/core/fpdfapi/page/cpdf_contentparser.h
@@ -63,7 +63,10 @@
   bool HandlePageContentArray(const CPDF_Array* pArray);
   void HandlePageContentFailure();
 
-  bool is_owned() const { return m_Data.index() == 1; }
+  bool is_owned() const {
+    return absl::holds_alternative<FixedTryAllocZeroedDataVector<uint8_t>>(
+        m_Data);
+  }
   pdfium::span<const uint8_t> GetData() const;
 
   Stage m_CurrentStage;
diff --git a/core/fpdfapi/parser/cpdf_flateencoder.h b/core/fpdfapi/parser/cpdf_flateencoder.h
index f4334e7..2d26d9b 100644
--- a/core/fpdfapi/parser/cpdf_flateencoder.h
+++ b/core/fpdfapi/parser/cpdf_flateencoder.h
@@ -32,7 +32,9 @@
   pdfium::span<const uint8_t> GetSpan() const;
 
  private:
-  bool is_owned() const { return m_Data.index() == 1; }
+  bool is_owned() const {
+    return absl::holds_alternative<DataVector<uint8_t>>(m_Data);
+  }
 
   // Returns |m_pClonedDict| if it is valid. Otherwise returns |m_pDict|.
   const CPDF_Dictionary* GetDict() const;
diff --git a/core/fpdfapi/parser/cpdf_stream.h b/core/fpdfapi/parser/cpdf_stream.h
index c683cba..f1bb78b 100644
--- a/core/fpdfapi/parser/cpdf_stream.h
+++ b/core/fpdfapi/parser/cpdf_stream.h
@@ -58,9 +58,15 @@
   // Can only be called when a stream is not memory-based.
   DataVector<uint8_t> ReadAllRawData() const;
 
-  bool IsUninitialized() const { return data_.index() == 0; }
-  bool IsFileBased() const { return data_.index() == 1; }
-  bool IsMemoryBased() const { return data_.index() == 2; }
+  bool IsUninitialized() const {
+    return absl::holds_alternative<absl::monostate>(data_);
+  }
+  bool IsFileBased() const {
+    return absl::holds_alternative<RetainPtr<IFX_SeekableReadStream>>(data_);
+  }
+  bool IsMemoryBased() const {
+    return absl::holds_alternative<DataVector<uint8_t>>(data_);
+  }
   bool HasFilter() const;
 
  private:
diff --git a/core/fpdfapi/parser/cpdf_stream_acc.h b/core/fpdfapi/parser/cpdf_stream_acc.h
index 0fb5509..1f0e726 100644
--- a/core/fpdfapi/parser/cpdf_stream_acc.h
+++ b/core/fpdfapi/parser/cpdf_stream_acc.h
@@ -55,7 +55,9 @@
   // Returns the raw data from `m_pStream`, or no data on failure.
   DataVector<uint8_t> ReadRawStream() const;
 
-  bool is_owned() const { return m_Data.index() == 1; }
+  bool is_owned() const {
+    return absl::holds_alternative<DataVector<uint8_t>>(m_Data);
+  }
 
   ByteString m_ImageDecoder;
   RetainPtr<const CPDF_Dictionary> m_pImageParam;