Fix span / unique_ptr destruction order in PDF_DataDecode().

BUG=chromium:895026

Change-Id: Ie7d8bfd6e42308c3531ce6637ad29ec2231a2095
Reviewed-on: https://pdfium-review.googlesource.com/c/43984
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/parser/fpdf_parser_decode.cpp b/core/fpdfapi/parser/fpdf_parser_decode.cpp
index 99b6154..2b27b89 100644
--- a/core/fpdfapi/parser/fpdf_parser_decode.cpp
+++ b/core/fpdfapi/parser/fpdf_parser_decode.cpp
@@ -389,8 +389,10 @@
         {pDecoder->GetString(), pParams ? pParams->GetDict() : nullptr});
   }
 
-  pdfium::span<const uint8_t> last_span = src_span;
   std::unique_ptr<uint8_t, FxFreeDeleter> result;
+  // May be changed to point to |result| in the for-loop below. So put it below
+  // |result| and let it get destroyed first.
+  pdfium::span<const uint8_t> last_span = src_span;
   size_t nSize = DecoderArray.size();
   for (size_t i = 0; i < nSize; ++i) {
     int estimated_size = i == nSize - 1 ? last_estimated_size : 0;