Skip to content

Commit de1b634

Browse files
committed
Changed the return type of safe_pow
1 parent 6a349a5 commit de1b634

File tree

1 file changed

+8
-21
lines changed

1 file changed

+8
-21
lines changed

Zend/zend_operators.c

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1292,14 +1292,13 @@ static void ZEND_COLD zend_power_base_0_exponent_lt_0_error(void)
12921292
zend_error(E_DEPRECATED, "Power of base 0 and negative exponent is deprecated");
12931293
}
12941294

1295-
static zend_result safe_pow(double *result, double base, double exponent)
1295+
static double safe_pow(double base, double exponent)
12961296
{
12971297
if (UNEXPECTED(base == 0.0 && exponent < 0.0)) {
12981298
zend_power_base_0_exponent_lt_0_error();
12991299
}
13001300

1301-
*result = pow(base, exponent);
1302-
return SUCCESS;
1301+
return pow(base, exponent);
13031302
}
13041303

13051304
static zend_result ZEND_FASTCALL pow_function_base(zval *result, zval *op1, zval *op2) /* {{{ */
@@ -1326,44 +1325,32 @@ static zend_result ZEND_FASTCALL pow_function_base(zval *result, zval *op1, zval
13261325
--i;
13271326
ZEND_SIGNED_MULTIPLY_LONG(l1, l2, l1, dval, overflow);
13281327
if (overflow) {
1329-
double pow_result;
1330-
safe_pow(&pow_result, l2, i);
1331-
ZVAL_DOUBLE(result, dval * pow_result);
1328+
ZVAL_DOUBLE(result, dval * safe_pow(l2, i));
13321329
return SUCCESS;
13331330
}
13341331
} else {
13351332
i /= 2;
13361333
ZEND_SIGNED_MULTIPLY_LONG(l2, l2, l2, dval, overflow);
13371334
if (overflow) {
1338-
double pow_result;
1339-
safe_pow(&pow_result, dval, i);
1340-
ZVAL_DOUBLE(result, (double)l1 * pow_result);
1335+
ZVAL_DOUBLE(result, (double)l1 * safe_pow(dval, i));
13411336
return SUCCESS;
13421337
}
13431338
}
13441339
}
13451340
/* i == 0 */
13461341
ZVAL_LONG(result, l1);
13471342
} else {
1348-
double pow_result;
1349-
safe_pow(&pow_result, (double)Z_LVAL_P(op1), (double)Z_LVAL_P(op2));
1350-
ZVAL_DOUBLE(result, pow_result);
1343+
ZVAL_DOUBLE(result, safe_pow((double)Z_LVAL_P(op1), (double)Z_LVAL_P(op2)));
13511344
}
13521345
return SUCCESS;
13531346
} else if (EXPECTED(type_pair == TYPE_PAIR(IS_DOUBLE, IS_DOUBLE))) {
1354-
double pow_result;
1355-
safe_pow(&pow_result, Z_DVAL_P(op1), Z_DVAL_P(op2));
1356-
ZVAL_DOUBLE(result, pow_result);
1347+
ZVAL_DOUBLE(result, safe_pow(Z_DVAL_P(op1), Z_DVAL_P(op2)));
13571348
return SUCCESS;
13581349
} else if (EXPECTED(type_pair == TYPE_PAIR(IS_LONG, IS_DOUBLE))) {
1359-
double pow_result;
1360-
safe_pow(&pow_result, (double)Z_LVAL_P(op1), Z_DVAL_P(op2));
1361-
ZVAL_DOUBLE(result, pow_result);
1350+
ZVAL_DOUBLE(result, safe_pow((double)Z_LVAL_P(op1), Z_DVAL_P(op2)));
13621351
return SUCCESS;
13631352
} else if (EXPECTED(type_pair == TYPE_PAIR(IS_DOUBLE, IS_LONG))) {
1364-
double pow_result;
1365-
safe_pow(&pow_result, Z_DVAL_P(op1), (double)Z_LVAL_P(op2));
1366-
ZVAL_DOUBLE(result, pow_result);
1353+
ZVAL_DOUBLE(result, safe_pow(Z_DVAL_P(op1), (double)Z_LVAL_P(op2)));
13671354
return SUCCESS;
13681355
} else {
13691356
return FAILURE;

0 commit comments

Comments
 (0)