diff options
-rw-r--r-- | core/fpdfapi/page/cpdf_expintfunc.cpp | 30 | ||||
-rw-r--r-- | core/fpdfapi/page/cpdf_expintfunc.h | 5 | ||||
-rw-r--r-- | core/fxge/skia/fx_skia_device.cpp | 12 |
3 files changed, 22 insertions, 25 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; } diff --git a/core/fpdfapi/page/cpdf_expintfunc.h b/core/fpdfapi/page/cpdf_expintfunc.h index 9ea9f5ccb8..c93cc86cff 100644 --- a/core/fpdfapi/page/cpdf_expintfunc.h +++ b/core/fpdfapi/page/cpdf_expintfunc.h @@ -8,6 +8,7 @@ #define CORE_FPDFAPI_PAGE_CPDF_EXPINTFUNC_H_ #include <set> +#include <vector> #include "core/fpdfapi/page/cpdf_function.h" @@ -23,8 +24,8 @@ class CPDF_ExpIntFunc : public CPDF_Function { uint32_t m_nOrigOutputs = 0; float m_Exponent = 0.0f; - float* m_pBeginValues = nullptr; - float* m_pEndValues = nullptr; + std::vector<float> m_BeginValues; + std::vector<float> m_EndValues; }; #endif // CORE_FPDFAPI_PAGE_CPDF_EXPINTFUNC_H_ diff --git a/core/fxge/skia/fx_skia_device.cpp b/core/fxge/skia/fx_skia_device.cpp index adc02fe8a4..87cb178a52 100644 --- a/core/fxge/skia/fx_skia_device.cpp +++ b/core/fxge/skia/fx_skia_device.cpp @@ -363,13 +363,13 @@ bool AddColors(const CPDF_ExpIntFunc* pFunc, SkTDArray<SkColor>* skColors) { if (pFunc->m_nOrigOutputs != 3) return false; skColors->push( - SkColorSetARGB(0xFF, SkUnitScalarClampToByte(pFunc->m_pBeginValues[0]), - SkUnitScalarClampToByte(pFunc->m_pBeginValues[1]), - SkUnitScalarClampToByte(pFunc->m_pBeginValues[2]))); + SkColorSetARGB(0xFF, SkUnitScalarClampToByte(pFunc->m_BeginValues[0]), + SkUnitScalarClampToByte(pFunc->m_BeginValues[1]), + SkUnitScalarClampToByte(pFunc->m_BeginValues[2]))); skColors->push( - SkColorSetARGB(0xFF, SkUnitScalarClampToByte(pFunc->m_pEndValues[0]), - SkUnitScalarClampToByte(pFunc->m_pEndValues[1]), - SkUnitScalarClampToByte(pFunc->m_pEndValues[2]))); + SkColorSetARGB(0xFF, SkUnitScalarClampToByte(pFunc->m_EndValues[0]), + SkUnitScalarClampToByte(pFunc->m_EndValues[1]), + SkUnitScalarClampToByte(pFunc->m_EndValues[2]))); return true; } |