@@ -394,9 +394,7 @@ ecma_utf8_string_to_number (const lit_utf8_byte_t *str_p, /**< utf-8 string */
394394 return ECMA_NUMBER_ZERO ;
395395 }
396396
397- const ssize_t literal_len = end_p - begin_p + 1 ;
398-
399- if (literal_len > 2
397+ if ((end_p >= begin_p + 2 )
400398 && begin_p [0 ] == dec_digits_range [0 ]
401399 && (begin_p [1 ] == hex_x_chars [0 ]
402400 || begin_p [1 ] == hex_x_chars [1 ]))
@@ -779,15 +777,15 @@ ecma_utf8_string_to_number (const lit_utf8_byte_t *str_p, /**< utf-8 string */
779777 *
780778 * @return number of bytes copied to buffer
781779 */
782- ssize_t
780+ lit_utf8_size_t
783781ecma_uint32_to_utf8_string (uint32_t value , /**< value to convert */
784782 lit_utf8_byte_t * out_buffer_p , /**< buffer for string */
785- ssize_t buffer_size ) /**< size of buffer */
783+ lit_utf8_size_t buffer_size ) /**< size of buffer */
786784{
787785 const lit_utf8_byte_t digits [10 ] = { '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' };
788786
789787 lit_utf8_byte_t * p = out_buffer_p + buffer_size - 1 ;
790- size_t bytes_copied = 0 ;
788+ lit_utf8_size_t bytes_copied = 0 ;
791789
792790 do
793791 {
@@ -806,11 +804,10 @@ ecma_uint32_to_utf8_string (uint32_t value, /**< value to convert */
806804
807805 if (likely (p != out_buffer_p ))
808806 {
809- ssize_t bytes_to_move = out_buffer_p + buffer_size - p ;
810- memmove (out_buffer_p , p , (size_t ) bytes_to_move );
807+ memmove (out_buffer_p , p , bytes_copied );
811808 }
812809
813- return ( ssize_t ) bytes_copied ;
810+ return bytes_copied ;
814811} /* ecma_uint32_to_utf8_string */
815812
816813/**
@@ -1299,7 +1296,7 @@ ecma_number_to_decimal (ecma_number_t num, /**< ecma-number */
12991296lit_utf8_size_t
13001297ecma_number_to_utf8_string (ecma_number_t num , /**< ecma-number */
13011298 lit_utf8_byte_t * buffer_p , /**< buffer for utf-8 string */
1302- ssize_t buffer_size ) /**< size of buffer */
1299+ lit_utf8_size_t buffer_size ) /**< size of buffer */
13031300{
13041301 const lit_utf8_byte_t digits [10 ] = { '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' };
13051302 const lit_utf8_byte_t e_chars [2 ] = { 'e' , 'E' };
@@ -1323,14 +1320,14 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
13231320 // 2.
13241321 * dst_p ++ = digits [0 ];
13251322
1326- JERRY_ASSERT (dst_p - buffer_p <= ( ssize_t ) buffer_size );
1323+ JERRY_ASSERT (dst_p <= buffer_p + buffer_size );
13271324 size = (lit_utf8_size_t ) (dst_p - buffer_p );
13281325 }
13291326 else if (ecma_number_is_negative (num ))
13301327 {
13311328 // 3.
13321329 * dst_p ++ = minus_char ;
1333- ssize_t new_buffer_size = (buffer_size - ( dst_p - buffer_p ) );
1330+ lit_utf8_size_t new_buffer_size = (lit_utf8_size_t ) (( buffer_p + buffer_size ) - dst_p );
13341331 size = 1 + ecma_number_to_utf8_string (ecma_number_negate (num ), dst_p , new_buffer_size );
13351332 }
13361333 else if (ecma_number_is_infinity (num ))
@@ -1349,7 +1346,7 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
13491346 uint32_t num_uint32 = ecma_number_to_uint32 (num );
13501347 if (ecma_uint32_to_number (num_uint32 ) == num )
13511348 {
1352- size = ( lit_utf8_size_t ) ecma_uint32_to_utf8_string (num_uint32 , dst_p , buffer_size );
1349+ size = ecma_uint32_to_utf8_string (num_uint32 , dst_p , buffer_size );
13531350 }
13541351 else
13551352 {
@@ -1366,7 +1363,7 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
13661363 if (k <= n && n <= 21 )
13671364 {
13681365 dst_p += n ;
1369- JERRY_ASSERT (( ssize_t ) ( dst_p - buffer_p ) <= buffer_size );
1366+ JERRY_ASSERT (dst_p <= buffer_p + buffer_size );
13701367
13711368 size = (lit_utf8_size_t ) (dst_p - buffer_p );
13721369
@@ -1385,7 +1382,7 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
13851382 {
13861383 // 7.
13871384 dst_p += k + 1 ;
1388- JERRY_ASSERT (( ssize_t ) ( dst_p - buffer_p ) <= buffer_size );
1385+ JERRY_ASSERT (dst_p <= buffer_p + buffer_size );
13891386
13901387 size = (lit_utf8_size_t ) (dst_p - buffer_p );
13911388
@@ -1407,7 +1404,7 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
14071404 {
14081405 // 8.
14091406 dst_p += k - n + 1 + 1 ;
1410- JERRY_ASSERT (( ssize_t ) ( dst_p - buffer_p ) <= buffer_size );
1407+ JERRY_ASSERT (dst_p <= buffer_p + buffer_size );
14111408
14121409 size = (lit_utf8_size_t ) (dst_p - buffer_p );
14131410
@@ -1441,7 +1438,7 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
14411438 {
14421439 // 10.
14431440 dst_p += k + 1 ;
1444- JERRY_ASSERT (( ssize_t ) ( dst_p - buffer_p ) <= buffer_size );
1441+ JERRY_ASSERT (dst_p <= buffer_p + buffer_size );
14451442
14461443 for (int32_t i = 0 ; i < k - 1 ; i ++ )
14471444 {
@@ -1457,14 +1454,14 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
14571454 }
14581455
14591456 // 9., 10.
1460- JERRY_ASSERT (( ssize_t ) ( dst_p - buffer_p + 2 ) <= buffer_size );
1457+ JERRY_ASSERT (dst_p + 2 <= buffer_p + buffer_size );
14611458 * dst_p ++ = e_chars [0 ];
14621459 * dst_p ++ = (n >= 1 ) ? plus_char : minus_char ;
14631460 int32_t t = (n >= 1 ) ? (n - 1 ) : - (n - 1 );
14641461
14651462 if (t == 0 )
14661463 {
1467- JERRY_ASSERT (( ssize_t ) ( dst_p - buffer_p ) <= buffer_size );
1464+ JERRY_ASSERT (dst_p <= buffer_p + buffer_size );
14681465 * dst_p ++ = digits [0 ];
14691466 }
14701467 else
@@ -1480,15 +1477,15 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
14801477
14811478 while (t_mod != 0 )
14821479 {
1483- JERRY_ASSERT (( ssize_t ) ( dst_p - buffer_p + 1 ) <= buffer_size );
1480+ JERRY_ASSERT (dst_p + 1 <= buffer_p + buffer_size );
14841481 * dst_p ++ = digits [t / t_mod ];
14851482
14861483 t -= (t / t_mod ) * t_mod ;
14871484 t_mod /= 10 ;
14881485 }
14891486 }
14901487
1491- JERRY_ASSERT (( ssize_t ) ( dst_p - buffer_p ) <= buffer_size );
1488+ JERRY_ASSERT (dst_p <= buffer_p + buffer_size );
14921489 size = (lit_utf8_size_t ) (dst_p - buffer_p );
14931490 }
14941491
0 commit comments