diff options
Diffstat (limited to 'core/fxcodec/codec')
-rw-r--r-- | core/fxcodec/codec/fx_codec_icc.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/core/fxcodec/codec/fx_codec_icc.cpp b/core/fxcodec/codec/fx_codec_icc.cpp index 29b37d19ac..458816e77e 100644 --- a/core/fxcodec/codec/fx_codec_icc.cpp +++ b/core/fxcodec/codec/fx_codec_icc.cpp @@ -5,10 +5,10 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com #include <memory> +#include <vector> #include "core/fxcodec/codec/ccodec_iccmodule.h" #include "core/fxcodec/codec/codec_int.h" -#include "core/fxcrt/cfx_fixedbufgrow.h" namespace { @@ -124,19 +124,16 @@ void CCodec_IccModule::Translate(CLcmsCmm* pTransform, uint32_t nSrcComponents = m_nComponents; uint8_t output[4]; if (pTransform->m_bLab) { - CFX_FixedBufGrow<double, 16> inputs(nSrcComponents); - double* input = inputs; - for (uint32_t i = 0; i < nSrcComponents; ++i) - input[i] = pSrcValues[i]; - cmsDoTransform(pTransform->m_hTransform, input, output, 1); + std::vector<double> input(pSrcValues, pSrcValues + nSrcComponents); + cmsDoTransform(pTransform->m_hTransform, input.data(), output, 1); } else { - CFX_FixedBufGrow<uint8_t, 16> inputs(nSrcComponents); - uint8_t* input = inputs; + std::vector<uint8_t> input; + input.reserve(nSrcComponents); for (uint32_t i = 0; i < nSrcComponents; ++i) { - input[i] = - pdfium::clamp(static_cast<int>(pSrcValues[i] * 255.0f), 0, 255); + input.push_back( + pdfium::clamp(static_cast<int>(pSrcValues[i] * 255.0f), 0, 255)); } - cmsDoTransform(pTransform->m_hTransform, input, output, 1); + cmsDoTransform(pTransform->m_hTransform, input.data(), output, 1); } pDestValues[0] = output[2] / 255.0f; pDestValues[1] = output[1] / 255.0f; |