1*3ac0a46fSAndroid Build Coastguard Workerdiff --git a/third_party/lcms/src/cmscgats.c b/third_party/lcms/src/cmscgats.c 2*3ac0a46fSAndroid Build Coastguard Workerindex a0c25c024..55f74ede8 100644 3*3ac0a46fSAndroid Build Coastguard Worker--- a/third_party/lcms/src/cmscgats.c 4*3ac0a46fSAndroid Build Coastguard Worker+++ b/third_party/lcms/src/cmscgats.c 5*3ac0a46fSAndroid Build Coastguard Worker@@ -38,7 +38,10 @@ 6*3ac0a46fSAndroid Build Coastguard Worker #define DEFAULT_DBL_FORMAT "%.10g" // Double formatting 7*3ac0a46fSAndroid Build Coastguard Worker 8*3ac0a46fSAndroid Build Coastguard Worker #ifdef CMS_IS_WINDOWS_ 9*3ac0a46fSAndroid Build Coastguard Worker-# include <io.h> 10*3ac0a46fSAndroid Build Coastguard Worker+//sunliang.liu modified 2010426 for wince error 11*3ac0a46fSAndroid Build Coastguard Worker+# ifndef _WIN32_WCE 12*3ac0a46fSAndroid Build Coastguard Worker+# include <io.h> 13*3ac0a46fSAndroid Build Coastguard Worker+# endif 14*3ac0a46fSAndroid Build Coastguard Worker # define DIR_CHAR '\\' 15*3ac0a46fSAndroid Build Coastguard Worker #else 16*3ac0a46fSAndroid Build Coastguard Worker # define DIR_CHAR '/' 17*3ac0a46fSAndroid Build Coastguard Workerdiff --git a/third_party/lcms/src/cmsgamma.c b/third_party/lcms/src/cmsgamma.c 18*3ac0a46fSAndroid Build Coastguard Workerindex eb3dd881c..6e36cf462 100644 19*3ac0a46fSAndroid Build Coastguard Worker--- a/third_party/lcms/src/cmsgamma.c 20*3ac0a46fSAndroid Build Coastguard Worker+++ b/third_party/lcms/src/cmsgamma.c 21*3ac0a46fSAndroid Build Coastguard Worker@@ -749,14 +749,19 @@ void CMSEXPORT cmsFreeToneCurve(cmsToneCurve* Curve) 22*3ac0a46fSAndroid Build Coastguard Worker { 23*3ac0a46fSAndroid Build Coastguard Worker cmsContext ContextID; 24*3ac0a46fSAndroid Build Coastguard Worker 25*3ac0a46fSAndroid Build Coastguard Worker- if (Curve == NULL) return; 26*3ac0a46fSAndroid Build Coastguard Worker+ // added by Xiaochuan Liu 27*3ac0a46fSAndroid Build Coastguard Worker+ // Curve->InterpParams may be null 28*3ac0a46fSAndroid Build Coastguard Worker+ if (Curve == NULL || Curve->InterpParams == NULL) return; 29*3ac0a46fSAndroid Build Coastguard Worker 30*3ac0a46fSAndroid Build Coastguard Worker ContextID = Curve ->InterpParams->ContextID; 31*3ac0a46fSAndroid Build Coastguard Worker 32*3ac0a46fSAndroid Build Coastguard Worker _cmsFreeInterpParams(Curve ->InterpParams); 33*3ac0a46fSAndroid Build Coastguard Worker+ Curve ->InterpParams = NULL; 34*3ac0a46fSAndroid Build Coastguard Worker 35*3ac0a46fSAndroid Build Coastguard Worker- if (Curve -> Table16) 36*3ac0a46fSAndroid Build Coastguard Worker+ if (Curve -> Table16) { 37*3ac0a46fSAndroid Build Coastguard Worker _cmsFree(ContextID, Curve ->Table16); 38*3ac0a46fSAndroid Build Coastguard Worker+ Curve ->Table16 = NULL; 39*3ac0a46fSAndroid Build Coastguard Worker+ } 40*3ac0a46fSAndroid Build Coastguard Worker 41*3ac0a46fSAndroid Build Coastguard Worker if (Curve ->Segments) { 42*3ac0a46fSAndroid Build Coastguard Worker 43*3ac0a46fSAndroid Build Coastguard Worker@@ -876,18 +881,25 @@ void CMSEXPORT cmsFreeToneCurve(cmsToneCurve* Curve) 44*3ac0a46fSAndroid Build Coastguard Worker 45*3ac0a46fSAndroid Build Coastguard Worker if (Curve ->Segments[i].SampledPoints) { 46*3ac0a46fSAndroid Build Coastguard Worker _cmsFree(ContextID, Curve ->Segments[i].SampledPoints); 47*3ac0a46fSAndroid Build Coastguard Worker+ Curve ->Segments[i].SampledPoints = NULL; 48*3ac0a46fSAndroid Build Coastguard Worker } 49*3ac0a46fSAndroid Build Coastguard Worker 50*3ac0a46fSAndroid Build Coastguard Worker- if (Curve ->SegInterp[i] != 0) 51*3ac0a46fSAndroid Build Coastguard Worker+ if (Curve ->SegInterp[i] != 0) { 52*3ac0a46fSAndroid Build Coastguard Worker _cmsFreeInterpParams(Curve->SegInterp[i]); 53*3ac0a46fSAndroid Build Coastguard Worker+ Curve->SegInterp[i] = NULL; 54*3ac0a46fSAndroid Build Coastguard Worker+ } 55*3ac0a46fSAndroid Build Coastguard Worker } 56*3ac0a46fSAndroid Build Coastguard Worker 57*3ac0a46fSAndroid Build Coastguard Worker _cmsFree(ContextID, Curve ->Segments); 58*3ac0a46fSAndroid Build Coastguard Worker+ Curve ->Segments = NULL; 59*3ac0a46fSAndroid Build Coastguard Worker _cmsFree(ContextID, Curve ->SegInterp); 60*3ac0a46fSAndroid Build Coastguard Worker+ Curve ->SegInterp = NULL; 61*3ac0a46fSAndroid Build Coastguard Worker } 62*3ac0a46fSAndroid Build Coastguard Worker 63*3ac0a46fSAndroid Build Coastguard Worker- if (Curve -> Evals) 64*3ac0a46fSAndroid Build Coastguard Worker+ if (Curve -> Evals) { 65*3ac0a46fSAndroid Build Coastguard Worker _cmsFree(ContextID, Curve -> Evals); 66*3ac0a46fSAndroid Build Coastguard Worker+ Curve -> Evals = NULL; 67*3ac0a46fSAndroid Build Coastguard Worker+ } 68*3ac0a46fSAndroid Build Coastguard Worker 69*3ac0a46fSAndroid Build Coastguard Worker _cmsFree(ContextID, Curve); 70*3ac0a46fSAndroid Build Coastguard Worker } 71*3ac0a46fSAndroid Build Coastguard Workerdiff --git a/third_party/lcms/src/cmsio0.c b/third_party/lcms/src/cmsio0.c 72*3ac0a46fSAndroid Build Coastguard Workerindex 1b026488d..cc5f89064 100644 73*3ac0a46fSAndroid Build Coastguard Worker--- a/third_party/lcms/src/cmsio0.c 74*3ac0a46fSAndroid Build Coastguard Worker+++ b/third_party/lcms/src/cmsio0.c 75*3ac0a46fSAndroid Build Coastguard Worker@@ -479,6 +479,14 @@ cmsIOHANDLER* CMSEXPORT cmsGetProfileIOhandler(cmsHPROFILE hProfile) 76*3ac0a46fSAndroid Build Coastguard Worker return Icc->IOhandler; 77*3ac0a46fSAndroid Build Coastguard Worker } 78*3ac0a46fSAndroid Build Coastguard Worker 79*3ac0a46fSAndroid Build Coastguard Worker+#ifdef _WIN32_WCE 80*3ac0a46fSAndroid Build Coastguard Worker+time_t wceex_time(time_t *timer); 81*3ac0a46fSAndroid Build Coastguard Worker+struct tm * wceex_gmtime(const time_t *timer); 82*3ac0a46fSAndroid Build Coastguard Worker+ 83*3ac0a46fSAndroid Build Coastguard Worker+#define time wceex_time 84*3ac0a46fSAndroid Build Coastguard Worker+#define gmtime wceex_gmtime 85*3ac0a46fSAndroid Build Coastguard Worker+#endif 86*3ac0a46fSAndroid Build Coastguard Worker+ 87*3ac0a46fSAndroid Build Coastguard Worker // Creates an empty structure holding all required parameters 88*3ac0a46fSAndroid Build Coastguard Worker cmsHPROFILE CMSEXPORT cmsCreateProfilePlaceholder(cmsContext ContextID) 89*3ac0a46fSAndroid Build Coastguard Worker { 90*3ac0a46fSAndroid Build Coastguard Worker@@ -570,6 +578,14 @@ int _cmsSearchTag(_cmsICCPROFILE* Icc, cmsTagSignature sig, cmsBool lFollowLinks 91*3ac0a46fSAndroid Build Coastguard Worker 92*3ac0a46fSAndroid Build Coastguard Worker // Yes, follow link 93*3ac0a46fSAndroid Build Coastguard Worker if (LinkedSig != (cmsTagSignature) 0) { 94*3ac0a46fSAndroid Build Coastguard Worker+ // fix bug mantis id#0055942 95*3ac0a46fSAndroid Build Coastguard Worker+ // assume that TRCTag and ColorantTag can't be linked. 96*3ac0a46fSAndroid Build Coastguard Worker+ // Xiaochuan Liu 2014-04-23 97*3ac0a46fSAndroid Build Coastguard Worker+ if ((sig == cmsSigRedTRCTag || sig == cmsSigGreenTRCTag || sig == cmsSigBlueTRCTag) && 98*3ac0a46fSAndroid Build Coastguard Worker+ (LinkedSig == cmsSigRedColorantTag || LinkedSig == cmsSigGreenColorantTag || LinkedSig == cmsSigBlueColorantTag)) 99*3ac0a46fSAndroid Build Coastguard Worker+ { 100*3ac0a46fSAndroid Build Coastguard Worker+ return n; 101*3ac0a46fSAndroid Build Coastguard Worker+ } 102*3ac0a46fSAndroid Build Coastguard Worker sig = LinkedSig; 103*3ac0a46fSAndroid Build Coastguard Worker } 104*3ac0a46fSAndroid Build Coastguard Worker 105*3ac0a46fSAndroid Build Coastguard Worker@@ -1363,6 +1379,12 @@ Error: 106*3ac0a46fSAndroid Build Coastguard Worker return 0; 107*3ac0a46fSAndroid Build Coastguard Worker } 108*3ac0a46fSAndroid Build Coastguard Worker 109*3ac0a46fSAndroid Build Coastguard Worker+#ifdef _WIN32_WCE 110*3ac0a46fSAndroid Build Coastguard Worker+int wceex_unlink(const char *filename); 111*3ac0a46fSAndroid Build Coastguard Worker+#ifndef remove 112*3ac0a46fSAndroid Build Coastguard Worker+# define remove wceex_unlink 113*3ac0a46fSAndroid Build Coastguard Worker+#endif 114*3ac0a46fSAndroid Build Coastguard Worker+#endif 115*3ac0a46fSAndroid Build Coastguard Worker 116*3ac0a46fSAndroid Build Coastguard Worker // Low-level save to disk. 117*3ac0a46fSAndroid Build Coastguard Worker cmsBool CMSEXPORT cmsSaveProfileToFile(cmsHPROFILE hProfile, const char* FileName) 118