summaryrefslogtreecommitdiff
path: root/lcms2mt/src/cmsopt.c
diff options
context:
space:
mode:
Diffstat (limited to 'lcms2mt/src/cmsopt.c')
-rw-r--r--lcms2mt/src/cmsopt.c28
1 files changed, 22 insertions, 6 deletions
diff --git a/lcms2mt/src/cmsopt.c b/lcms2mt/src/cmsopt.c
index 7fb5e0293..8fca60f84 100644
--- a/lcms2mt/src/cmsopt.c
+++ b/lcms2mt/src/cmsopt.c
@@ -379,7 +379,20 @@ Prelin16Data* PrelinOpt16alloc(cmsContext ContextID,
p16 -> EvalCurveOut16 = (_cmsInterpFn16*) _cmsCalloc(ContextID, nOutputs, sizeof(_cmsInterpFn16));
+ if (p16->EvalCurveOut16 == NULL)
+ {
+ _cmsFree(ContextID, p16);
+ return NULL;
+ }
+
p16 -> ParamsCurveOut16 = (cmsInterpParams**) _cmsCalloc(ContextID, nOutputs, sizeof(cmsInterpParams* ));
+ if (p16->ParamsCurveOut16 == NULL)
+ {
+
+ _cmsFree(ContextID, p16->EvalCurveOut16);
+ _cmsFree(ContextID, p16);
+ return NULL;
+ }
for (i=0; i < nOutputs; i++) {
@@ -406,7 +419,10 @@ Prelin16Data* PrelinOpt16alloc(cmsContext ContextID,
// Sampler implemented by another LUT. This is a clean way to precalculate the devicelink 3D CLUT for
// almost any transform. We use floating point precision and then convert from floating point to 16 bits.
static
-cmsInt32Number XFormSampler16(cmsContext ContextID, CMSREGISTER const cmsUInt16Number In[], CMSREGISTER cmsUInt16Number Out[], CMSREGISTER void* Cargo)
+cmsInt32Number XFormSampler16(cmsContext ContextID,
+ CMSREGISTER const cmsUInt16Number In[],
+ CMSREGISTER cmsUInt16Number Out[],
+ CMSREGISTER void* Cargo)
{
cmsPipeline* Lut = (cmsPipeline*) Cargo;
cmsFloat32Number InFloat[cmsMAXCHANNELS], OutFloat[cmsMAXCHANNELS];
@@ -765,7 +781,7 @@ Error:
if (DataSetIn == NULL && DataSetOut == NULL) {
- _cmsPipelineSetOptimizationParameters(ContextID, Dest, (_cmsOPTeval16Fn) DataCLUT->Params->Interpolation.Lerp16, DataCLUT->Params, NULL, NULL);
+ _cmsPipelineSetOptimizationParameters(ContextID, Dest, (_cmsPipelineEval16Fn) DataCLUT->Params->Interpolation.Lerp16, DataCLUT->Params, NULL, NULL);
}
else {
@@ -929,9 +945,9 @@ void PrelinEval8(cmsContext ContextID,
g = (cmsUInt8Number) (Input[1] >> 8);
b = (cmsUInt8Number) (Input[2] >> 8);
- X0 = X1 = (cmsS15Fixed16Number) p8->X0[r];
- Y0 = Y1 = (cmsS15Fixed16Number) p8->Y0[g];
- Z0 = Z1 = (cmsS15Fixed16Number) p8->Z0[b];
+ X0 = (cmsS15Fixed16Number) p8->X0[r];
+ Y0 = (cmsS15Fixed16Number) p8->Y0[g];
+ Z0 = (cmsS15Fixed16Number) p8->Z0[b];
rx = p8 ->rx[r];
ry = p8 ->ry[g];
@@ -1900,7 +1916,7 @@ cmsBool _cmsRegisterOptimizationPlugin(cmsContext ContextID, cmsPluginBase* Dat
}
// The entry point for LUT optimization
-cmsBool _cmsOptimizePipeline(cmsContext ContextID,
+cmsBool CMSEXPORT _cmsOptimizePipeline(cmsContext ContextID,
cmsPipeline** PtrLut,
cmsUInt32Number Intent,
cmsUInt32Number* InputFormat,