summaryrefslogtreecommitdiff
path: root/core/fpdfapi/page/cpdf_stitchfunc.cpp
diff options
context:
space:
mode:
authorLei Zhang <thestig@chromium.org>2018-04-19 16:55:02 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-04-19 16:55:02 +0000
commit9914d4dc1e7ad761cd52a68bc8cf64471c297cf8 (patch)
treed32b5338d1e951f8d830301dfe95108c4e21e9dd /core/fpdfapi/page/cpdf_stitchfunc.cpp
parent09f2855f196d4269477641413082f7d83eeb7d75 (diff)
downloadpdfium-9914d4dc1e7ad761cd52a68bc8cf64471c297cf8.tar.xz
Make CPDF_StitchFunc use more vectors.
Change-Id: Iaa3988cea5cdc6ce723c59ad051800925216d81b Reviewed-on: https://pdfium-review.googlesource.com/30990 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Diffstat (limited to 'core/fpdfapi/page/cpdf_stitchfunc.cpp')
-rw-r--r--core/fpdfapi/page/cpdf_stitchfunc.cpp23
1 files changed, 10 insertions, 13 deletions
diff --git a/core/fpdfapi/page/cpdf_stitchfunc.cpp b/core/fpdfapi/page/cpdf_stitchfunc.cpp
index 1e5329b337..aed17828d9 100644
--- a/core/fpdfapi/page/cpdf_stitchfunc.cpp
+++ b/core/fpdfapi/page/cpdf_stitchfunc.cpp
@@ -20,10 +20,7 @@ constexpr uint32_t kRequiredNumInputs = 1;
CPDF_StitchFunc::CPDF_StitchFunc() : CPDF_Function(Type::kType3Stitching) {}
-CPDF_StitchFunc::~CPDF_StitchFunc() {
- FX_Free(m_pBounds);
- FX_Free(m_pEncode);
-}
+CPDF_StitchFunc::~CPDF_StitchFunc() {}
bool CPDF_StitchFunc::v_Init(CPDF_Object* pObj,
std::set<CPDF_Object*>* pVisited) {
@@ -98,15 +95,15 @@ bool CPDF_StitchFunc::v_Init(CPDF_Object* pObj,
m_nOutputs = *nOutputs;
}
- m_pBounds = FX_Alloc(float, nSubs + 1);
- m_pBounds[0] = m_pDomains[0];
+ m_bounds.reserve(nSubs + 1);
+ m_bounds.push_back(m_pDomains[0]);
for (uint32_t i = 0; i < nSubs - 1; i++)
- m_pBounds[i + 1] = pBoundsArray->GetFloatAt(i);
- m_pBounds[nSubs] = m_pDomains[1];
+ m_bounds.push_back(pBoundsArray->GetFloatAt(i));
+ m_bounds.push_back(m_pDomains[1]);
- m_pEncode = FX_Alloc2D(float, nSubs, 2);
+ m_encode.reserve(nSubs * 2);
for (uint32_t i = 0; i < nSubs * 2; i++)
- m_pEncode[i] = pEncodeArray->GetFloatAt(i);
+ m_encode.push_back(pEncodeArray->GetFloatAt(i));
return true;
}
@@ -114,11 +111,11 @@ bool CPDF_StitchFunc::v_Call(const float* inputs, float* results) const {
float input = inputs[0];
size_t i;
for (i = 0; i < m_pSubFunctions.size() - 1; i++) {
- if (input < m_pBounds[i + 1])
+ if (input < m_bounds[i + 1])
break;
}
- input = Interpolate(input, m_pBounds[i], m_pBounds[i + 1], m_pEncode[i * 2],
- m_pEncode[i * 2 + 1]);
+ input = Interpolate(input, m_bounds[i], m_bounds[i + 1], m_encode[i * 2],
+ m_encode[i * 2 + 1]);
int nresults;
return m_pSubFunctions[i]->Call(&input, kRequiredNumInputs, results,
&nresults);