File tree Expand file tree Collapse file tree 1 file changed +6
-6
lines changed
Expand file tree Collapse file tree 1 file changed +6
-6
lines changed Original file line number Diff line number Diff line change @@ -83,7 +83,9 @@ static zend_always_inline zend_long zend_dval_to_lval(double d)
8383#elif SIZEOF_ZEND_LONG == 4
8484static zend_always_inline zend_long zend_dval_to_lval (double d )
8585{
86- if (d > ZEND_LONG_MAX || d < ZEND_LONG_MIN ) {
86+ if (UNEXPECTED (!zend_finite (d )) || UNEXPECTED (zend_isnan (d ))) {
87+ return 0 ;
88+ } else if (d > ZEND_LONG_MAX || d < ZEND_LONG_MIN ) {
8789 double two_pow_32 = pow (2. , 32. ),
8890 dmod ;
8991
@@ -94,16 +96,16 @@ static zend_always_inline zend_long zend_dval_to_lval(double d)
9496 dmod = ceil (dmod ) + two_pow_32 ;
9597 }
9698 return (zend_long )(zend_ulong )dmod ;
97- } else if (UNEXPECTED (!zend_finite (d )) || UNEXPECTED (zend_isnan (d ))) {
98- return 0 ;
9999 }
100100 return (zend_long )d ;
101101}
102102#else
103103static zend_always_inline zend_long zend_dval_to_lval (double d )
104104{
105+ if (UNEXPECTED (!zend_finite (d )) || UNEXPECTED (zend_isnan (d ))) {
106+ return 0 ;
105107 /* >= as (double)ZEND_LONG_MAX is outside signed range */
106- if (d >= ZEND_LONG_MAX || d < ZEND_LONG_MIN ) {
108+ } else if (d >= ZEND_LONG_MAX || d < ZEND_LONG_MIN ) {
107109 double two_pow_64 = pow (2. , 64. ),
108110 dmod ;
109111
@@ -114,8 +116,6 @@ static zend_always_inline zend_long zend_dval_to_lval(double d)
114116 dmod += two_pow_64 ;
115117 }
116118 return (zend_long )(zend_ulong )dmod ;
117- } else if (UNEXPECTED (!zend_finite (d )) || UNEXPECTED (zend_isnan (d ))) {
118- return 0 ;
119119 }
120120 return (zend_long )d ;
121121}
You can’t perform that action at this time.
0 commit comments