@@ -726,7 +726,7 @@ ecma_append_chars_to_string (ecma_string_t *string1_p, /**< base ecma-string */
726
726
lit_utf8_size_t cesu8_string1_size ;
727
727
lit_utf8_size_t cesu8_string1_length ;
728
728
uint8_t flags = ECMA_STRING_FLAG_IS_ASCII ;
729
- lit_utf8_byte_t uint32_to_string_buffer [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 ];
729
+ lit_utf8_byte_t uint32_to_string_buffer [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED ];
730
730
731
731
const lit_utf8_byte_t * cesu8_string1_p =
732
732
ecma_string_get_chars (string1_p , & cesu8_string1_size , & cesu8_string1_length , uint32_to_string_buffer , & flags );
@@ -831,7 +831,7 @@ ecma_concat_ecma_strings (ecma_string_t *string1_p, /**< first ecma-string */
831
831
832
832
lit_utf8_size_t cesu8_string2_size ;
833
833
lit_utf8_size_t cesu8_string2_length ;
834
- lit_utf8_byte_t uint32_to_string_buffer [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 ];
834
+ lit_utf8_byte_t uint32_to_string_buffer [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED ];
835
835
uint8_t flags = ECMA_STRING_FLAG_IS_ASCII ;
836
836
837
837
const lit_utf8_byte_t * cesu8_string2_p =
@@ -1077,8 +1077,9 @@ ecma_uint32_to_buffer (uint32_t num, /**< number */
1077
1077
lit_utf8_byte_t * buffer_p /**< destination buffer */ ,
1078
1078
lit_utf8_size_t buffer_size /**< buffer size */ )
1079
1079
{
1080
- lit_utf8_byte_t digits [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 ];
1081
- lit_utf8_size_t digit_count = ecma_uint32_to_utf8_string (num , digits , ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 );
1080
+ lit_utf8_byte_t digits [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED ];
1081
+ lit_utf8_size_t digit_count =
1082
+ ecma_uint32_to_utf8_string (num , digits , ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED );
1082
1083
1083
1084
digit_count = JERRY_MIN (buffer_size , digit_count );
1084
1085
memcpy (buffer_p , digits , digit_count );
@@ -1186,7 +1187,7 @@ ecma_string_to_cesu8_bytes (const ecma_string_t *string_desc_p, /**< ecma-string
1186
1187
*
1187
1188
* @return size in bytes
1188
1189
*/
1189
- static inline lit_utf8_size_t JERRY_ATTR_ALWAYS_INLINE
1190
+ extern inline lit_utf8_size_t JERRY_ATTR_ALWAYS_INLINE
1190
1191
ecma_string_get_uint32_size (const uint32_t uint32_number ) /**< number in the string-descriptor */
1191
1192
{
1192
1193
uint32_t prev_number = 1 ;
@@ -1286,11 +1287,11 @@ ecma_string_get_chars (const ecma_string_t *string_p, /**< ecma-string */
1286
1287
}
1287
1288
else
1288
1289
{
1289
- result_p = (const lit_utf8_byte_t * ) jmem_heap_alloc_block (size );
1290
+ result_p = (const lit_utf8_byte_t * ) jmem_heap_alloc_block (size + 1 );
1290
1291
* flags_p |= ECMA_STRING_FLAG_MUST_BE_FREED ;
1291
1292
}
1292
1293
1293
- length = ecma_uint32_to_utf8_string (uint32_number , (lit_utf8_byte_t * ) result_p , size );
1294
+ length = ecma_uint32_to_utf8_string (uint32_number , (lit_utf8_byte_t * ) result_p , size + 1 );
1294
1295
1295
1296
JERRY_ASSERT (length == size );
1296
1297
* flags_p |= ECMA_STRING_FLAG_IS_UINT32 ;
@@ -1337,11 +1338,11 @@ ecma_string_get_chars (const ecma_string_t *string_p, /**< ecma-string */
1337
1338
}
1338
1339
else
1339
1340
{
1340
- result_p = (const lit_utf8_byte_t * ) jmem_heap_alloc_block (size );
1341
+ result_p = (const lit_utf8_byte_t * ) jmem_heap_alloc_block (size + 1 );
1341
1342
* flags_p |= ECMA_STRING_FLAG_MUST_BE_FREED ;
1342
1343
}
1343
1344
1344
- length = ecma_uint32_to_utf8_string (string_p -> u .uint32_number , (lit_utf8_byte_t * ) result_p , size );
1345
+ length = ecma_uint32_to_utf8_string (string_p -> u .uint32_number , (lit_utf8_byte_t * ) result_p , size + 1 );
1345
1346
1346
1347
JERRY_ASSERT (length == size );
1347
1348
* flags_p |= ECMA_STRING_FLAG_IS_UINT32 | ECMA_STRING_FLAG_REHASH_NEEDED ;
@@ -1711,8 +1712,8 @@ ecma_compare_ecma_strings_relational (const ecma_string_t *string1_p, /**< ecma-
1711
1712
const lit_utf8_byte_t * utf8_string1_p , * utf8_string2_p ;
1712
1713
lit_utf8_size_t utf8_string1_size , utf8_string2_size ;
1713
1714
1714
- lit_utf8_byte_t uint32_to_string_buffer1 [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 ];
1715
- lit_utf8_byte_t uint32_to_string_buffer2 [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 ];
1715
+ lit_utf8_byte_t uint32_to_string_buffer1 [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED ];
1716
+ lit_utf8_byte_t uint32_to_string_buffer2 [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED ];
1716
1717
1717
1718
if (ECMA_IS_DIRECT_STRING (string1_p ))
1718
1719
{
@@ -1724,7 +1725,7 @@ ecma_compare_ecma_strings_relational (const ecma_string_t *string1_p, /**< ecma-
1724
1725
{
1725
1726
utf8_string1_size = ecma_uint32_to_utf8_string ((uint32_t ) ECMA_GET_DIRECT_STRING_VALUE (string1_p ),
1726
1727
uint32_to_string_buffer1 ,
1727
- ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 );
1728
+ ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED );
1728
1729
utf8_string1_p = uint32_to_string_buffer1 ;
1729
1730
}
1730
1731
}
@@ -1740,7 +1741,7 @@ ecma_compare_ecma_strings_relational (const ecma_string_t *string1_p, /**< ecma-
1740
1741
{
1741
1742
utf8_string1_size = ecma_uint32_to_utf8_string (string1_p -> u .uint32_number ,
1742
1743
uint32_to_string_buffer1 ,
1743
- ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 );
1744
+ ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED );
1744
1745
utf8_string1_p = uint32_to_string_buffer1 ;
1745
1746
}
1746
1747
}
@@ -1755,7 +1756,7 @@ ecma_compare_ecma_strings_relational (const ecma_string_t *string1_p, /**< ecma-
1755
1756
{
1756
1757
utf8_string2_size = ecma_uint32_to_utf8_string ((uint32_t ) ECMA_GET_DIRECT_STRING_VALUE (string2_p ),
1757
1758
uint32_to_string_buffer2 ,
1758
- ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 );
1759
+ ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED );
1759
1760
utf8_string2_p = uint32_to_string_buffer2 ;
1760
1761
}
1761
1762
}
@@ -1771,7 +1772,7 @@ ecma_compare_ecma_strings_relational (const ecma_string_t *string1_p, /**< ecma-
1771
1772
{
1772
1773
utf8_string2_size = ecma_uint32_to_utf8_string (string2_p -> u .uint32_number ,
1773
1774
uint32_to_string_buffer2 ,
1774
- ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 );
1775
+ ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED );
1775
1776
utf8_string2_p = uint32_to_string_buffer2 ;
1776
1777
}
1777
1778
}
@@ -2056,7 +2057,7 @@ ecma_string_get_char_at_pos (const ecma_string_t *string_p, /**< ecma-string */
2056
2057
{
2057
2058
JERRY_ASSERT (index < ecma_string_get_length (string_p ));
2058
2059
2059
- lit_utf8_byte_t uint32_to_string_buffer [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 ];
2060
+ lit_utf8_byte_t uint32_to_string_buffer [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED ];
2060
2061
2061
2062
if (ECMA_IS_DIRECT_STRING (string_p ))
2062
2063
{
@@ -2081,7 +2082,9 @@ ecma_string_get_char_at_pos (const ecma_string_t *string_p, /**< ecma-string */
2081
2082
JERRY_ASSERT (ECMA_GET_DIRECT_STRING_TYPE (string_p ) == ECMA_DIRECT_STRING_UINT );
2082
2083
uint32_t uint32_number = (uint32_t ) ECMA_GET_DIRECT_STRING_VALUE (string_p );
2083
2084
2084
- ecma_uint32_to_utf8_string (uint32_number , uint32_to_string_buffer , ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 );
2085
+ ecma_uint32_to_utf8_string (uint32_number ,
2086
+ uint32_to_string_buffer ,
2087
+ ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED );
2085
2088
2086
2089
return (ecma_char_t ) uint32_to_string_buffer [index ];
2087
2090
}
@@ -2127,7 +2130,7 @@ ecma_string_get_char_at_pos (const ecma_string_t *string_p, /**< ecma-string */
2127
2130
{
2128
2131
ecma_uint32_to_utf8_string (string_p -> u .uint32_number ,
2129
2132
uint32_to_string_buffer ,
2130
- ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 );
2133
+ ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED );
2131
2134
2132
2135
return (ecma_char_t ) uint32_to_string_buffer [index ];
2133
2136
}
0 commit comments