Do the ScopedSetInsertion later in CPDF_Parser::GetObjectStream().

As is, the ScopedSetInsertion happens fairly early, but is not necessary
until later in GetObjectStream(). So move it down to potentially do
fewer inserts.

Change-Id: Ia5774f48015a11529ab6f18e1e6da42342b6ec2c
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/80370
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfapi/parser/cpdf_parser.cpp b/core/fpdfapi/parser/cpdf_parser.cpp
index f131121..f5491dd 100644
--- a/core/fpdfapi/parser/cpdf_parser.cpp
+++ b/core/fpdfapi/parser/cpdf_parser.cpp
@@ -889,8 +889,6 @@
   if (pdfium::Contains(m_ParsingObjNums, object_number))
     return nullptr;
 
-  ScopedSetInsertion<uint32_t> local_insert(&m_ParsingObjNums, object_number);
-
   auto it = m_ObjectStreamMap.find(object_number);
   if (it != m_ObjectStreamMap.end())
     return it->second.get();
@@ -903,6 +901,9 @@
   if (object_pos <= 0)
     return nullptr;
 
+  // Keep track of `object_number` before doing more parsing.
+  ScopedSetInsertion<uint32_t> local_insert(&m_ParsingObjNums, object_number);
+
   RetainPtr<CPDF_Object> object =
       ParseIndirectObjectAt(object_pos, object_number);
   if (!object)