diff options
Diffstat (limited to 'core/fpdfapi/page/cpdf_expintfunc.cpp')
-rw-r--r-- | core/fpdfapi/page/cpdf_expintfunc.cpp | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/core/fpdfapi/page/cpdf_expintfunc.cpp b/core/fpdfapi/page/cpdf_expintfunc.cpp index ac17b282a9..cb83ac2d0b 100644 --- a/core/fpdfapi/page/cpdf_expintfunc.cpp +++ b/core/fpdfapi/page/cpdf_expintfunc.cpp @@ -14,10 +14,7 @@ CPDF_ExpIntFunc::CPDF_ExpIntFunc() : CPDF_Function(Type::kType2ExpotentialInterpolation) {} -CPDF_ExpIntFunc::~CPDF_ExpIntFunc() { - FX_Free(m_pBeginValues); - FX_Free(m_pEndValues); -} +CPDF_ExpIntFunc::~CPDF_ExpIntFunc() = default; bool CPDF_ExpIntFunc::v_Init(const CPDF_Object* pObj, std::set<const CPDF_Object*>* pVisited) { @@ -25,13 +22,11 @@ bool CPDF_ExpIntFunc::v_Init(const CPDF_Object* pObj, if (!pDict) return false; - { - const CPDF_Number* pExponent = ToNumber(pDict->GetObjectFor("N")); - if (!pExponent) - return false; + const CPDF_Number* pExponent = ToNumber(pDict->GetObjectFor("N")); + if (!pExponent) + return false; - m_Exponent = pExponent->GetNumber(); - } + m_Exponent = pExponent->GetNumber(); const CPDF_Array* pArray0 = pDict->GetArrayFor("C0"); if (pArray0 && m_nOutputs == 0) @@ -40,11 +35,11 @@ bool CPDF_ExpIntFunc::v_Init(const CPDF_Object* pObj, m_nOutputs = 1; const CPDF_Array* pArray1 = pDict->GetArrayFor("C1"); - m_pBeginValues = FX_Alloc2D(float, m_nOutputs, 2); - m_pEndValues = FX_Alloc2D(float, m_nOutputs, 2); + m_BeginValues = pdfium::Vector2D<float>(m_nOutputs, 2); + m_EndValues = pdfium::Vector2D<float>(m_nOutputs, 2); for (uint32_t i = 0; i < m_nOutputs; i++) { - m_pBeginValues[i] = pArray0 ? pArray0->GetFloatAt(i) : 0.0f; - m_pEndValues[i] = pArray1 ? pArray1->GetFloatAt(i) : 1.0f; + m_BeginValues[i] = pArray0 ? pArray0->GetFloatAt(i) : 0.0f; + m_EndValues[i] = pArray1 ? pArray1->GetFloatAt(i) : 1.0f; } FX_SAFE_UINT32 nOutputs = m_nOutputs; @@ -58,11 +53,12 @@ bool CPDF_ExpIntFunc::v_Init(const CPDF_Object* pObj, } bool CPDF_ExpIntFunc::v_Call(const float* inputs, float* results) const { - for (uint32_t i = 0; i < m_nInputs; i++) + for (uint32_t i = 0; i < m_nInputs; i++) { for (uint32_t j = 0; j < m_nOrigOutputs; j++) { results[i * m_nOrigOutputs + j] = - m_pBeginValues[j] + FXSYS_pow(inputs[i], m_Exponent) * - (m_pEndValues[j] - m_pBeginValues[j]); + m_BeginValues[j] + FXSYS_pow(inputs[i], m_Exponent) * + (m_EndValues[j] - m_BeginValues[j]); } + } return true; } |