1919#include <stddef.h>
2020
2121/* Returns the scale of the value after rounding. */
22- size_t bc_round (bc_num num , zend_long precision , zend_long mode , bc_num * result )
22+ size_t bc_round (bc_num num , zend_long precision , zend_enum_RoundingMode mode , bc_num * result )
2323{
2424 /* clear result */
2525 bc_free_num (result );
@@ -38,32 +38,30 @@ size_t bc_round(bc_num num, zend_long precision, zend_long mode, bc_num *result)
3838 /* e.g. value is 0.1 and precision is -3, ret is 0 or 1000 */
3939 if (precision < 0 && num -> n_len < (size_t ) (- (precision + Z_L (1 ))) + 1 ) {
4040 switch (mode ) {
41- case PHP_ROUND_HALF_UP :
42- case PHP_ROUND_HALF_DOWN :
43- case PHP_ROUND_HALF_EVEN :
44- case PHP_ROUND_HALF_ODD :
45- case PHP_ROUND_TOWARD_ZERO :
41+ case ZEND_ENUM_RoundingMode_HalfAwayFromZero :
42+ case ZEND_ENUM_RoundingMode_HalfTowardsZero :
43+ case ZEND_ENUM_RoundingMode_HalfEven :
44+ case ZEND_ENUM_RoundingMode_HalfOdd :
45+ case ZEND_ENUM_RoundingMode_TowardsZero :
4646 * result = bc_copy_num (BCG (_zero_ ));
4747 return 0 ;
4848
49- case PHP_ROUND_CEILING :
49+ case ZEND_ENUM_RoundingMode_PositiveInfinity :
5050 if (num -> n_sign == MINUS ) {
5151 * result = bc_copy_num (BCG (_zero_ ));
5252 return 0 ;
5353 }
5454 break ;
5555
56- case PHP_ROUND_FLOOR :
56+ case ZEND_ENUM_RoundingMode_NegativeInfinity :
5757 if (num -> n_sign == PLUS ) {
5858 * result = bc_copy_num (BCG (_zero_ ));
5959 return 0 ;
6060 }
6161 break ;
6262
63- case PHP_ROUND_AWAY_FROM_ZERO :
63+ case ZEND_ENUM_RoundingMode_AwayFromZero :
6464 break ;
65-
66- EMPTY_SWITCH_DEFAULT_CASE ()
6765 }
6866
6967 if (bc_is_zero (num )) {
@@ -117,17 +115,17 @@ size_t bc_round(bc_num num, zend_long precision, zend_long mode, bc_num *result)
117115
118116 /* Check cases that can be determined without looping. */
119117 switch (mode ) {
120- case PHP_ROUND_HALF_UP :
118+ case ZEND_ENUM_RoundingMode_HalfAwayFromZero :
121119 if (* nptr >= 5 ) {
122120 goto up ;
123121 } else if (* nptr < 5 ) {
124122 goto check_zero ;
125123 }
126124 break ;
127125
128- case PHP_ROUND_HALF_DOWN :
129- case PHP_ROUND_HALF_EVEN :
130- case PHP_ROUND_HALF_ODD :
126+ case ZEND_ENUM_RoundingMode_HalfTowardsZero :
127+ case ZEND_ENUM_RoundingMode_HalfEven :
128+ case ZEND_ENUM_RoundingMode_HalfOdd :
131129 if (* nptr > 5 ) {
132130 goto up ;
133131 } else if (* nptr < 5 ) {
@@ -136,7 +134,7 @@ size_t bc_round(bc_num num, zend_long precision, zend_long mode, bc_num *result)
136134 /* if *nptr == 5, we need to look-up further digits before making a decision. */
137135 break ;
138136
139- case PHP_ROUND_CEILING :
137+ case ZEND_ENUM_RoundingMode_PositiveInfinity :
140138 if (num -> n_sign != PLUS ) {
141139 goto check_zero ;
142140 } else if (* nptr > 0 ) {
@@ -145,7 +143,7 @@ size_t bc_round(bc_num num, zend_long precision, zend_long mode, bc_num *result)
145143 /* if *nptr == 0, a loop is required for judgment. */
146144 break ;
147145
148- case PHP_ROUND_FLOOR :
146+ case ZEND_ENUM_RoundingMode_NegativeInfinity :
149147 if (num -> n_sign != MINUS ) {
150148 goto check_zero ;
151149 } else if (* nptr > 0 ) {
@@ -154,17 +152,15 @@ size_t bc_round(bc_num num, zend_long precision, zend_long mode, bc_num *result)
154152 /* if *nptr == 0, a loop is required for judgment. */
155153 break ;
156154
157- case PHP_ROUND_TOWARD_ZERO :
155+ case ZEND_ENUM_RoundingMode_TowardsZero :
158156 goto check_zero ;
159157
160- case PHP_ROUND_AWAY_FROM_ZERO :
158+ case ZEND_ENUM_RoundingMode_AwayFromZero :
161159 if (* nptr > 0 ) {
162160 goto up ;
163161 }
164162 /* if *nptr == 0, a loop is required for judgment. */
165163 break ;
166-
167- EMPTY_SWITCH_DEFAULT_CASE ()
168164 }
169165
170166 /* Loop through the remaining digits. */
@@ -180,19 +176,19 @@ size_t bc_round(bc_num num, zend_long precision, zend_long mode, bc_num *result)
180176 }
181177
182178 switch (mode ) {
183- case PHP_ROUND_HALF_DOWN :
184- case PHP_ROUND_CEILING :
185- case PHP_ROUND_FLOOR :
186- case PHP_ROUND_AWAY_FROM_ZERO :
179+ case ZEND_ENUM_RoundingMode_HalfTowardsZero :
180+ case ZEND_ENUM_RoundingMode_PositiveInfinity :
181+ case ZEND_ENUM_RoundingMode_NegativeInfinity :
182+ case ZEND_ENUM_RoundingMode_AwayFromZero :
187183 goto check_zero ;
188184
189- case PHP_ROUND_HALF_EVEN :
185+ case ZEND_ENUM_RoundingMode_HalfEven :
190186 if (rounded_len == 0 || num -> n_value [rounded_len - 1 ] % 2 == 0 ) {
191187 goto check_zero ;
192188 }
193189 break ;
194190
195- case PHP_ROUND_HALF_ODD :
191+ case ZEND_ENUM_RoundingMode_HalfOdd :
196192 if (rounded_len != 0 && num -> n_value [rounded_len - 1 ] % 2 == 1 ) {
197193 goto check_zero ;
198194 }
0 commit comments