Store uint8_t vector data in data partition in fxcodec/
Change-Id: I679de621189a0413436cb0c298a1ea308d893c1b
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/68253
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fxcodec/bmp/cfx_bmpdecompressor.h b/core/fxcodec/bmp/cfx_bmpdecompressor.h
index 3f4e2d8..98429b3 100644
--- a/core/fxcodec/bmp/cfx_bmpdecompressor.h
+++ b/core/fxcodec/bmp/cfx_bmpdecompressor.h
@@ -11,6 +11,7 @@
#include "core/fxcodec/bmp/bmpmodule.h"
#include "core/fxcodec/bmp/fx_bmp.h"
+#include "core/fxcrt/fx_memory_wrappers.h"
#include "core/fxcrt/retain_ptr.h"
#include "core/fxcrt/unowned_ptr.h"
@@ -65,7 +66,7 @@
bool SetHeight(int32_t signed_height);
UnownedPtr<CFX_BmpContext> const context_;
- std::vector<uint8_t> out_row_buffer_;
+ std::vector<uint8_t, FxAllocAllocator<uint8_t>> out_row_buffer_;
std::vector<uint32_t> palette_;
uint32_t header_offset_ = 0;
uint32_t width_ = 0;
diff --git a/core/fxcodec/gif/cfx_gifcontext_unittest.cpp b/core/fxcodec/gif/cfx_gifcontext_unittest.cpp
index 20d34ea..818e8b9 100644
--- a/core/fxcodec/gif/cfx_gifcontext_unittest.cpp
+++ b/core/fxcodec/gif/cfx_gifcontext_unittest.cpp
@@ -47,7 +47,7 @@
}
TEST(CFX_GifContext, ReadAllOrNone) {
- std::vector<uint8_t> dest_buffer;
+ std::vector<uint8_t, FxAllocAllocator<uint8_t>> dest_buffer;
uint8_t src_buffer[] = {0x00, 0x01, 0x02, 0x03, 0x04,
0x05, 0x06, 0x07, 0x08, 0x09};
CFX_GifContextForTest context(nullptr, nullptr);
diff --git a/core/fxcodec/gif/cfx_lzwdecompressor.h b/core/fxcodec/gif/cfx_lzwdecompressor.h
index d3ec588..60c9388 100644
--- a/core/fxcodec/gif/cfx_lzwdecompressor.h
+++ b/core/fxcodec/gif/cfx_lzwdecompressor.h
@@ -34,7 +34,9 @@
return ExtractData(dest_buf, dest_size);
}
- std::vector<uint8_t>* DecompressedForTest() { return &decompressed_; }
+ std::vector<uint8_t, FxAllocAllocator<uint8_t>>* DecompressedForTest() {
+ return &decompressed_;
+ }
size_t* DecompressedNextForTest() { return &decompressed_next_; }
private:
@@ -51,7 +53,7 @@
uint16_t code_end_;
uint16_t code_next_;
uint8_t code_first_;
- std::vector<uint8_t> decompressed_;
+ std::vector<uint8_t, FxAllocAllocator<uint8_t>> decompressed_;
size_t decompressed_next_;
uint16_t code_old_;
const uint8_t* next_in_;
diff --git a/core/fxcodec/gif/cfx_lzwdecompressor_unittest.cpp b/core/fxcodec/gif/cfx_lzwdecompressor_unittest.cpp
index e31fb78..58cb086 100644
--- a/core/fxcodec/gif/cfx_lzwdecompressor_unittest.cpp
+++ b/core/fxcodec/gif/cfx_lzwdecompressor_unittest.cpp
@@ -21,7 +21,8 @@
// Check that 0 length extract does nothing
{
- std::vector<uint8_t>* decompressed = decompressor->DecompressedForTest();
+ std::vector<uint8_t, FxAllocAllocator<uint8_t>>* decompressed =
+ decompressor->DecompressedForTest();
*decompressed = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
*(decompressor->DecompressedNextForTest()) = decompressed->size();
uint8_t dest_buf[20];
@@ -38,7 +39,8 @@
// Check that less than decompressed size only gets the expected number
{
- std::vector<uint8_t>* decompressed = decompressor->DecompressedForTest();
+ std::vector<uint8_t, FxAllocAllocator<uint8_t>>* decompressed =
+ decompressor->DecompressedForTest();
*decompressed = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
*(decompressor->DecompressedNextForTest()) = decompressed->size();
uint8_t dest_buf[20];
@@ -58,7 +60,8 @@
// Check that greater than decompressed size depletes the decompressor
{
- std::vector<uint8_t>* decompressed = decompressor->DecompressedForTest();
+ std::vector<uint8_t, FxAllocAllocator<uint8_t>>* decompressed =
+ decompressor->DecompressedForTest();
*decompressed = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
*(decompressor->DecompressedNextForTest()) = decompressed->size();
uint8_t dest_buf[20];
diff --git a/core/fxcodec/icc/iccmodule.cpp b/core/fxcodec/icc/iccmodule.cpp
index e9a8cd6..87654c5 100644
--- a/core/fxcodec/icc/iccmodule.cpp
+++ b/core/fxcodec/icc/iccmodule.cpp
@@ -10,6 +10,7 @@
#include <memory>
#include <vector>
+#include "core/fxcrt/fx_memory_wrappers.h"
#include "third_party/base/ptr_util.h"
#include "third_party/base/stl_util.h"
@@ -126,7 +127,8 @@
inputs[i] = pSrcValues[i];
cmsDoTransform(pTransform->transform(), inputs.data(), output, 1);
} else {
- std::vector<uint8_t> inputs(std::max(nSrcComponents, 16u));
+ std::vector<uint8_t, FxAllocAllocator<uint8_t>> inputs(
+ std::max(nSrcComponents, 16u));
for (uint32_t i = 0; i < nSrcComponents; ++i) {
inputs[i] =
pdfium::clamp(static_cast<int>(pSrcValues[i] * 255.0f), 0, 255);
diff --git a/core/fxcodec/progressivedecoder.h b/core/fxcodec/progressivedecoder.h
index 1852fe9..0247604 100644
--- a/core/fxcodec/progressivedecoder.h
+++ b/core/fxcodec/progressivedecoder.h
@@ -112,7 +112,7 @@
int m_DestMin;
int m_ItemSize;
- std::vector<uint8_t> m_pWeightTables;
+ std::vector<uint8_t, FxAllocAllocator<uint8_t>> m_pWeightTables;
};
class CFXCODEC_HorzTable {
@@ -127,7 +127,7 @@
}
int m_ItemSize;
- std::vector<uint8_t> m_pWeightTables;
+ std::vector<uint8_t, FxAllocAllocator<uint8_t>> m_pWeightTables;
};
class CFXCODEC_VertTable {
@@ -141,7 +141,7 @@
pixel * m_ItemSize);
}
int m_ItemSize;
- std::vector<uint8_t> m_pWeightTables;
+ std::vector<uint8_t, FxAllocAllocator<uint8_t>> m_pWeightTables;
};
#ifdef PDF_ENABLE_XFA_PNG