Make |CJBig2_BitStream::m_Span| const.

Add a helper function to validate the span's size, instead of doing the
validation in CJBig2_BitStream's ctor.

Change-Id: I3d94efe8694826c63822b6d9328a309b8d55d47b
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/55352
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fxcodec/jbig2/JBig2_BitStream.cpp b/core/fxcodec/jbig2/JBig2_BitStream.cpp
index 83c12d5..fb2a888 100644
--- a/core/fxcodec/jbig2/JBig2_BitStream.cpp
+++ b/core/fxcodec/jbig2/JBig2_BitStream.cpp
@@ -8,15 +8,21 @@
 
 #include <algorithm>
 
-CJBig2_BitStream::CJBig2_BitStream(pdfium::span<const uint8_t> pSrcStream,
-                                   uint32_t dwObjNum)
-    : m_Span(pSrcStream), m_dwObjNum(dwObjNum) {
-  if (m_Span.size() > 256 * 1024 * 1024) {
-    m_Span = {};
-  }
+namespace {
+
+pdfium::span<const uint8_t> ValidatedSpan(pdfium::span<const uint8_t> sp) {
+  if (sp.size() > 256 * 1024 * 1024)
+    return {};
+  return sp;
 }
 
-CJBig2_BitStream::~CJBig2_BitStream() {}
+}  // namespace
+
+CJBig2_BitStream::CJBig2_BitStream(pdfium::span<const uint8_t> pSrcStream,
+                                   uint32_t dwObjNum)
+    : m_Span(ValidatedSpan(pSrcStream)), m_dwObjNum(dwObjNum) {}
+
+CJBig2_BitStream::~CJBig2_BitStream() = default;
 
 int32_t CJBig2_BitStream::readNBits(uint32_t dwBits, uint32_t* dwResult) {
   if (!IsInBounds())
diff --git a/core/fxcodec/jbig2/JBig2_BitStream.h b/core/fxcodec/jbig2/JBig2_BitStream.h
index e4bb82b..86550c2 100644
--- a/core/fxcodec/jbig2/JBig2_BitStream.h
+++ b/core/fxcodec/jbig2/JBig2_BitStream.h
@@ -44,7 +44,7 @@
   void AdvanceBit();
   uint32_t LengthInBits() const;
 
-  pdfium::span<const uint8_t> m_Span;
+  pdfium::span<const uint8_t> const m_Span;
   uint32_t m_dwByteIdx = 0;
   uint32_t m_dwBitIdx = 0;
   const uint32_t m_dwObjNum;