Use std::vector for BasicModule::m_pScanline.

No need to allocate it manually, since we always expect it to be
pre-zeroed and we don't hand it off anywhere.

Change-Id: I7203badcd82413bcf4cb807c6ea02ac37514970b
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/82630
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fxcodec/basic/basicmodule.cpp b/core/fxcodec/basic/basicmodule.cpp
index 482eadc..b3abc99 100644
--- a/core/fxcodec/basic/basicmodule.cpp
+++ b/core/fxcodec/basic/basicmodule.cpp
@@ -6,6 +6,7 @@
 
 #include <algorithm>
 #include <utility>
+#include <vector>
 
 #include "core/fxcodec/scanlinedecoder.h"
 #include "core/fxcrt/fx_safe_types.h"
@@ -36,7 +37,7 @@
   void GetNextOperator();
   void UpdateOperator(uint8_t used_bytes);
 
-  std::unique_ptr<uint8_t, FxFreeDeleter> m_pScanline;
+  std::vector<uint8_t, FxAllocAllocator<uint8_t>> m_Scanline;
   pdfium::span<const uint8_t> m_SrcBuf;
   size_t m_dwLineBytes = 0;
   size_t m_SrcOffset = 0;
@@ -101,12 +102,12 @@
   m_Pitch = pitch.ValueOrDie();
   // Overflow should already have been checked before this is called.
   m_dwLineBytes = (static_cast<uint32_t>(width) * nComps * bpc + 7) / 8;
-  m_pScanline.reset(FX_Alloc(uint8_t, m_Pitch));
+  m_Scanline.resize(m_Pitch);
   return CheckDestSize();
 }
 
 bool RLScanlineDecoder::v_Rewind() {
-  memset(m_pScanline.get(), 0, m_Pitch);
+  memset(m_Scanline.data(), 0, m_Pitch);
   m_SrcOffset = 0;
   m_bEOD = false;
   m_Operator = 0;
@@ -119,7 +120,7 @@
   } else if (m_bEOD) {
     return nullptr;
   }
-  memset(m_pScanline.get(), 0, m_Pitch);
+  memset(m_Scanline.data(), 0, m_Pitch);
   uint32_t col_pos = 0;
   bool eol = false;
   while (m_SrcOffset < m_SrcBuf.size() && !eol) {
@@ -134,7 +135,7 @@
         m_bEOD = true;
       }
       auto copy_span = m_SrcBuf.subspan(m_SrcOffset, copy_len);
-      memcpy(m_pScanline.get() + col_pos, copy_span.data(), copy_span.size());
+      memcpy(m_Scanline.data() + col_pos, copy_span.data(), copy_span.size());
       col_pos += copy_len;
       UpdateOperator((uint8_t)copy_len);
     } else if (m_Operator > 128) {
@@ -147,7 +148,7 @@
         duplicate_len = m_dwLineBytes - col_pos;
         eol = true;
       }
-      memset(m_pScanline.get() + col_pos, fill, duplicate_len);
+      memset(m_Scanline.data() + col_pos, fill, duplicate_len);
       col_pos += duplicate_len;
       UpdateOperator((uint8_t)duplicate_len);
     } else {
@@ -155,7 +156,7 @@
       break;
     }
   }
-  return m_pScanline.get();
+  return m_Scanline.data();
 }
 
 void RLScanlineDecoder::GetNextOperator() {