@@ -157,9 +157,8 @@ static inline double php_round_helper(double value, int mode) {
157
157
}
158
158
159
159
return integral ;
160
+ EMPTY_SWITCH_DEFAULT_CASE ();
160
161
}
161
-
162
- ZEND_UNREACHABLE ();
163
162
}
164
163
/* }}} */
165
164
@@ -259,16 +258,16 @@ PHP_FUNCTION(abs)
259
258
Z_PARAM_NUMBER (value )
260
259
ZEND_PARSE_PARAMETERS_END ();
261
260
262
- if (Z_TYPE_P (value ) == IS_DOUBLE ) {
263
- RETURN_DOUBLE ( fabs ( Z_DVAL_P ( value )));
264
- } else if (Z_TYPE_P (value ) == IS_LONG ) {
265
- if ( Z_LVAL_P ( value ) == ZEND_LONG_MIN ) {
266
- RETURN_DOUBLE ( - ( double ) ZEND_LONG_MIN );
267
- } else {
268
- RETURN_LONG ( Z_LVAL_P ( value ) < 0 ? - Z_LVAL_P ( value ) : Z_LVAL_P ( value ));
269
- }
270
- } else {
271
- ZEND_ASSERT ( 0 && "Unexpected type" );
261
+ switch (Z_TYPE_P (value )) {
262
+ case IS_LONG :
263
+ if (Z_LVAL_P (value ) == ZEND_LONG_MIN ) {
264
+ RETURN_DOUBLE ( - ( double ) ZEND_LONG_MIN );
265
+ } else {
266
+ RETURN_LONG ( Z_LVAL_P ( value ) < 0 ? - Z_LVAL_P ( value ) : Z_LVAL_P ( value ));
267
+ }
268
+ case IS_DOUBLE :
269
+ RETURN_DOUBLE ( fabs ( Z_DVAL_P ( value )));
270
+ EMPTY_SWITCH_DEFAULT_CASE ( );
272
271
}
273
272
}
274
273
/* }}} */
@@ -282,12 +281,12 @@ PHP_FUNCTION(ceil)
282
281
Z_PARAM_NUMBER (value )
283
282
ZEND_PARSE_PARAMETERS_END ();
284
283
285
- if (Z_TYPE_P (value ) == IS_DOUBLE ) {
286
- RETURN_DOUBLE ( ceil ( Z_DVAL_P ( value )));
287
- } else if ( Z_TYPE_P (value ) == IS_LONG ) {
288
- RETURN_DOUBLE ( zval_get_double ( value ));
289
- } else {
290
- ZEND_ASSERT ( 0 && "Unexpected type" );
284
+ switch (Z_TYPE_P (value )) {
285
+ case IS_LONG :
286
+ RETURN_DOUBLE ( zval_get_double (value ));
287
+ case IS_DOUBLE :
288
+ RETURN_DOUBLE ( ceil ( Z_DVAL_P ( value )));
289
+ EMPTY_SWITCH_DEFAULT_CASE ( );
291
290
}
292
291
}
293
292
/* }}} */
@@ -301,12 +300,12 @@ PHP_FUNCTION(floor)
301
300
Z_PARAM_NUMBER (value )
302
301
ZEND_PARSE_PARAMETERS_END ();
303
302
304
- if (Z_TYPE_P (value ) == IS_DOUBLE ) {
305
- RETURN_DOUBLE ( floor ( Z_DVAL_P ( value )));
306
- } else if ( Z_TYPE_P (value ) == IS_LONG ) {
307
- RETURN_DOUBLE ( zval_get_double ( value ));
308
- } else {
309
- ZEND_ASSERT ( 0 && "Unexpected type" );
303
+ switch (Z_TYPE_P (value )) {
304
+ case IS_LONG :
305
+ RETURN_DOUBLE ( zval_get_double (value ));
306
+ case IS_DOUBLE :
307
+ RETURN_DOUBLE ( floor ( Z_DVAL_P ( value )));
308
+ EMPTY_SWITCH_DEFAULT_CASE ( );
310
309
}
311
310
}
312
311
/* }}} */
@@ -318,7 +317,6 @@ PHP_FUNCTION(round)
318
317
int places = 0 ;
319
318
zend_long precision = 0 ;
320
319
zend_long mode = PHP_ROUND_HALF_UP ;
321
- double return_val ;
322
320
323
321
ZEND_PARSE_PARAMETERS_START (1 , 3 )
324
322
Z_PARAM_NUMBER (value )
@@ -350,17 +348,14 @@ PHP_FUNCTION(round)
350
348
case IS_LONG :
351
349
/* Simple case - long that doesn't need to be rounded. */
352
350
if (places >= 0 ) {
353
- RETURN_DOUBLE (( double ) Z_LVAL_P (value ));
351
+ RETURN_DOUBLE (zval_get_double (value ));
354
352
}
355
353
ZEND_FALLTHROUGH ;
356
354
357
355
case IS_DOUBLE :
358
- return_val = (Z_TYPE_P (value ) == IS_LONG ) ? (double )Z_LVAL_P (value ) : Z_DVAL_P (value );
359
- return_val = _php_math_round (return_val , (int )places , (int )mode );
360
- RETURN_DOUBLE (return_val );
361
- break ;
356
+ RETURN_DOUBLE (_php_math_round (zval_get_double (value ), (int )places , (int )mode ));
362
357
363
- EMPTY_SWITCH_DEFAULT_CASE ()
358
+ EMPTY_SWITCH_DEFAULT_CASE ();
364
359
}
365
360
}
366
361
/* }}} */
0 commit comments