@@ -132,9 +132,9 @@ PHP_MINFO_FUNCTION(bcmath)
132132
133133/* {{{ php_str2num
134134 Convert to bc_num detecting scale */
135- static zend_result php_str2num (bc_num * num , char * str )
135+ static zend_result php_str2num (bc_num * num , const zend_string * str )
136136{
137- if (!bc_str2num (num , str , 0 , true)) {
137+ if (!bc_str2num (num , ZSTR_VAL ( str ), ZSTR_VAL ( str ) + ZSTR_LEN ( str ) , 0 , true)) {
138138 return FAILURE ;
139139 }
140140
@@ -167,12 +167,12 @@ PHP_FUNCTION(bcadd)
167167 scale = (int ) scale_param ;
168168 }
169169
170- if (php_str2num (& first , ZSTR_VAL ( left ) ) == FAILURE ) {
170+ if (php_str2num (& first , left ) == FAILURE ) {
171171 zend_argument_value_error (1 , "is not well-formed" );
172172 goto cleanup ;
173173 }
174174
175- if (php_str2num (& second , ZSTR_VAL ( right ) ) == FAILURE ) {
175+ if (php_str2num (& second , right ) == FAILURE ) {
176176 zend_argument_value_error (2 , "is not well-formed" );
177177 goto cleanup ;
178178 }
@@ -214,12 +214,12 @@ PHP_FUNCTION(bcsub)
214214 scale = (int ) scale_param ;
215215 }
216216
217- if (php_str2num (& first , ZSTR_VAL ( left ) ) == FAILURE ) {
217+ if (php_str2num (& first , left ) == FAILURE ) {
218218 zend_argument_value_error (1 , "is not well-formed" );
219219 goto cleanup ;
220220 }
221221
222- if (php_str2num (& second , ZSTR_VAL ( right ) ) == FAILURE ) {
222+ if (php_str2num (& second , right ) == FAILURE ) {
223223 zend_argument_value_error (2 , "is not well-formed" );
224224 goto cleanup ;
225225 }
@@ -261,12 +261,12 @@ PHP_FUNCTION(bcmul)
261261 scale = (int ) scale_param ;
262262 }
263263
264- if (php_str2num (& first , ZSTR_VAL ( left ) ) == FAILURE ) {
264+ if (php_str2num (& first , left ) == FAILURE ) {
265265 zend_argument_value_error (1 , "is not well-formed" );
266266 goto cleanup ;
267267 }
268268
269- if (php_str2num (& second , ZSTR_VAL ( right ) ) == FAILURE ) {
269+ if (php_str2num (& second , right ) == FAILURE ) {
270270 zend_argument_value_error (2 , "is not well-formed" );
271271 goto cleanup ;
272272 }
@@ -310,12 +310,12 @@ PHP_FUNCTION(bcdiv)
310310
311311 bc_init_num (& result );
312312
313- if (php_str2num (& first , ZSTR_VAL ( left ) ) == FAILURE ) {
313+ if (php_str2num (& first , left ) == FAILURE ) {
314314 zend_argument_value_error (1 , "is not well-formed" );
315315 goto cleanup ;
316316 }
317317
318- if (php_str2num (& second , ZSTR_VAL ( right ) ) == FAILURE ) {
318+ if (php_str2num (& second , right ) == FAILURE ) {
319319 zend_argument_value_error (2 , "is not well-formed" );
320320 goto cleanup ;
321321 }
@@ -362,12 +362,12 @@ PHP_FUNCTION(bcmod)
362362
363363 bc_init_num (& result );
364364
365- if (php_str2num (& first , ZSTR_VAL ( left ) ) == FAILURE ) {
365+ if (php_str2num (& first , left ) == FAILURE ) {
366366 zend_argument_value_error (1 , "is not well-formed" );
367367 goto cleanup ;
368368 }
369369
370- if (php_str2num (& second , ZSTR_VAL ( right ) ) == FAILURE ) {
370+ if (php_str2num (& second , right ) == FAILURE ) {
371371 zend_argument_value_error (2 , "is not well-formed" );
372372 goto cleanup ;
373373 }
@@ -415,17 +415,17 @@ PHP_FUNCTION(bcpowmod)
415415
416416 bc_init_num (& result );
417417
418- if (php_str2num (& bc_base , ZSTR_VAL ( base_str ) ) == FAILURE ) {
418+ if (php_str2num (& bc_base , base_str ) == FAILURE ) {
419419 zend_argument_value_error (1 , "is not well-formed" );
420420 goto cleanup ;
421421 }
422422
423- if (php_str2num (& bc_expo , ZSTR_VAL ( exponent_str ) ) == FAILURE ) {
423+ if (php_str2num (& bc_expo , exponent_str ) == FAILURE ) {
424424 zend_argument_value_error (2 , "is not well-formed" );
425425 goto cleanup ;
426426 }
427427
428- if (php_str2num (& bc_modulus , ZSTR_VAL ( modulus_str ) ) == FAILURE ) {
428+ if (php_str2num (& bc_modulus , modulus_str ) == FAILURE ) {
429429 zend_argument_value_error (3 , "is not well-formed" );
430430 goto cleanup ;
431431 }
@@ -489,12 +489,12 @@ PHP_FUNCTION(bcpow)
489489
490490 bc_init_num (& result );
491491
492- if (php_str2num (& first , ZSTR_VAL ( base_str ) ) == FAILURE ) {
492+ if (php_str2num (& first , base_str ) == FAILURE ) {
493493 zend_argument_value_error (1 , "is not well-formed" );
494494 goto cleanup ;
495495 }
496496
497- if (php_str2num (& bc_exponent , ZSTR_VAL ( exponent_str ) ) == FAILURE ) {
497+ if (php_str2num (& bc_exponent , exponent_str ) == FAILURE ) {
498498 zend_argument_value_error (2 , "is not well-formed" );
499499 goto cleanup ;
500500 }
@@ -546,7 +546,7 @@ PHP_FUNCTION(bcsqrt)
546546 scale = (int ) scale_param ;
547547 }
548548
549- if (php_str2num (& result , ZSTR_VAL ( left ) ) == FAILURE ) {
549+ if (php_str2num (& result , left ) == FAILURE ) {
550550 zend_argument_value_error (1 , "is not well-formed" );
551551 goto cleanup ;
552552 }
@@ -588,12 +588,12 @@ PHP_FUNCTION(bccomp)
588588 scale = (int ) scale_param ;
589589 }
590590
591- if (!bc_str2num (& first , ZSTR_VAL (left ), scale , false)) {
591+ if (!bc_str2num (& first , ZSTR_VAL (left ), ZSTR_VAL ( left ) + ZSTR_LEN ( left ), scale , false)) {
592592 zend_argument_value_error (1 , "is not well-formed" );
593593 goto cleanup ;
594594 }
595595
596- if (!bc_str2num (& second , ZSTR_VAL (right ), scale , false)) {
596+ if (!bc_str2num (& second , ZSTR_VAL (right ), ZSTR_VAL ( right ) + ZSTR_LEN ( right ), scale , false)) {
597597 zend_argument_value_error (2 , "is not well-formed" );
598598 goto cleanup ;
599599 }
@@ -617,7 +617,7 @@ static void bcfloor_or_bcceil(INTERNAL_FUNCTION_PARAMETERS, bool is_floor)
617617 Z_PARAM_STR (numstr )
618618 ZEND_PARSE_PARAMETERS_END ();
619619
620- if (php_str2num (& num , ZSTR_VAL ( numstr ) ) == FAILURE ) {
620+ if (php_str2num (& num , numstr ) == FAILURE ) {
621621 zend_argument_value_error (1 , "is not well-formed" );
622622 goto cleanup ;
623623 }
@@ -678,7 +678,7 @@ PHP_FUNCTION(bcround)
678678
679679 bc_init_num (& result );
680680
681- if (php_str2num (& num , ZSTR_VAL ( numstr ) ) == FAILURE ) {
681+ if (php_str2num (& num , numstr ) == FAILURE ) {
682682 zend_argument_value_error (1 , "is not well-formed" );
683683 goto cleanup ;
684684 }
0 commit comments