@@ -726,7 +726,7 @@ ecma_append_chars_to_string (ecma_string_t *string1_p, /**< base ecma-string */
726726 lit_utf8_size_t cesu8_string1_size ;
727727 lit_utf8_size_t cesu8_string1_length ;
728728 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 ];
730730
731731 const lit_utf8_byte_t * cesu8_string1_p =
732732 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 */
831831
832832 lit_utf8_size_t cesu8_string2_size ;
833833 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 ];
835835 uint8_t flags = ECMA_STRING_FLAG_IS_ASCII ;
836836
837837 const lit_utf8_byte_t * cesu8_string2_p =
@@ -1081,8 +1081,8 @@ ecma_uint32_to_buffer (uint32_t num, /**< number */
10811081 lit_utf8_byte_t * buffer_p /**< destination buffer */ ,
10821082 lit_utf8_size_t buffer_size /**< buffer size */ )
10831083{
1084- lit_utf8_byte_t digits [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 ];
1085- lit_utf8_size_t digit_count = ecma_uint32_to_utf8_string (num , digits , ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 );
1084+ lit_utf8_byte_t digits [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED ];
1085+ lit_utf8_size_t digit_count = ecma_uint32_to_utf8_string (num , digits , ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED );
10861086
10871087 digit_count = JERRY_MIN (buffer_size , digit_count );
10881088 memcpy (buffer_p , digits , digit_count );
@@ -1192,7 +1192,7 @@ ecma_string_to_cesu8_bytes (const ecma_string_t *string_desc_p, /**< ecma-string
11921192 *
11931193 * @return size in bytes
11941194 */
1195- static inline lit_utf8_size_t JERRY_ATTR_ALWAYS_INLINE
1195+ extern inline lit_utf8_size_t JERRY_ATTR_ALWAYS_INLINE
11961196ecma_string_get_uint32_size (const uint32_t uint32_number ) /**< number in the string-descriptor */
11971197{
11981198 uint32_t prev_number = 1 ;
@@ -1292,11 +1292,11 @@ ecma_string_get_chars (const ecma_string_t *string_p, /**< ecma-string */
12921292 }
12931293 else
12941294 {
1295- result_p = (const lit_utf8_byte_t * ) jmem_heap_alloc_block (size );
1295+ result_p = (const lit_utf8_byte_t * ) jmem_heap_alloc_block (size + 1 );
12961296 * flags_p |= ECMA_STRING_FLAG_MUST_BE_FREED ;
12971297 }
12981298
1299- length = ecma_uint32_to_utf8_string (uint32_number , (lit_utf8_byte_t * ) result_p , size );
1299+ length = ecma_uint32_to_utf8_string (uint32_number , (lit_utf8_byte_t * ) result_p , size + 1 );
13001300
13011301 JERRY_ASSERT (length == size );
13021302 * flags_p |= ECMA_STRING_FLAG_IS_UINT32 ;
@@ -1343,11 +1343,11 @@ ecma_string_get_chars (const ecma_string_t *string_p, /**< ecma-string */
13431343 }
13441344 else
13451345 {
1346- result_p = (const lit_utf8_byte_t * ) jmem_heap_alloc_block (size );
1346+ result_p = (const lit_utf8_byte_t * ) jmem_heap_alloc_block (size + 1 );
13471347 * flags_p |= ECMA_STRING_FLAG_MUST_BE_FREED ;
13481348 }
13491349
1350- length = ecma_uint32_to_utf8_string (string_p -> u .uint32_number , (lit_utf8_byte_t * ) result_p , size );
1350+ length = ecma_uint32_to_utf8_string (string_p -> u .uint32_number , (lit_utf8_byte_t * ) result_p , size + 1 );
13511351
13521352 JERRY_ASSERT (length == size );
13531353 * flags_p |= ECMA_STRING_FLAG_IS_UINT32 | ECMA_STRING_FLAG_REHASH_NEEDED ;
@@ -1716,8 +1716,8 @@ ecma_compare_ecma_strings_relational (const ecma_string_t *string1_p, /**< ecma-
17161716 const lit_utf8_byte_t * utf8_string1_p , * utf8_string2_p ;
17171717 lit_utf8_size_t utf8_string1_size , utf8_string2_size ;
17181718
1719- lit_utf8_byte_t uint32_to_string_buffer1 [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 ];
1720- lit_utf8_byte_t uint32_to_string_buffer2 [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 ];
1719+ lit_utf8_byte_t uint32_to_string_buffer1 [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED ];
1720+ lit_utf8_byte_t uint32_to_string_buffer2 [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED ];
17211721
17221722 if (ECMA_IS_DIRECT_STRING (string1_p ))
17231723 {
@@ -1729,7 +1729,7 @@ ecma_compare_ecma_strings_relational (const ecma_string_t *string1_p, /**< ecma-
17291729 {
17301730 utf8_string1_size = ecma_uint32_to_utf8_string ((uint32_t ) ECMA_GET_DIRECT_STRING_VALUE (string1_p ),
17311731 uint32_to_string_buffer1 ,
1732- ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 );
1732+ ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED );
17331733 utf8_string1_p = uint32_to_string_buffer1 ;
17341734 }
17351735 }
@@ -1745,7 +1745,7 @@ ecma_compare_ecma_strings_relational (const ecma_string_t *string1_p, /**< ecma-
17451745 {
17461746 utf8_string1_size = ecma_uint32_to_utf8_string (string1_p -> u .uint32_number ,
17471747 uint32_to_string_buffer1 ,
1748- ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 );
1748+ ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED );
17491749 utf8_string1_p = uint32_to_string_buffer1 ;
17501750 }
17511751 }
@@ -1760,7 +1760,7 @@ ecma_compare_ecma_strings_relational (const ecma_string_t *string1_p, /**< ecma-
17601760 {
17611761 utf8_string2_size = ecma_uint32_to_utf8_string ((uint32_t ) ECMA_GET_DIRECT_STRING_VALUE (string2_p ),
17621762 uint32_to_string_buffer2 ,
1763- ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 );
1763+ ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED );
17641764 utf8_string2_p = uint32_to_string_buffer2 ;
17651765 }
17661766 }
@@ -1776,7 +1776,7 @@ ecma_compare_ecma_strings_relational (const ecma_string_t *string1_p, /**< ecma-
17761776 {
17771777 utf8_string2_size = ecma_uint32_to_utf8_string (string2_p -> u .uint32_number ,
17781778 uint32_to_string_buffer2 ,
1779- ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 );
1779+ ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED );
17801780 utf8_string2_p = uint32_to_string_buffer2 ;
17811781 }
17821782 }
@@ -2061,7 +2061,7 @@ ecma_string_get_char_at_pos (const ecma_string_t *string_p, /**< ecma-string */
20612061{
20622062 JERRY_ASSERT (index < ecma_string_get_length (string_p ));
20632063
2064- lit_utf8_byte_t uint32_to_string_buffer [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 ];
2064+ lit_utf8_byte_t uint32_to_string_buffer [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED ];
20652065
20662066 if (ECMA_IS_DIRECT_STRING (string_p ))
20672067 {
@@ -2086,7 +2086,7 @@ ecma_string_get_char_at_pos (const ecma_string_t *string_p, /**< ecma-string */
20862086 JERRY_ASSERT (ECMA_GET_DIRECT_STRING_TYPE (string_p ) == ECMA_DIRECT_STRING_UINT );
20872087 uint32_t uint32_number = (uint32_t ) ECMA_GET_DIRECT_STRING_VALUE (string_p );
20882088
2089- ecma_uint32_to_utf8_string (uint32_number , uint32_to_string_buffer , ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 );
2089+ ecma_uint32_to_utf8_string (uint32_number , uint32_to_string_buffer , ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED );
20902090
20912091 return (ecma_char_t ) uint32_to_string_buffer [index ];
20922092 }
@@ -2132,7 +2132,7 @@ ecma_string_get_char_at_pos (const ecma_string_t *string_p, /**< ecma-string */
21322132 {
21332133 ecma_uint32_to_utf8_string (string_p -> u .uint32_number ,
21342134 uint32_to_string_buffer ,
2135- ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 );
2135+ ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED );
21362136
21372137 return (ecma_char_t ) uint32_to_string_buffer [index ];
21382138 }
0 commit comments