139 lines
4.9 KiB
Diff
139 lines
4.9 KiB
Diff
From 6f4e6ab0e4dd78460e04aca3c8f38bbf8de837b5 Mon Sep 17 00:00:00 2001
|
|
From: wang_yue111 <648774160@qq.com>
|
|
Date: Wed, 3 Mar 2021 11:01:31 +0800
|
|
Subject: [PATCH] https://github.com/ImageMagick/ImageMagick/issues/1751
|
|
|
|
---
|
|
magick/quantum-private.h | 38 +++++++++++++++++++-------------------
|
|
1 file changed, 19 insertions(+), 19 deletions(-)
|
|
|
|
diff --git a/magick/quantum-private.h b/magick/quantum-private.h
|
|
index 7d51397..d4b0143 100644
|
|
--- a/magick/quantum-private.h
|
|
+++ b/magick/quantum-private.h
|
|
@@ -327,7 +327,7 @@ static inline QuantumAny ScaleQuantumToAny(const Quantum quantum,
|
|
#if !defined(MAGICKCORE_HDRI_SUPPORT)
|
|
return((QuantumAny) ((MagickRealType) range*quantum/QuantumRange));
|
|
#else
|
|
- if (quantum <= 0.0)
|
|
+ if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
|
|
return((QuantumAny) 0UL);
|
|
if (((MagickRealType) range*quantum/QuantumRange) >= 18446744073709551615.0)
|
|
return((QuantumAny) MagickULLConstant(18446744073709551615));
|
|
@@ -368,8 +368,8 @@ static inline unsigned int ScaleQuantumToLong(const Quantum quantum)
|
|
#if !defined(MAGICKCORE_HDRI_SUPPORT)
|
|
return((unsigned int) (16843009UL*quantum));
|
|
#else
|
|
- if (quantum <= 0.0)
|
|
- return(0UL);
|
|
+ if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
|
|
+ return(0U);
|
|
if ((16843009.0*quantum) >= 4294967295.0)
|
|
return(4294967295UL);
|
|
return((unsigned int) (16843009.0*quantum+0.5));
|
|
@@ -383,8 +383,8 @@ static inline unsigned int ScaleQuantumToMap(const Quantum quantum)
|
|
#if !defined(MAGICKCORE_HDRI_SUPPORT)
|
|
return((unsigned int) quantum);
|
|
#else
|
|
- if (quantum < 0.0)
|
|
- return(0UL);
|
|
+ if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
|
|
+ return(0U);
|
|
return((unsigned int) (quantum+0.5));
|
|
#endif
|
|
}
|
|
@@ -394,7 +394,7 @@ static inline unsigned short ScaleQuantumToShort(const Quantum quantum)
|
|
#if !defined(MAGICKCORE_HDRI_SUPPORT)
|
|
return((unsigned short) (257UL*quantum));
|
|
#else
|
|
- if (quantum <= 0.0)
|
|
+ if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
|
|
return(0);
|
|
if ((257.0*quantum) >= 65535.0)
|
|
return(65535);
|
|
@@ -447,8 +447,8 @@ static inline unsigned int ScaleQuantumToLong(const Quantum quantum)
|
|
#if !defined(MAGICKCORE_HDRI_SUPPORT)
|
|
return((unsigned int) (65537UL*quantum));
|
|
#else
|
|
- if (quantum <= 0.0)
|
|
- return(0UL);
|
|
+ if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
|
|
+ return(0U);
|
|
if ((65537.0*quantum) >= 4294967295.0)
|
|
return(4294967295U);
|
|
return((unsigned int) (65537.0*quantum+0.5));
|
|
@@ -462,8 +462,8 @@ static inline unsigned int ScaleQuantumToMap(const Quantum quantum)
|
|
#if !defined(MAGICKCORE_HDRI_SUPPORT)
|
|
return((unsigned int) quantum);
|
|
#else
|
|
- if (quantum < 0.0)
|
|
- return(0UL);
|
|
+ if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
|
|
+ return(0U);
|
|
return((unsigned int) (quantum+0.5));
|
|
#endif
|
|
}
|
|
@@ -473,7 +473,7 @@ static inline unsigned short ScaleQuantumToShort(const Quantum quantum)
|
|
#if !defined(MAGICKCORE_HDRI_SUPPORT)
|
|
return((unsigned short) quantum);
|
|
#else
|
|
- if (quantum <= 0.0)
|
|
+ if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
|
|
return(0);
|
|
if (quantum >= 65535.0)
|
|
return(65535);
|
|
@@ -518,8 +518,8 @@ static inline unsigned int ScaleQuantumToLong(const Quantum quantum)
|
|
#if !defined(MAGICKCORE_HDRI_SUPPORT)
|
|
return((unsigned int) quantum);
|
|
#else
|
|
- if (quantum <= 0.0)
|
|
- return(0);
|
|
+ if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
|
|
+ return(0U);
|
|
if ((quantum) >= 4294967295.0)
|
|
return(4294967295);
|
|
return((unsigned int) (quantum+0.5));
|
|
@@ -528,8 +528,8 @@ static inline unsigned int ScaleQuantumToLong(const Quantum quantum)
|
|
|
|
static inline unsigned int ScaleQuantumToMap(const Quantum quantum)
|
|
{
|
|
- if (quantum < 0.0)
|
|
- return(0UL);
|
|
+ if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
|
|
+ return(0U);
|
|
if ((quantum/65537) >= (Quantum) MaxMap)
|
|
return((unsigned int) MaxMap);
|
|
#if !defined(MAGICKCORE_HDRI_SUPPORT)
|
|
@@ -546,7 +546,7 @@ static inline unsigned short ScaleQuantumToShort(const Quantum quantum)
|
|
return((unsigned short) ((quantum+MagickULLConstant(32768))/
|
|
MagickULLConstant(65537)));
|
|
#else
|
|
- if (quantum <= 0.0)
|
|
+ if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
|
|
return(0);
|
|
if ((quantum/65537.0) >= 65535.0)
|
|
return(65535);
|
|
@@ -589,8 +589,8 @@ static inline unsigned int ScaleQuantumToLong(const Quantum quantum)
|
|
|
|
static inline unsigned int ScaleQuantumToMap(const Quantum quantum)
|
|
{
|
|
- if (quantum <= 0.0)
|
|
- return(0UL);
|
|
+ if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
|
|
+ return(0U);
|
|
if ((quantum/281479271743489.0) >= MaxMap)
|
|
return((unsigned int) MaxMap);
|
|
return((unsigned int) (quantum/281479271743489.0+0.5));
|
|
@@ -598,7 +598,7 @@ static inline unsigned int ScaleQuantumToMap(const Quantum quantum)
|
|
|
|
static inline unsigned short ScaleQuantumToShort(const Quantum quantum)
|
|
{
|
|
- if (quantum <= 0.0)
|
|
+ if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
|
|
return(0);
|
|
if ((quantum/281479271743489.0) >= 65535.0)
|
|
return(65535);
|
|
--
|
|
2.23.0
|
|
|