@@ -394,9 +394,7 @@ ecma_utf8_string_to_number (const lit_utf8_byte_t *str_p, /**< utf-8 string */
394
394
return ECMA_NUMBER_ZERO ;
395
395
}
396
396
397
- const ssize_t literal_len = end_p - begin_p + 1 ;
398
-
399
- if (literal_len > 2
397
+ if ((end_p >= begin_p + 2 )
400
398
&& begin_p [0 ] == dec_digits_range [0 ]
401
399
&& (begin_p [1 ] == hex_x_chars [0 ]
402
400
|| 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 */
779
777
*
780
778
* @return number of bytes copied to buffer
781
779
*/
782
- ssize_t
780
+ lit_utf8_size_t
783
781
ecma_uint32_to_utf8_string (uint32_t value , /**< value to convert */
784
782
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 */
786
784
{
787
785
const lit_utf8_byte_t digits [10 ] = { '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' };
788
786
789
787
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 ;
791
789
792
790
do
793
791
{
@@ -806,11 +804,10 @@ ecma_uint32_to_utf8_string (uint32_t value, /**< value to convert */
806
804
807
805
if (likely (p != out_buffer_p ))
808
806
{
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 );
811
808
}
812
809
813
- return ( ssize_t ) bytes_copied ;
810
+ return bytes_copied ;
814
811
} /* ecma_uint32_to_utf8_string */
815
812
816
813
/**
@@ -1299,7 +1296,7 @@ ecma_number_to_decimal (ecma_number_t num, /**< ecma-number */
1299
1296
lit_utf8_size_t
1300
1297
ecma_number_to_utf8_string (ecma_number_t num , /**< ecma-number */
1301
1298
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 */
1303
1300
{
1304
1301
const lit_utf8_byte_t digits [10 ] = { '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' };
1305
1302
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 */
1323
1320
// 2.
1324
1321
* dst_p ++ = digits [0 ];
1325
1322
1326
- JERRY_ASSERT (dst_p - buffer_p <= ( ssize_t ) buffer_size );
1323
+ JERRY_ASSERT (dst_p <= buffer_p + buffer_size );
1327
1324
size = (lit_utf8_size_t ) (dst_p - buffer_p );
1328
1325
}
1329
1326
else if (ecma_number_is_negative (num ))
1330
1327
{
1331
1328
// 3.
1332
1329
* 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 );
1334
1331
size = 1 + ecma_number_to_utf8_string (ecma_number_negate (num ), dst_p , new_buffer_size );
1335
1332
}
1336
1333
else if (ecma_number_is_infinity (num ))
@@ -1349,7 +1346,7 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
1349
1346
uint32_t num_uint32 = ecma_number_to_uint32 (num );
1350
1347
if (ecma_uint32_to_number (num_uint32 ) == num )
1351
1348
{
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 );
1353
1350
}
1354
1351
else
1355
1352
{
@@ -1366,7 +1363,7 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
1366
1363
if (k <= n && n <= 21 )
1367
1364
{
1368
1365
dst_p += n ;
1369
- JERRY_ASSERT (( ssize_t ) ( dst_p - buffer_p ) <= buffer_size );
1366
+ JERRY_ASSERT (dst_p <= buffer_p + buffer_size );
1370
1367
1371
1368
size = (lit_utf8_size_t ) (dst_p - buffer_p );
1372
1369
@@ -1385,7 +1382,7 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
1385
1382
{
1386
1383
// 7.
1387
1384
dst_p += k + 1 ;
1388
- JERRY_ASSERT (( ssize_t ) ( dst_p - buffer_p ) <= buffer_size );
1385
+ JERRY_ASSERT (dst_p <= buffer_p + buffer_size );
1389
1386
1390
1387
size = (lit_utf8_size_t ) (dst_p - buffer_p );
1391
1388
@@ -1407,7 +1404,7 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
1407
1404
{
1408
1405
// 8.
1409
1406
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 );
1411
1408
1412
1409
size = (lit_utf8_size_t ) (dst_p - buffer_p );
1413
1410
@@ -1441,7 +1438,7 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
1441
1438
{
1442
1439
// 10.
1443
1440
dst_p += k + 1 ;
1444
- JERRY_ASSERT (( ssize_t ) ( dst_p - buffer_p ) <= buffer_size );
1441
+ JERRY_ASSERT (dst_p <= buffer_p + buffer_size );
1445
1442
1446
1443
for (int32_t i = 0 ; i < k - 1 ; i ++ )
1447
1444
{
@@ -1457,14 +1454,14 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
1457
1454
}
1458
1455
1459
1456
// 9., 10.
1460
- JERRY_ASSERT (( ssize_t ) ( dst_p - buffer_p + 2 ) <= buffer_size );
1457
+ JERRY_ASSERT (dst_p + 2 <= buffer_p + buffer_size );
1461
1458
* dst_p ++ = e_chars [0 ];
1462
1459
* dst_p ++ = (n >= 1 ) ? plus_char : minus_char ;
1463
1460
int32_t t = (n >= 1 ) ? (n - 1 ) : - (n - 1 );
1464
1461
1465
1462
if (t == 0 )
1466
1463
{
1467
- JERRY_ASSERT (( ssize_t ) ( dst_p - buffer_p ) <= buffer_size );
1464
+ JERRY_ASSERT (dst_p <= buffer_p + buffer_size );
1468
1465
* dst_p ++ = digits [0 ];
1469
1466
}
1470
1467
else
@@ -1480,15 +1477,15 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
1480
1477
1481
1478
while (t_mod != 0 )
1482
1479
{
1483
- JERRY_ASSERT (( ssize_t ) ( dst_p - buffer_p + 1 ) <= buffer_size );
1480
+ JERRY_ASSERT (dst_p + 1 <= buffer_p + buffer_size );
1484
1481
* dst_p ++ = digits [t / t_mod ];
1485
1482
1486
1483
t -= (t / t_mod ) * t_mod ;
1487
1484
t_mod /= 10 ;
1488
1485
}
1489
1486
}
1490
1487
1491
- JERRY_ASSERT (( ssize_t ) ( dst_p - buffer_p ) <= buffer_size );
1488
+ JERRY_ASSERT (dst_p <= buffer_p + buffer_size );
1492
1489
size = (lit_utf8_size_t ) (dst_p - buffer_p );
1493
1490
}
1494
1491
0 commit comments