@@ -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,9 @@ 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 =
1086+ ecma_uint32_to_utf8_string (num , digits , ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED );
10861087
10871088 digit_count = JERRY_MIN (buffer_size , digit_count );
10881089 memcpy (buffer_p , digits , digit_count );
@@ -1192,7 +1193,7 @@ ecma_string_to_cesu8_bytes (const ecma_string_t *string_desc_p, /**< ecma-string
11921193 *
11931194 * @return size in bytes
11941195 */
1195- static inline lit_utf8_size_t JERRY_ATTR_ALWAYS_INLINE
1196+ extern inline lit_utf8_size_t JERRY_ATTR_ALWAYS_INLINE
11961197ecma_string_get_uint32_size (const uint32_t uint32_number ) /**< number in the string-descriptor */
11971198{
11981199 uint32_t prev_number = 1 ;
@@ -1292,11 +1293,11 @@ ecma_string_get_chars (const ecma_string_t *string_p, /**< ecma-string */
12921293 }
12931294 else
12941295 {
1295- result_p = (const lit_utf8_byte_t * ) jmem_heap_alloc_block (size );
1296+ result_p = (const lit_utf8_byte_t * ) jmem_heap_alloc_block (size + 1 );
12961297 * flags_p |= ECMA_STRING_FLAG_MUST_BE_FREED ;
12971298 }
12981299
1299- length = ecma_uint32_to_utf8_string (uint32_number , (lit_utf8_byte_t * ) result_p , size );
1300+ length = ecma_uint32_to_utf8_string (uint32_number , (lit_utf8_byte_t * ) result_p , size + 1 );
13001301
13011302 JERRY_ASSERT (length == size );
13021303 * flags_p |= ECMA_STRING_FLAG_IS_UINT32 ;
@@ -1343,11 +1344,11 @@ ecma_string_get_chars (const ecma_string_t *string_p, /**< ecma-string */
13431344 }
13441345 else
13451346 {
1346- result_p = (const lit_utf8_byte_t * ) jmem_heap_alloc_block (size );
1347+ result_p = (const lit_utf8_byte_t * ) jmem_heap_alloc_block (size + 1 );
13471348 * flags_p |= ECMA_STRING_FLAG_MUST_BE_FREED ;
13481349 }
13491350
1350- length = ecma_uint32_to_utf8_string (string_p -> u .uint32_number , (lit_utf8_byte_t * ) result_p , size );
1351+ length = ecma_uint32_to_utf8_string (string_p -> u .uint32_number , (lit_utf8_byte_t * ) result_p , size + 1 );
13511352
13521353 JERRY_ASSERT (length == size );
13531354 * flags_p |= ECMA_STRING_FLAG_IS_UINT32 | ECMA_STRING_FLAG_REHASH_NEEDED ;
@@ -1716,8 +1717,8 @@ ecma_compare_ecma_strings_relational (const ecma_string_t *string1_p, /**< ecma-
17161717 const lit_utf8_byte_t * utf8_string1_p , * utf8_string2_p ;
17171718 lit_utf8_size_t utf8_string1_size , utf8_string2_size ;
17181719
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 ];
1720+ lit_utf8_byte_t uint32_to_string_buffer1 [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED ];
1721+ lit_utf8_byte_t uint32_to_string_buffer2 [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED ];
17211722
17221723 if (ECMA_IS_DIRECT_STRING (string1_p ))
17231724 {
@@ -1729,7 +1730,7 @@ ecma_compare_ecma_strings_relational (const ecma_string_t *string1_p, /**< ecma-
17291730 {
17301731 utf8_string1_size = ecma_uint32_to_utf8_string ((uint32_t ) ECMA_GET_DIRECT_STRING_VALUE (string1_p ),
17311732 uint32_to_string_buffer1 ,
1732- ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 );
1733+ ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED );
17331734 utf8_string1_p = uint32_to_string_buffer1 ;
17341735 }
17351736 }
@@ -1745,7 +1746,7 @@ ecma_compare_ecma_strings_relational (const ecma_string_t *string1_p, /**< ecma-
17451746 {
17461747 utf8_string1_size = ecma_uint32_to_utf8_string (string1_p -> u .uint32_number ,
17471748 uint32_to_string_buffer1 ,
1748- ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 );
1749+ ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED );
17491750 utf8_string1_p = uint32_to_string_buffer1 ;
17501751 }
17511752 }
@@ -1760,7 +1761,7 @@ ecma_compare_ecma_strings_relational (const ecma_string_t *string1_p, /**< ecma-
17601761 {
17611762 utf8_string2_size = ecma_uint32_to_utf8_string ((uint32_t ) ECMA_GET_DIRECT_STRING_VALUE (string2_p ),
17621763 uint32_to_string_buffer2 ,
1763- ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 );
1764+ ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED );
17641765 utf8_string2_p = uint32_to_string_buffer2 ;
17651766 }
17661767 }
@@ -1776,7 +1777,7 @@ ecma_compare_ecma_strings_relational (const ecma_string_t *string1_p, /**< ecma-
17761777 {
17771778 utf8_string2_size = ecma_uint32_to_utf8_string (string2_p -> u .uint32_number ,
17781779 uint32_to_string_buffer2 ,
1779- ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 );
1780+ ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED );
17801781 utf8_string2_p = uint32_to_string_buffer2 ;
17811782 }
17821783 }
@@ -2061,7 +2062,7 @@ ecma_string_get_char_at_pos (const ecma_string_t *string_p, /**< ecma-string */
20612062{
20622063 JERRY_ASSERT (index < ecma_string_get_length (string_p ));
20632064
2064- lit_utf8_byte_t uint32_to_string_buffer [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 ];
2065+ lit_utf8_byte_t uint32_to_string_buffer [ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED ];
20652066
20662067 if (ECMA_IS_DIRECT_STRING (string_p ))
20672068 {
@@ -2086,7 +2087,9 @@ ecma_string_get_char_at_pos (const ecma_string_t *string_p, /**< ecma-string */
20862087 JERRY_ASSERT (ECMA_GET_DIRECT_STRING_TYPE (string_p ) == ECMA_DIRECT_STRING_UINT );
20872088 uint32_t uint32_number = (uint32_t ) ECMA_GET_DIRECT_STRING_VALUE (string_p );
20882089
2089- ecma_uint32_to_utf8_string (uint32_number , uint32_to_string_buffer , ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 );
2090+ ecma_uint32_to_utf8_string (uint32_number ,
2091+ uint32_to_string_buffer ,
2092+ ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED );
20902093
20912094 return (ecma_char_t ) uint32_to_string_buffer [index ];
20922095 }
@@ -2132,7 +2135,7 @@ ecma_string_get_char_at_pos (const ecma_string_t *string_p, /**< ecma-string */
21322135 {
21332136 ecma_uint32_to_utf8_string (string_p -> u .uint32_number ,
21342137 uint32_to_string_buffer ,
2135- ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32 );
2138+ ECMA_MAX_CHARS_IN_STRINGIFIED_UINT32_WITH_ZERO_TERMINATED );
21362139
21372140 return (ecma_char_t ) uint32_to_string_buffer [index ];
21382141 }
0 commit comments