summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMarti Maria <info@littlecms.com>2019-01-21 16:43:28 +0100
committerMarti Maria <info@littlecms.com>2019-01-21 16:43:39 +0100
commitb5b36cd062c968fd3e1c5c0c37f9392bc7a47ddf (patch)
treefe36d3a3d89d3e6ec82591eaacd06eb1d817225c /include
parent239fc8734f180f0847d4405f32dd1459ee30ba98 (diff)
downloadlcms2-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.h26
-rw-r--r--include/lcms2_plugin.h20
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,