Răsfoiți Sursa

Merge pull request #38091 from RandomShaper/fix_jpgd_msvc2017

Fix compilation of jpgd.cpp on MSVC 2017
Rémi Verschelde 5 ani în urmă
părinte
comite
acfca3b77b

+ 2 - 0
thirdparty/README.md

@@ -189,6 +189,8 @@ Files extracted from upstream source:
 
 - `jpgd*.{c,h}`
 
+Patches in the `patches` directory should be re-applied after updates.
+
 
 ## libogg
 

+ 3 - 3
thirdparty/jpeg-compressor/jpgd.cpp

@@ -2126,7 +2126,7 @@ namespace jpgd {
 
 	int jpeg_decoder::decode_next_mcu_row()
 	{
-		if (setjmp(m_jmp_state))
+		if (::setjmp(m_jmp_state))
 			return JPGD_FAILED;
 
 		const bool chroma_y_filtering = ((m_flags & cFlagBoxChromaFiltering) == 0) && ((m_scan_type == JPGD_YH2V2) || (m_scan_type == JPGD_YH1V2));
@@ -3042,7 +3042,7 @@ namespace jpgd {
 
 	jpeg_decoder::jpeg_decoder(jpeg_decoder_stream* pStream, uint32_t flags)
 	{
-		if (setjmp(m_jmp_state))
+		if (::setjmp(m_jmp_state))
 			return;
 		decode_init(pStream, flags);
 	}
@@ -3055,7 +3055,7 @@ namespace jpgd {
 		if (m_error_code)
 			return JPGD_FAILED;
 
-		if (setjmp(m_jmp_state))
+		if (::setjmp(m_jmp_state))
 			return JPGD_FAILED;
 
 		decode_start();

+ 31 - 0
thirdparty/jpeg-compressor/patches/fix-msvc2017-build.patch

@@ -0,0 +1,31 @@
+diff --git a/thirdparty/jpeg-compressor/jpgd.cpp b/thirdparty/jpeg-compressor/jpgd.cpp
+index a0c494db61..257d0b7574 100644
+--- a/thirdparty/jpeg-compressor/jpgd.cpp
++++ b/thirdparty/jpeg-compressor/jpgd.cpp
+@@ -2126,7 +2126,7 @@ namespace jpgd {
+ 
+ 	int jpeg_decoder::decode_next_mcu_row()
+ 	{
+-		if (setjmp(m_jmp_state))
++		if (::setjmp(m_jmp_state))
+ 			return JPGD_FAILED;
+ 
+ 		const bool chroma_y_filtering = ((m_flags & cFlagBoxChromaFiltering) == 0) && ((m_scan_type == JPGD_YH2V2) || (m_scan_type == JPGD_YH1V2));
+@@ -3042,7 +3042,7 @@ namespace jpgd {
+ 
+ 	jpeg_decoder::jpeg_decoder(jpeg_decoder_stream* pStream, uint32_t flags)
+ 	{
+-		if (setjmp(m_jmp_state))
++		if (::setjmp(m_jmp_state))
+ 			return;
+ 		decode_init(pStream, flags);
+ 	}
+@@ -3055,7 +3055,7 @@ namespace jpgd {
+ 		if (m_error_code)
+ 			return JPGD_FAILED;
+ 
+-		if (setjmp(m_jmp_state))
++		if (::setjmp(m_jmp_state))
+ 			return JPGD_FAILED;
+ 
+ 		decode_start();