diff options
author | Marti Maria <info@littlecms.com> | 2019-01-21 16:43:28 +0100 |
---|---|---|
committer | Marti Maria <info@littlecms.com> | 2019-01-21 16:43:39 +0100 |
commit | b5b36cd062c968fd3e1c5c0c37f9392bc7a47ddf (patch) | |
tree | fe36d3a3d89d3e6ec82591eaacd06eb1d817225c /include | |
parent | 239fc8734f180f0847d4405f32dd1459ee30ba98 (diff) | |
download | lcms2-b5b36cd062c968fd3e1c5c0c37f9392bc7a47ddf.tar.gz |
provide a way to avoid "register" storage class
C++17 seems to require to travel back in time and modify C99 spec
Diffstat (limited to 'include')
-rw-r--r-- | include/lcms2.h | 26 | ||||
-rw-r--r-- | include/lcms2_plugin.h | 20 |
2 files changed, 28 insertions, 18 deletions
diff --git a/include/lcms2.h b/include/lcms2.h index 345672c..d7e8c16 100644 --- a/include/lcms2.h +++ b/include/lcms2.h @@ -23,7 +23,7 @@ // //--------------------------------------------------------------------------------- // -// Version 2.9rc3 +// Version 2.10alpha // #ifndef _lcms2_H @@ -61,6 +61,9 @@ // Uncomment this for special windows mutex initialization (see lcms2_internal.h) // #define CMS_RELY_ON_WINDOWS_STATIC_MUTEX_INIT +// Uncomment this to remove the "CMSREGISTER" storage class +// #define CMS_NO_REGISTER_KEYWORD 1 + // ********** End of configuration toggles ****************************** // Needed for streams @@ -78,7 +81,7 @@ extern "C" { #endif // Version/release -#define LCMS_VERSION 2090 +#define LCMS_VERSION 2100 // I will give the chance of redefining basic types for compilers that are not fully C99 compliant #ifndef CMS_BASIC_TYPES_ALREADY_DEFINED @@ -148,6 +151,13 @@ typedef double cmsFloat64Number; #endif #endif +// Handle "register" keyword +#if defined(CMS_NO_REGISTER_KEYWORD) && !defined(CMS_DLL) && !defined(CMS_DLL_BUILD) +# define CMSREGISTER +#else +# define CMSREGISTER register +#endif + // In the case 64 bit numbers are not supported by the compiler #ifdef CMS_DONT_USE_INT64 typedef cmsUInt32Number cmsUInt64Number[2]; @@ -1247,13 +1257,13 @@ CMSAPI cmsStageSignature CMSEXPORT cmsStageType(const cmsStage* mpe); CMSAPI void* CMSEXPORT cmsStageData(const cmsStage* mpe); // Sampling -typedef cmsInt32Number (* cmsSAMPLER16) (register const cmsUInt16Number In[], - register cmsUInt16Number Out[], - register void * Cargo); +typedef cmsInt32Number (* cmsSAMPLER16) (CMSREGISTER const cmsUInt16Number In[], + CMSREGISTER cmsUInt16Number Out[], + CMSREGISTER void * Cargo); -typedef cmsInt32Number (* cmsSAMPLERFLOAT)(register const cmsFloat32Number In[], - register cmsFloat32Number Out[], - register void * Cargo); +typedef cmsInt32Number (* cmsSAMPLERFLOAT)(CMSREGISTER const cmsFloat32Number In[], + CMSREGISTER cmsFloat32Number Out[], + CMSREGISTER void * Cargo); // Use this flag to prevent changes being written to destination #define SAMPLER_INSPECT 0x01000000 diff --git a/include/lcms2_plugin.h b/include/lcms2_plugin.h index 17bec42..43fa01e 100644 --- a/include/lcms2_plugin.h +++ b/include/lcms2_plugin.h @@ -255,9 +255,9 @@ struct _cms_interp_struc; // 16 bits forward interpolation. This function performs precision-limited linear interpolation // and is supposed to be quite fast. Implementation may be tetrahedral or trilinear, and plug-ins may // choose to implement any other interpolation algorithm. -typedef void (* _cmsInterpFn16)(register const cmsUInt16Number Input[], - register cmsUInt16Number Output[], - register const struct _cms_interp_struc* p); +typedef void (* _cmsInterpFn16)(CMSREGISTER const cmsUInt16Number Input[], + CMSREGISTER cmsUInt16Number Output[], + CMSREGISTER const struct _cms_interp_struc* p); // Floating point forward interpolation. Full precision interpolation using floats. This is not a // time critical function. Implementation may be tetrahedral or trilinear, and plug-ins may @@ -340,10 +340,10 @@ typedef struct { struct _cmstransform_struct; -typedef cmsUInt8Number* (* cmsFormatter16)(register struct _cmstransform_struct* CMMcargo, - register cmsUInt16Number Values[], - register cmsUInt8Number* Buffer, - register cmsUInt32Number Stride); +typedef cmsUInt8Number* (* cmsFormatter16)(CMSREGISTER struct _cmstransform_struct* CMMcargo, + CMSREGISTER cmsUInt16Number Values[], + CMSREGISTER cmsUInt8Number* Buffer, + CMSREGISTER cmsUInt32Number Stride); typedef cmsUInt8Number* (* cmsFormatterFloat)(struct _cmstransform_struct* CMMcargo, cmsFloat32Number Values[], @@ -541,9 +541,9 @@ typedef struct { // the optimization search. Or FALSE if it is unable to optimize and want to give a chance // to the rest of optimizers. -typedef void (* _cmsOPTeval16Fn)(register const cmsUInt16Number In[], - register cmsUInt16Number Out[], - register const void* Data); +typedef void (* _cmsOPTeval16Fn)(CMSREGISTER const cmsUInt16Number In[], + CMSREGISTER cmsUInt16Number Out[], + CMSREGISTER const void* Data); typedef cmsBool (* _cmsOPToptimizeFn)(cmsPipeline** Lut, |