@@ -969,51 +969,51 @@ ZEND_API int pow_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
969
969
970
970
while (1 ) {
971
971
switch (TYPE_PAIR (Z_TYPE_P (op1 ), Z_TYPE_P (op2 ))) {
972
- case TYPE_PAIR (IS_LONG , IS_LONG ):
973
- if (Z_LVAL_P (op2 ) >= 0 ) {
974
- long l1 = 1 , l2 = Z_LVAL_P (op1 ), i = Z_LVAL_P (op2 );
972
+ case TYPE_PAIR (IS_INT , IS_INT ):
973
+ if (Z_IVAL_P (op2 ) >= 0 ) {
974
+ zend_int_t l1 = 1 , l2 = Z_IVAL_P (op1 ), i = Z_IVAL_P (op2 );
975
975
976
976
if (i == 0 ) {
977
- ZVAL_LONG (result , 1L );
977
+ ZVAL_INT (result , 1L );
978
978
return SUCCESS ;
979
979
} else if (l2 == 0 ) {
980
- ZVAL_LONG (result , 0 );
980
+ ZVAL_INT (result , 0 );
981
981
return SUCCESS ;
982
982
}
983
983
984
984
while (i >= 1 ) {
985
- long overflow ;
985
+ zend_int_t overflow ;
986
986
double dval = 0.0 ;
987
987
988
988
if (i % 2 ) {
989
989
-- i ;
990
- ZEND_SIGNED_MULTIPLY_LONG (l1 , l2 , l1 , dval , overflow );
990
+ ZEND_SIGNED_MULTIPLY_INT (l1 , l2 , l1 , dval , overflow );
991
991
if (overflow ) {
992
992
ZVAL_DOUBLE (result , dval * pow (l2 , i ));
993
993
return SUCCESS ;
994
994
}
995
995
} else {
996
996
i /= 2 ;
997
- ZEND_SIGNED_MULTIPLY_LONG (l2 , l2 , l2 , dval , overflow );
997
+ ZEND_SIGNED_MULTIPLY_INT (l2 , l2 , l2 , dval , overflow );
998
998
if (overflow ) {
999
999
ZVAL_DOUBLE (result , (double )l1 * pow (dval , i ));
1000
1000
return SUCCESS ;
1001
1001
}
1002
1002
}
1003
1003
}
1004
1004
/* i == 0 */
1005
- ZVAL_LONG (result , l1 );
1005
+ ZVAL_INT (result , l1 );
1006
1006
} else {
1007
- ZVAL_DOUBLE (result , pow ((double )Z_LVAL_P (op1 ), (double )Z_LVAL_P (op2 )));
1007
+ ZVAL_DOUBLE (result , pow ((double )Z_IVAL_P (op1 ), (double )Z_IVAL_P (op2 )));
1008
1008
}
1009
1009
return SUCCESS ;
1010
1010
1011
- case TYPE_PAIR (IS_LONG , IS_DOUBLE ):
1012
- ZVAL_DOUBLE (result , pow ((double )Z_LVAL_P (op1 ), Z_DVAL_P (op2 )));
1011
+ case TYPE_PAIR (IS_INT , IS_DOUBLE ):
1012
+ ZVAL_DOUBLE (result , pow ((double )Z_IVAL_P (op1 ), Z_DVAL_P (op2 )));
1013
1013
return SUCCESS ;
1014
1014
1015
- case TYPE_PAIR (IS_DOUBLE , IS_LONG ):
1016
- ZVAL_DOUBLE (result , pow (Z_DVAL_P (op1 ), (double )Z_LVAL_P (op2 )));
1015
+ case TYPE_PAIR (IS_DOUBLE , IS_INT ):
1016
+ ZVAL_DOUBLE (result , pow (Z_DVAL_P (op1 ), (double )Z_IVAL_P (op2 )));
1017
1017
return SUCCESS ;
1018
1018
1019
1019
case TYPE_PAIR (IS_DOUBLE , IS_DOUBLE ):
@@ -1025,12 +1025,12 @@ ZEND_API int pow_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
1025
1025
ZEND_TRY_BINARY_OBJECT_OPERATION (ZEND_POW );
1026
1026
1027
1027
if (Z_TYPE_P (op1 ) == IS_ARRAY ) {
1028
- ZVAL_LONG (op1 , 0 );
1028
+ ZVAL_INT (op1 , 0 );
1029
1029
} else {
1030
1030
zendi_convert_scalar_to_number (op1 , op1_copy , result );
1031
1031
}
1032
1032
if (Z_TYPE_P (op2 ) == IS_ARRAY ) {
1033
- ZVAL_LONG (op2 , 0 );
1033
+ ZVAL_INT (op2 , 0 );
1034
1034
} else {
1035
1035
zendi_convert_scalar_to_number (op2 , op2_copy , result );
1036
1036
}
0 commit comments