Merge branch 'master' into dev
diff --git a/ChangeLog.md b/ChangeLog.md
index 3a904a5..ccf98a8 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -119,6 +119,9 @@
images by approximately 70-100% and the decompression of RGB images by
approximately 2-3.5x.
+14. Fixed a build error when building with older MinGW releases (regression
+caused by 1.5.1[7].)
+
1.5.3
=====
diff --git a/jmemmgr.c b/jmemmgr.c
index 192a58c..508ca74 100644
--- a/jmemmgr.c
+++ b/jmemmgr.c
@@ -32,7 +32,7 @@
#include "jinclude.h"
#include "jpeglib.h"
#include "jmemsys.h" /* import the system-dependent declarations */
-#ifndef _WIN32
+#if !defined(_MSC_VER) || _MSC_VER > 1600
#include <stdint.h>
#endif
#include <limits.h>
diff --git a/release/installer.nsi.in b/release/installer.nsi.in
index ec03f5e..02db342 100755
--- a/release/installer.nsi.in
+++ b/release/installer.nsi.in
@@ -1,7 +1,7 @@
!include x64.nsh
Name "@CMAKE_PROJECT_NAME@ SDK for @INST_PLATFORM@"
OutFile "@CMAKE_CURRENT_BINARY_DIR@\${BUILDDIR}@INST_NAME@.exe"
-InstallDir @INST_DIR@
+InstallDir "@INST_DIR@"
SetCompressor bzip2
diff --git a/simd/arm/jsimd.c b/simd/arm/jsimd.c
index 8fcd6e3..d118bea 100644
--- a/simd/arm/jsimd.c
+++ b/simd/arm/jsimd.c
@@ -3,7 +3,7 @@
*
* Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
* Copyright (C) 2011, Nokia Corporation and/or its subsidiary(-ies).
- * Copyright (C) 2009-2011, 2013-2014, 2016, D. R. Commander.
+ * Copyright (C) 2009-2011, 2013-2014, 2016, 2018, D. R. Commander.
* Copyright (C) 2015-2016, Matthieu Darbois.
*
* Based on the x86 SIMD extension for IJG JPEG library,
@@ -102,7 +102,9 @@
LOCAL(void)
init_simd(void)
{
+#ifndef NO_GETENV
char *env = NULL;
+#endif
#if !defined(__ARM_NEON__) && defined(__linux__) || defined(ANDROID) || defined(__ANDROID__)
int bufsize = 1024; /* an initial guess for the line buffer size limit */
#endif
@@ -125,6 +127,7 @@
}
#endif
+#ifndef NO_GETENV
/* Force different settings through environment variables */
env = getenv("JSIMD_FORCENEON");
if ((env != NULL) && (strcmp(env, "1") == 0))
@@ -135,6 +138,7 @@
env = getenv("JSIMD_NOHUFFENC");
if ((env != NULL) && (strcmp(env, "1") == 0))
simd_huffman = 0;
+#endif
}
GLOBAL(int)
diff --git a/simd/arm64/jsimd.c b/simd/arm64/jsimd.c
index b7f019d..54806e5 100644
--- a/simd/arm64/jsimd.c
+++ b/simd/arm64/jsimd.c
@@ -3,7 +3,7 @@
*
* Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
* Copyright (C) 2011, Nokia Corporation and/or its subsidiary(-ies).
- * Copyright (C) 2009-2011, 2013-2014, 2016, D. R. Commander.
+ * Copyright (C) 2009-2011, 2013-2014, 2016, 2018, D. R. Commander.
* Copyright (C) 2015-2016, Matthieu Darbois.
*
* Based on the x86 SIMD extension for IJG JPEG library,
@@ -122,7 +122,9 @@
LOCAL(void)
init_simd(void)
{
+#ifndef NO_GETENV
char *env = NULL;
+#endif
#if defined(__linux__) || defined(ANDROID) || defined(__ANDROID__)
int bufsize = 1024; /* an initial guess for the line buffer size limit */
#endif
@@ -141,6 +143,7 @@
}
#endif
+#ifndef NO_GETENV
/* Force different settings through environment variables */
env = getenv("JSIMD_FORCENEON");
if ((env != NULL) && (strcmp(env, "1") == 0))
@@ -161,6 +164,7 @@
simd_features |= JSIMD_FASTST3;
if ((env != NULL) && (strcmp(env, "0") == 0))
simd_features &= ~JSIMD_FASTST3;
+#endif
}
GLOBAL(int)
diff --git a/simd/i386/jsimd.c b/simd/i386/jsimd.c
index 1e22384..d251531 100644
--- a/simd/i386/jsimd.c
+++ b/simd/i386/jsimd.c
@@ -42,13 +42,16 @@
LOCAL(void)
init_simd(void)
{
+#ifndef NO_GETENV
char *env = NULL;
+#endif
if (simd_support != ~0U)
return;
simd_support = jpeg_simd_cpu_support();
+#ifndef NO_GETENV
/* Force different settings through environment variables */
env = getenv("JSIMD_FORCEMMX");
if ((env != NULL) && (strcmp(env, "1") == 0))
@@ -71,6 +74,7 @@
env = getenv("JSIMD_NOHUFFENC");
if ((env != NULL) && (strcmp(env, "1") == 0))
simd_huffman = 0;
+#endif
}
GLOBAL(int)
diff --git a/simd/loongson/jsimd.c b/simd/loongson/jsimd.c
index 0f5c0e8..132798a 100644
--- a/simd/loongson/jsimd.c
+++ b/simd/loongson/jsimd.c
@@ -2,7 +2,7 @@
* jsimd_loongson.c
*
* Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
- * Copyright (C) 2009-2011, 2014, 2016, D. R. Commander.
+ * Copyright (C) 2009-2011, 2014, 2016, 2018, D. R. Commander.
* Copyright (C) 2013-2014, MIPS Technologies, Inc., California.
* Copyright (C) 2015, Matthieu Darbois.
* Copyright (C) 2016-2017, Loongson Technology Corporation Limited, BeiJing.
@@ -34,17 +34,21 @@
LOCAL(void)
init_simd(void)
{
+#ifndef NO_GETENV
char *env = NULL;
+#endif
if (simd_support != ~0U)
return;
simd_support |= JSIMD_MMI;
+#ifndef NO_GETENV
/* Force different settings through environment variables */
env = getenv("JSIMD_FORCENONE");
if ((env != NULL) && (strcmp(env, "1") == 0))
simd_support = 0;
+#endif
}
GLOBAL(int)
diff --git a/simd/mips/jsimd.c b/simd/mips/jsimd.c
index a9c7ebd..1ff1053 100644
--- a/simd/mips/jsimd.c
+++ b/simd/mips/jsimd.c
@@ -2,7 +2,7 @@
* jsimd_mips.c
*
* Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
- * Copyright (C) 2009-2011, 2014, 2016, D. R. Commander.
+ * Copyright (C) 2009-2011, 2014, 2016, 2018, D. R. Commander.
* Copyright (C) 2013-2014, MIPS Technologies, Inc., California.
* Copyright (C) 2015, Matthieu Darbois.
*
@@ -64,7 +64,9 @@
LOCAL(void)
init_simd(void)
{
+#ifndef NO_GETENV
char *env = NULL;
+#endif
if (simd_support != ~0U)
return;
@@ -81,6 +83,7 @@
return;
#endif
+#ifndef NO_GETENV
/* Force different settings through environment variables */
env = getenv("JSIMD_FORCEDSPR2");
if ((env != NULL) && (strcmp(env, "1") == 0))
@@ -88,6 +91,7 @@
env = getenv("JSIMD_FORCENONE");
if ((env != NULL) && (strcmp(env, "1") == 0))
simd_support = 0;
+#endif
}
static const int mips_idct_ifast_coefs[4] = {
diff --git a/simd/powerpc/jsimd.c b/simd/powerpc/jsimd.c
index 53f1a7d..84d58e5 100644
--- a/simd/powerpc/jsimd.c
+++ b/simd/powerpc/jsimd.c
@@ -2,7 +2,7 @@
* jsimd_powerpc.c
*
* Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
- * Copyright (C) 2009-2011, 2014-2016, D. R. Commander.
+ * Copyright (C) 2009-2011, 2014-2016, 2018, D. R. Commander.
* Copyright (C) 2015, Matthieu Darbois.
*
* Based on the x86 SIMD extension for IJG JPEG library,
@@ -111,7 +111,9 @@
LOCAL(void)
init_simd(void)
{
+#ifndef NO_GETENV
char *env = NULL;
+#endif
#if !defined(__ALTIVEC__) && (defined(__linux__) || defined(ANDROID) || defined(__ANDROID__))
int bufsize = 1024; /* an initial guess for the line buffer size limit */
#elif defined(__amigaos4__)
@@ -144,6 +146,7 @@
simd_support |= JSIMD_ALTIVEC;
#endif
+#ifndef NO_GETENV
/* Force different settings through environment variables */
env = getenv("JSIMD_FORCEALTIVEC");
if ((env != NULL) && (strcmp(env, "1") == 0))
@@ -151,6 +154,7 @@
env = getenv("JSIMD_FORCENONE");
if ((env != NULL) && (strcmp(env, "1") == 0))
simd_support = 0;
+#endif
}
GLOBAL(int)
diff --git a/simd/x86_64/jsimd.c b/simd/x86_64/jsimd.c
index 03a4da3..4125248 100644
--- a/simd/x86_64/jsimd.c
+++ b/simd/x86_64/jsimd.c
@@ -42,13 +42,16 @@
LOCAL(void)
init_simd(void)
{
+#ifndef NO_GETENV
char *env = NULL;
+#endif
if (simd_support != ~0U)
return;
simd_support = jpeg_simd_cpu_support();
+#ifndef NO_GETENV
/* Force different settings through environment variables */
env = getenv("JSIMD_FORCESSE2");
if ((env != NULL) && (strcmp(env, "1") == 0))
@@ -62,6 +65,7 @@
env = getenv("JSIMD_NOHUFFENC");
if ((env != NULL) && (strcmp(env, "1") == 0))
simd_huffman = 0;
+#endif
}
GLOBAL(int)
diff --git a/turbojpeg.c b/turbojpeg.c
index bb061a2..aa7d7a7 100644
--- a/turbojpeg.c
+++ b/turbojpeg.c
@@ -626,9 +626,11 @@
cinfo->image_width = width;
cinfo->image_height = height;
+#ifndef NO_PUTENV
if (flags & TJFLAG_FORCEMMX) putenv("JSIMD_FORCEMMX=1");
else if (flags & TJFLAG_FORCESSE) putenv("JSIMD_FORCESSE=1");
else if (flags & TJFLAG_FORCESSE2) putenv("JSIMD_FORCESSE2=1");
+#endif
if (flags & TJFLAG_NOREALLOC) {
alloc = 0; *jpegSize = tjBufSize(width, height, jpegSubsamp);
@@ -724,9 +726,11 @@
cinfo->image_width = width;
cinfo->image_height = height;
+#ifndef NO_PUTENV
if (flags & TJFLAG_FORCEMMX) putenv("JSIMD_FORCEMMX=1");
else if (flags & TJFLAG_FORCESSE) putenv("JSIMD_FORCESSE=1");
else if (flags & TJFLAG_FORCESSE2) putenv("JSIMD_FORCESSE2=1");
+#endif
if (setCompDefaults(cinfo, pixelFormat, subsamp, -1, flags) == -1) return -1;
@@ -932,9 +936,11 @@
cinfo->image_width = width;
cinfo->image_height = height;
+#ifndef NO_PUTENV
if (flags & TJFLAG_FORCEMMX) putenv("JSIMD_FORCEMMX=1");
else if (flags & TJFLAG_FORCESSE) putenv("JSIMD_FORCESSE=1");
else if (flags & TJFLAG_FORCESSE2) putenv("JSIMD_FORCESSE2=1");
+#endif
if (flags & TJFLAG_NOREALLOC) {
alloc = 0; *jpegSize = tjBufSize(width, height, subsamp);
@@ -1210,9 +1216,11 @@
pitch < 0 || height < 0 || pixelFormat < 0 || pixelFormat >= TJ_NUMPF)
_throw("tjDecompress2(): Invalid argument");
+#ifndef NO_PUTENV
if (flags & TJFLAG_FORCEMMX) putenv("JSIMD_FORCEMMX=1");
else if (flags & TJFLAG_FORCESSE) putenv("JSIMD_FORCESSE=1");
else if (flags & TJFLAG_FORCESSE2) putenv("JSIMD_FORCESSE2=1");
+#endif
if (setjmp(this->jerr.setjmp_buffer)) {
/* If we get here, the JPEG code has signaled an error. */
@@ -1376,9 +1384,11 @@
dinfo->image_width = width;
dinfo->image_height = height;
+#ifndef NO_PUTENV
if (flags & TJFLAG_FORCEMMX) putenv("JSIMD_FORCEMMX=1");
else if (flags & TJFLAG_FORCESSE) putenv("JSIMD_FORCESSE=1");
else if (flags & TJFLAG_FORCESSE2) putenv("JSIMD_FORCESSE2=1");
+#endif
if (setDecodeDefaults(dinfo, pixelFormat, subsamp, flags) == -1) {
retval = -1; goto bailout;
@@ -1542,9 +1552,11 @@
width < 0 || height < 0)
_throw("tjDecompressToYUVPlanes(): Invalid argument");
+#ifndef NO_PUTENV
if (flags & TJFLAG_FORCEMMX) putenv("JSIMD_FORCEMMX=1");
else if (flags & TJFLAG_FORCESSE) putenv("JSIMD_FORCESSE=1");
else if (flags & TJFLAG_FORCESSE2) putenv("JSIMD_FORCESSE2=1");
+#endif
if (setjmp(this->jerr.setjmp_buffer)) {
/* If we get here, the JPEG code has signaled an error. */
@@ -1796,9 +1808,11 @@
dstSizes == NULL || t == NULL || flags < 0)
_throw("tjTransform(): Invalid argument");
+#ifndef NO_PUTENV
if (flags & TJFLAG_FORCEMMX) putenv("JSIMD_FORCEMMX=1");
else if (flags & TJFLAG_FORCESSE) putenv("JSIMD_FORCESSE=1");
else if (flags & TJFLAG_FORCESSE2) putenv("JSIMD_FORCESSE2=1");
+#endif
if ((xinfo =
(jpeg_transform_info *)malloc(sizeof(jpeg_transform_info) * n)) == NULL)