| OLD | NEW |
| 1 //------------------------------------------------------------------------------
--- | 1 //------------------------------------------------------------------------------
--- |
| 2 // | 2 // |
| 3 // Little Color Management System | 3 // Little Color Management System |
| 4 // Copyright (c) 1998-2014 Marti Maria Saguer | 4 // Copyright (c) 1998-2014 Marti Maria Saguer |
| 5 // | 5 // |
| 6 // Permission is hereby granted, free of charge, to any person obtaining | 6 // Permission is hereby granted, free of charge, to any person obtaining |
| 7 // a copy of this software and associated documentation files (the "Software"), | 7 // a copy of this software and associated documentation files (the "Software"), |
| 8 // to deal in the Software without restriction, including without limitation | 8 // to deal in the Software without restriction, including without limitation |
| 9 // the rights to use, copy, modify, merge, publish, distribute, sublicense, | 9 // the rights to use, copy, modify, merge, publish, distribute, sublicense, |
| 10 // and/or sell copies of the Software, and to permit persons to whom the Softwar
e | 10 // and/or sell copies of the Software, and to permit persons to whom the Softwar
e |
| (...skipping 3950 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3961 if (!_cmsReadFloat32Number(io, &f)) goto Error; | 3961 if (!_cmsReadFloat32Number(io, &f)) goto Error; |
| 3962 Segments[i].Params[j] = f; | 3962 Segments[i].Params[j] = f; |
| 3963 } | 3963 } |
| 3964 } | 3964 } |
| 3965 break; | 3965 break; |
| 3966 | 3966 |
| 3967 | 3967 |
| 3968 case cmsSigSampledCurveSeg: { | 3968 case cmsSigSampledCurveSeg: { |
| 3969 cmsUInt32Number Count; | 3969 cmsUInt32Number Count; |
| 3970 | 3970 |
| 3971 if (!_cmsReadUInt32Number(io, &Count)) return NULL; | 3971 if (!_cmsReadUInt32Number(io, &Count)) goto Error; |
| 3972 | 3972 |
| 3973 Segments[i].nGridPoints = Count; | 3973 Segments[i].nGridPoints = Count; |
| 3974 Segments[i].SampledPoints = (cmsFloat32Number*) _cmsCalloc(self
->ContextID, Count, sizeof(cmsFloat32Number)); | 3974 Segments[i].SampledPoints = (cmsFloat32Number*) _cmsCalloc(self
->ContextID, Count, sizeof(cmsFloat32Number)); |
| 3975 if (Segments[i].SampledPoints == NULL) goto Error; | 3975 if (Segments[i].SampledPoints == NULL) goto Error; |
| 3976 | 3976 |
| 3977 for (j=0; j < Count; j++) { | 3977 for (j=0; j < Count; j++) { |
| 3978 if (!_cmsReadFloat32Number(io, &Segments[i].SampledPoints[j]
)) goto Error; | 3978 if (!_cmsReadFloat32Number(io, &Segments[i].SampledPoints[j]
)) goto Error; |
| 3979 } | 3979 } |
| 3980 } | 3980 } |
| 3981 break; | 3981 break; |
| 3982 | 3982 |
| 3983 default: | 3983 default: |
| 3984 { | 3984 { |
| 3985 char String[5]; | 3985 char String[5]; |
| 3986 | 3986 |
| 3987 _cmsTagSignature2String(String, (cmsTagSignature) ElementSig); | 3987 _cmsTagSignature2String(String, (cmsTagSignature) ElementSig); |
| 3988 cmsSignalError(self->ContextID, cmsERROR_UNKNOWN_EXTENSION, "Unk
nown curve element type '%s' found.", String); | 3988 cmsSignalError(self->ContextID, cmsERROR_UNKNOWN_EXTENSION, "Unk
nown curve element type '%s' found.", String); |
| 3989 } | 3989 } |
| 3990 return NULL; | 3990 goto Error; |
| 3991 | 3991 |
| 3992 } | 3992 } |
| 3993 } | 3993 } |
| 3994 | 3994 |
| 3995 Curve = cmsBuildSegmentedToneCurve(self ->ContextID, nSegments, Segments); | 3995 Curve = cmsBuildSegmentedToneCurve(self ->ContextID, nSegments, Segments); |
| 3996 | 3996 |
| 3997 for (i=0; i < nSegments; i++) { | 3997 for (i=0; i < nSegments; i++) { |
| 3998 if (Segments[i].SampledPoints) _cmsFree(self ->ContextID, Segments[i].S
ampledPoints); | 3998 if (Segments[i].SampledPoints) _cmsFree(self ->ContextID, Segments[i].S
ampledPoints); |
| 3999 } | 3999 } |
| 4000 _cmsFree(self ->ContextID, Segments); | 4000 _cmsFree(self ->ContextID, Segments); |
| 4001 return Curve; | 4001 return Curve; |
| 4002 | 4002 |
| 4003 Error: | 4003 Error: |
| 4004 if (Segments) _cmsFree(self ->ContextID, Segments); | 4004 if (Segments) { |
| 4005 for (i=0; i < nSegments; i++) { |
| 4006 if (Segments[i].SampledPoints) _cmsFree(self ->ContextID, Segments[
i].SampledPoints); |
| 4007 } |
| 4008 _cmsFree(self ->ContextID, Segments); |
| 4009 } |
| 4005 return NULL; | 4010 return NULL; |
| 4006 } | 4011 } |
| 4007 | 4012 |
| 4008 | 4013 |
| 4009 static | 4014 static |
| 4010 cmsBool ReadMPECurve(struct _cms_typehandler_struct* self, | 4015 cmsBool ReadMPECurve(struct _cms_typehandler_struct* self, |
| 4011 cmsIOHANDLER* io, | 4016 cmsIOHANDLER* io, |
| 4012 void* Cargo, | 4017 void* Cargo, |
| 4013 cmsUInt32Number n, | 4018 cmsUInt32Number n, |
| 4014 cmsUInt32Number SizeOfTag) | 4019 cmsUInt32Number SizeOfTag) |
| (...skipping 1555 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5570 | 5575 |
| 5571 for (pt = SupportedTags; | 5576 for (pt = SupportedTags; |
| 5572 pt != NULL; | 5577 pt != NULL; |
| 5573 pt = pt ->Next) { | 5578 pt = pt ->Next) { |
| 5574 | 5579 |
| 5575 if (sig == pt -> Signature) return &pt ->Descriptor; | 5580 if (sig == pt -> Signature) return &pt ->Descriptor; |
| 5576 } | 5581 } |
| 5577 | 5582 |
| 5578 return NULL; | 5583 return NULL; |
| 5579 } | 5584 } |
| OLD | NEW |