Add warn_unused_result attribute to ecma_string_to_utf8_string. Add assertions that specified buffer size is sufficient in places, where return value of ecma_string_to_utf8_string wasn't checked prior to the changes.
JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
This commit is contained in:
@@ -649,17 +649,27 @@ ecma_concat_ecma_strings (ecma_string_t *string1_p, /**< first ecma-string */
|
|||||||
if (!string_desc_p->u.concatenation.is_surrogate_pair_sliced)
|
if (!string_desc_p->u.concatenation.is_surrogate_pair_sliced)
|
||||||
{
|
{
|
||||||
lit_utf8_size_t buffer_size = ecma_string_get_size (string2_p);
|
lit_utf8_size_t buffer_size = ecma_string_get_size (string2_p);
|
||||||
|
|
||||||
MEM_DEFINE_LOCAL_ARRAY (utf8_str_p, buffer_size, lit_utf8_byte_t);
|
MEM_DEFINE_LOCAL_ARRAY (utf8_str_p, buffer_size, lit_utf8_byte_t);
|
||||||
ecma_string_to_utf8_string (string2_p, utf8_str_p, (ssize_t) buffer_size);
|
|
||||||
|
ssize_t sz = ecma_string_to_utf8_string (string2_p, utf8_str_p, (ssize_t) buffer_size);
|
||||||
|
JERRY_ASSERT (sz > 0);
|
||||||
|
|
||||||
string_desc_p->hash = lit_utf8_string_hash_combine (string1_p->hash, utf8_str_p, buffer_size);
|
string_desc_p->hash = lit_utf8_string_hash_combine (string1_p->hash, utf8_str_p, buffer_size);
|
||||||
|
|
||||||
MEM_FINALIZE_LOCAL_ARRAY (utf8_str_p);
|
MEM_FINALIZE_LOCAL_ARRAY (utf8_str_p);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
lit_utf8_size_t buffer_size = ecma_string_get_size (string_desc_p);
|
lit_utf8_size_t buffer_size = ecma_string_get_size (string_desc_p);
|
||||||
|
|
||||||
MEM_DEFINE_LOCAL_ARRAY (utf8_str_p, buffer_size, lit_utf8_byte_t);
|
MEM_DEFINE_LOCAL_ARRAY (utf8_str_p, buffer_size, lit_utf8_byte_t);
|
||||||
ecma_string_to_utf8_string (string_desc_p, utf8_str_p, (ssize_t) buffer_size);
|
|
||||||
|
ssize_t sz = ecma_string_to_utf8_string (string_desc_p, utf8_str_p, (ssize_t) buffer_size);
|
||||||
|
JERRY_ASSERT (sz > 0);
|
||||||
|
|
||||||
string_desc_p->hash = lit_utf8_string_calc_hash (utf8_str_p, buffer_size);
|
string_desc_p->hash = lit_utf8_string_calc_hash (utf8_str_p, buffer_size);
|
||||||
|
|
||||||
MEM_FINALIZE_LOCAL_ARRAY (utf8_str_p);
|
MEM_FINALIZE_LOCAL_ARRAY (utf8_str_p);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -985,7 +995,7 @@ ecma_string_get_array_index (const ecma_string_t *str_p, /**< ecma-string */
|
|||||||
* otherwise (in case size of buffer is insufficient) - negative number, which is calculated
|
* otherwise (in case size of buffer is insufficient) - negative number, which is calculated
|
||||||
* as negation of buffer size, that is required to hold the string's content.
|
* as negation of buffer size, that is required to hold the string's content.
|
||||||
*/
|
*/
|
||||||
ssize_t
|
ssize_t __attr_return_value_should_be_checked___
|
||||||
ecma_string_to_utf8_string (const ecma_string_t *string_desc_p, /**< ecma-string descriptor */
|
ecma_string_to_utf8_string (const ecma_string_t *string_desc_p, /**< ecma-string descriptor */
|
||||||
lit_utf8_byte_t *buffer_p, /**< destination buffer pointer
|
lit_utf8_byte_t *buffer_p, /**< destination buffer pointer
|
||||||
* (can be NULL if buffer_size == 0) */
|
* (can be NULL if buffer_size == 0) */
|
||||||
@@ -1586,7 +1596,8 @@ ecma_string_get_char_at_pos (const ecma_string_t *string_p, /**< ecma-string */
|
|||||||
|
|
||||||
MEM_DEFINE_LOCAL_ARRAY (utf8_str_p, buffer_size, lit_utf8_byte_t);
|
MEM_DEFINE_LOCAL_ARRAY (utf8_str_p, buffer_size, lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (string_p, utf8_str_p, (ssize_t) buffer_size);
|
ssize_t sz = ecma_string_to_utf8_string (string_p, utf8_str_p, (ssize_t) buffer_size);
|
||||||
|
JERRY_ASSERT (sz > 0);
|
||||||
|
|
||||||
ch = lit_utf8_string_code_unit_at (utf8_str_p, buffer_size, index);;
|
ch = lit_utf8_string_code_unit_at (utf8_str_p, buffer_size, index);;
|
||||||
|
|
||||||
@@ -1611,7 +1622,8 @@ ecma_string_get_byte_at_pos (const ecma_string_t *string_p, /**< ecma-string */
|
|||||||
|
|
||||||
MEM_DEFINE_LOCAL_ARRAY (utf8_str_p, buffer_size, lit_utf8_byte_t);
|
MEM_DEFINE_LOCAL_ARRAY (utf8_str_p, buffer_size, lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (string_p, utf8_str_p, (ssize_t) buffer_size);
|
ssize_t sz = ecma_string_to_utf8_string (string_p, utf8_str_p, (ssize_t) buffer_size);
|
||||||
|
JERRY_ASSERT (sz > 0);
|
||||||
|
|
||||||
byte = utf8_str_p[index];
|
byte = utf8_str_p[index];
|
||||||
|
|
||||||
@@ -1801,7 +1813,8 @@ ecma_string_substr (const ecma_string_t *string_p, /**< pointer to an ecma strin
|
|||||||
lit_utf8_size_t buffer_size = ecma_string_get_size (string_p);
|
lit_utf8_size_t buffer_size = ecma_string_get_size (string_p);
|
||||||
MEM_DEFINE_LOCAL_ARRAY (utf8_str_p, buffer_size, lit_utf8_byte_t);
|
MEM_DEFINE_LOCAL_ARRAY (utf8_str_p, buffer_size, lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (string_p, utf8_str_p, (ssize_t) buffer_size);
|
ssize_t sz = ecma_string_to_utf8_string (string_p, utf8_str_p, (ssize_t) buffer_size);
|
||||||
|
JERRY_ASSERT (sz >= 0);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* II. Extract substring
|
* II. Extract substring
|
||||||
@@ -1847,7 +1860,9 @@ ecma_string_trim (const ecma_string_t *string_p) /**< pointer to an ecma string
|
|||||||
if (buffer_size > 0)
|
if (buffer_size > 0)
|
||||||
{
|
{
|
||||||
MEM_DEFINE_LOCAL_ARRAY (utf8_str_p, buffer_size, lit_utf8_byte_t);
|
MEM_DEFINE_LOCAL_ARRAY (utf8_str_p, buffer_size, lit_utf8_byte_t);
|
||||||
ecma_string_to_utf8_string (string_p, utf8_str_p, (ssize_t) buffer_size);
|
|
||||||
|
ssize_t sz = ecma_string_to_utf8_string (string_p, utf8_str_p, (ssize_t) buffer_size);
|
||||||
|
JERRY_ASSERT (sz >= 0);
|
||||||
|
|
||||||
lit_utf8_iterator_t front = lit_utf8_iterator_create (utf8_str_p, buffer_size);
|
lit_utf8_iterator_t front = lit_utf8_iterator_create (utf8_str_p, buffer_size);
|
||||||
|
|
||||||
|
|||||||
@@ -127,9 +127,12 @@ extern void ecma_deref_ecma_string (ecma_string_t *string_p);
|
|||||||
extern void ecma_check_that_ecma_string_need_not_be_freed (const ecma_string_t *string_p);
|
extern void ecma_check_that_ecma_string_need_not_be_freed (const ecma_string_t *string_p);
|
||||||
extern ecma_number_t ecma_string_to_number (const ecma_string_t *str_p);
|
extern ecma_number_t ecma_string_to_number (const ecma_string_t *str_p);
|
||||||
extern bool ecma_string_get_array_index (const ecma_string_t *str_p, uint32_t *index);
|
extern bool ecma_string_get_array_index (const ecma_string_t *str_p, uint32_t *index);
|
||||||
extern ssize_t ecma_string_to_utf8_string (const ecma_string_t *string_desc_p,
|
|
||||||
lit_utf8_byte_t *buffer_p,
|
extern ssize_t __attr_return_value_should_be_checked___
|
||||||
ssize_t buffer_size);
|
ecma_string_to_utf8_string (const ecma_string_t *string_desc_p,
|
||||||
|
lit_utf8_byte_t *buffer_p,
|
||||||
|
ssize_t buffer_size);
|
||||||
|
|
||||||
extern bool ecma_compare_ecma_strings_equal_hashes (const ecma_string_t *string1_p,
|
extern bool ecma_compare_ecma_strings_equal_hashes (const ecma_string_t *string1_p,
|
||||||
const ecma_string_t *string2_p);
|
const ecma_string_t *string2_p);
|
||||||
extern bool ecma_compare_ecma_strings (const ecma_string_t *string1_p,
|
extern bool ecma_compare_ecma_strings (const ecma_string_t *string1_p,
|
||||||
|
|||||||
@@ -208,7 +208,9 @@ ecma_builtin_date_parse (ecma_value_t this_arg __attr_unused___, /**< this argum
|
|||||||
lit_utf8_size_t date_str_size = ecma_string_get_size (date_str_p);
|
lit_utf8_size_t date_str_size = ecma_string_get_size (date_str_p);
|
||||||
MEM_DEFINE_LOCAL_ARRAY (date_start_p, date_str_size, lit_utf8_byte_t);
|
MEM_DEFINE_LOCAL_ARRAY (date_start_p, date_str_size, lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (date_str_p, date_start_p, (ssize_t) date_str_size);
|
ssize_t sz = ecma_string_to_utf8_string (date_str_p, date_start_p, (ssize_t) date_str_size);
|
||||||
|
JERRY_ASSERT (sz >= 0);
|
||||||
|
|
||||||
lit_utf8_iterator_t iter = lit_utf8_iterator_create (date_start_p, date_str_size);
|
lit_utf8_iterator_t iter = lit_utf8_iterator_create (date_start_p, date_str_size);
|
||||||
|
|
||||||
/* 1. read year */
|
/* 1. read year */
|
||||||
|
|||||||
@@ -94,7 +94,9 @@ ecma_builtin_function_helper_get_arguments (const ecma_value_t *arguments_list_p
|
|||||||
lit_utf8_size_t str_size = ecma_string_get_size (str_p);
|
lit_utf8_size_t str_size = ecma_string_get_size (str_p);
|
||||||
MEM_DEFINE_LOCAL_ARRAY (start_p, str_size, lit_utf8_byte_t);
|
MEM_DEFINE_LOCAL_ARRAY (start_p, str_size, lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (str_p, start_p, (ssize_t) str_size);
|
ssize_t sz = ecma_string_to_utf8_string (str_p, start_p, (ssize_t) str_size);
|
||||||
|
JERRY_ASSERT (sz >= 0);
|
||||||
|
|
||||||
lit_utf8_iterator_t iter = lit_utf8_iterator_create (start_p, str_size);
|
lit_utf8_iterator_t iter = lit_utf8_iterator_create (start_p, str_size);
|
||||||
|
|
||||||
while (!lit_utf8_iterator_is_eos (&iter))
|
while (!lit_utf8_iterator_is_eos (&iter))
|
||||||
@@ -190,7 +192,9 @@ ecma_builtin_function_dispatch_construct (const ecma_value_t *arguments_list_p,
|
|||||||
|
|
||||||
MEM_DEFINE_LOCAL_ARRAY (start_p, str_size, lit_utf8_byte_t);
|
MEM_DEFINE_LOCAL_ARRAY (start_p, str_size, lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (arguments_str_p, start_p, (ssize_t) str_size);
|
ssize_t sz = ecma_string_to_utf8_string (arguments_str_p, start_p, (ssize_t) str_size);
|
||||||
|
JERRY_ASSERT (sz >= 0);
|
||||||
|
|
||||||
lit_utf8_iterator_t iter = lit_utf8_iterator_create (start_p, str_size);
|
lit_utf8_iterator_t iter = lit_utf8_iterator_create (start_p, str_size);
|
||||||
ecma_length_t last_separator = lit_utf8_iterator_get_index (&iter);
|
ecma_length_t last_separator = lit_utf8_iterator_get_index (&iter);
|
||||||
ecma_length_t end_position;
|
ecma_length_t end_position;
|
||||||
|
|||||||
@@ -796,9 +796,11 @@ ecma_builtin_global_object_decode_uri_helper (ecma_value_t uri __attr_unused___,
|
|||||||
input_size + 1,
|
input_size + 1,
|
||||||
lit_utf8_byte_t);
|
lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (input_string_p,
|
ssize_t sz = ecma_string_to_utf8_string (input_string_p,
|
||||||
input_start_p,
|
input_start_p,
|
||||||
(ssize_t) (input_size));
|
(ssize_t) (input_size));
|
||||||
|
JERRY_ASSERT (sz >= 0);
|
||||||
|
|
||||||
input_start_p[input_size] = LIT_BYTE_NULL;
|
input_start_p[input_size] = LIT_BYTE_NULL;
|
||||||
|
|
||||||
lit_utf8_byte_t *input_char_p = input_start_p;
|
lit_utf8_byte_t *input_char_p = input_start_p;
|
||||||
@@ -1043,9 +1045,10 @@ ecma_builtin_global_object_encode_uri_helper (ecma_value_t uri, /**< uri argumen
|
|||||||
input_size,
|
input_size,
|
||||||
lit_utf8_byte_t);
|
lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (input_string_p,
|
ssize_t sz = ecma_string_to_utf8_string (input_string_p,
|
||||||
input_start_p,
|
input_start_p,
|
||||||
(ssize_t) (input_size));
|
(ssize_t) (input_size));
|
||||||
|
JERRY_ASSERT (sz >= 0);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The URI encoding has two major phases: first we validate the input,
|
* The URI encoding has two major phases: first we validate the input,
|
||||||
@@ -1230,9 +1233,10 @@ ecma_builtin_global_object_escape (ecma_value_t this_arg __attr_unused___, /**<
|
|||||||
input_size,
|
input_size,
|
||||||
lit_utf8_byte_t);
|
lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (input_string_p,
|
ssize_t sz = ecma_string_to_utf8_string (input_string_p,
|
||||||
input_start_p,
|
input_start_p,
|
||||||
(ssize_t) (input_size));
|
(ssize_t) (input_size));
|
||||||
|
JERRY_ASSERT (sz >= 0);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The escape routine has two major phases: first we compute
|
* The escape routine has two major phases: first we compute
|
||||||
|
|||||||
@@ -593,9 +593,10 @@ ecma_builtin_helper_string_prototype_object_index_of (ecma_value_t this_arg, /**
|
|||||||
original_size,
|
original_size,
|
||||||
lit_utf8_byte_t);
|
lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (original_str_p,
|
ssize_t sz = ecma_string_to_utf8_string (original_str_p,
|
||||||
original_str_utf8_p,
|
original_str_utf8_p,
|
||||||
(ssize_t) (original_size));
|
(ssize_t) (original_size));
|
||||||
|
JERRY_ASSERT (sz >= 0);
|
||||||
|
|
||||||
lit_utf8_iterator_t original_it = lit_utf8_iterator_create (original_str_utf8_p, original_size);
|
lit_utf8_iterator_t original_it = lit_utf8_iterator_create (original_str_utf8_p, original_size);
|
||||||
|
|
||||||
@@ -607,9 +608,10 @@ ecma_builtin_helper_string_prototype_object_index_of (ecma_value_t this_arg, /**
|
|||||||
search_size,
|
search_size,
|
||||||
lit_utf8_byte_t);
|
lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (search_str_p,
|
ssize_t sz = ecma_string_to_utf8_string (search_str_p,
|
||||||
search_str_utf8_p,
|
search_str_utf8_p,
|
||||||
(ssize_t) (search_size));
|
(ssize_t) (search_size));
|
||||||
|
JERRY_ASSERT (sz >= 0);
|
||||||
|
|
||||||
lit_utf8_iterator_t search_it = lit_utf8_iterator_create (search_str_utf8_p, search_size);
|
lit_utf8_iterator_t search_it = lit_utf8_iterator_create (search_str_utf8_p, search_size);
|
||||||
|
|
||||||
|
|||||||
@@ -836,7 +836,9 @@ ecma_builtin_json_parse (ecma_value_t this_arg __attr_unused___, /**< 'this' arg
|
|||||||
|
|
||||||
MEM_DEFINE_LOCAL_ARRAY (str_start_p, buffer_size, lit_utf8_byte_t);
|
MEM_DEFINE_LOCAL_ARRAY (str_start_p, buffer_size, lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (string_p, str_start_p, (ssize_t) buffer_size);
|
ssize_t sz = ecma_string_to_utf8_string (string_p, str_start_p, (ssize_t) buffer_size);
|
||||||
|
JERRY_ASSERT (sz == (ssize_t) string_size);
|
||||||
|
|
||||||
str_start_p[string_size] = LIT_BYTE_NULL;
|
str_start_p[string_size] = LIT_BYTE_NULL;
|
||||||
|
|
||||||
ecma_json_token_t token;
|
ecma_json_token_t token;
|
||||||
|
|||||||
@@ -364,9 +364,10 @@ ecma_builtin_string_prototype_object_index_of (ecma_value_t this_arg, /**< this
|
|||||||
original_size,
|
original_size,
|
||||||
lit_utf8_byte_t);
|
lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (original_str_p,
|
ssize_t sz = ecma_string_to_utf8_string (original_str_p,
|
||||||
original_str_utf8_p,
|
original_str_utf8_p,
|
||||||
(ssize_t) (original_size));
|
(ssize_t) (original_size));
|
||||||
|
JERRY_ASSERT (sz >= 0);
|
||||||
|
|
||||||
lit_utf8_iterator_t original_it = lit_utf8_iterator_create (original_str_utf8_p, original_size);
|
lit_utf8_iterator_t original_it = lit_utf8_iterator_create (original_str_utf8_p, original_size);
|
||||||
|
|
||||||
@@ -378,9 +379,10 @@ ecma_builtin_string_prototype_object_index_of (ecma_value_t this_arg, /**< this
|
|||||||
search_size,
|
search_size,
|
||||||
lit_utf8_byte_t);
|
lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (search_str_p,
|
ssize_t sz = ecma_string_to_utf8_string (search_str_p,
|
||||||
search_str_utf8_p,
|
search_str_utf8_p,
|
||||||
(ssize_t) (search_size));
|
(ssize_t) (search_size));
|
||||||
|
JERRY_ASSERT (sz >= 0);
|
||||||
|
|
||||||
lit_utf8_iterator_t search_it = lit_utf8_iterator_create (search_str_utf8_p, search_size);
|
lit_utf8_iterator_t search_it = lit_utf8_iterator_create (search_str_utf8_p, search_size);
|
||||||
|
|
||||||
@@ -888,9 +890,10 @@ ecma_builtin_string_prototype_object_replace_match (ecma_builtin_replace_search_
|
|||||||
search_size,
|
search_size,
|
||||||
lit_utf8_byte_t);
|
lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (search_string_p,
|
ssize_t sz = ecma_string_to_utf8_string (search_string_p,
|
||||||
search_start_p,
|
search_start_p,
|
||||||
(ssize_t) (search_size));
|
(ssize_t) (search_size));
|
||||||
|
JERRY_ASSERT (sz >= 0);
|
||||||
|
|
||||||
ecma_string_t *input_string_p = ecma_get_string_from_value (context_p->input_string);
|
ecma_string_t *input_string_p = ecma_get_string_from_value (context_p->input_string);
|
||||||
lit_utf8_size_t input_size = ecma_string_get_size (input_string_p);
|
lit_utf8_size_t input_size = ecma_string_get_size (input_string_p);
|
||||||
@@ -899,9 +902,10 @@ ecma_builtin_string_prototype_object_replace_match (ecma_builtin_replace_search_
|
|||||||
input_size,
|
input_size,
|
||||||
lit_utf8_byte_t);
|
lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (input_string_p,
|
ssize_t sz = ecma_string_to_utf8_string (input_string_p,
|
||||||
input_start_p,
|
input_start_p,
|
||||||
(ssize_t) (input_size));
|
(ssize_t) (input_size));
|
||||||
|
JERRY_ASSERT (sz >= 0);
|
||||||
|
|
||||||
lit_utf8_iterator_t search_iterator = lit_utf8_iterator_create (search_start_p, search_size);
|
lit_utf8_iterator_t search_iterator = lit_utf8_iterator_create (search_start_p, search_size);
|
||||||
lit_utf8_iterator_t input_iterator = lit_utf8_iterator_create (input_start_p, input_size);
|
lit_utf8_iterator_t input_iterator = lit_utf8_iterator_create (input_start_p, input_size);
|
||||||
@@ -1409,9 +1413,10 @@ ecma_builtin_string_prototype_object_replace_main (ecma_builtin_replace_search_c
|
|||||||
replace_size,
|
replace_size,
|
||||||
lit_utf8_byte_t);
|
lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (replace_string_p,
|
ssize_t sz = ecma_string_to_utf8_string (replace_string_p,
|
||||||
replace_start_p,
|
replace_start_p,
|
||||||
(ssize_t) (replace_size));
|
(ssize_t) (replace_size));
|
||||||
|
JERRY_ASSERT (sz >= 0);
|
||||||
|
|
||||||
context_p->replace_string_p = replace_string_p;
|
context_p->replace_string_p = replace_string_p;
|
||||||
context_p->replace_iterator = lit_utf8_iterator_create (replace_start_p, replace_size);
|
context_p->replace_iterator = lit_utf8_iterator_create (replace_start_p, replace_size);
|
||||||
@@ -2284,9 +2289,10 @@ ecma_builtin_string_prototype_object_conversion_helper (ecma_value_t this_arg, /
|
|||||||
input_size,
|
input_size,
|
||||||
lit_utf8_byte_t);
|
lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (input_string_p,
|
ssize_t sz = ecma_string_to_utf8_string (input_string_p,
|
||||||
input_start_p,
|
input_start_p,
|
||||||
(ssize_t) (input_size));
|
(ssize_t) (input_size));
|
||||||
|
JERRY_ASSERT (sz >= 0);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The URI encoding has two major phases: first we compute
|
* The URI encoding has two major phases: first we compute
|
||||||
@@ -2503,7 +2509,8 @@ ecma_builtin_string_prototype_object_trim (ecma_value_t this_arg) /**< this argu
|
|||||||
/* Workaround: avoid repeated call of ecma_string_get_char_at_pos() because its overhead */
|
/* Workaround: avoid repeated call of ecma_string_get_char_at_pos() because its overhead */
|
||||||
lit_utf8_byte_t *original_utf8_str_p = (lit_utf8_byte_t *) mem_heap_alloc_block (size + 1,
|
lit_utf8_byte_t *original_utf8_str_p = (lit_utf8_byte_t *) mem_heap_alloc_block (size + 1,
|
||||||
MEM_HEAP_ALLOC_SHORT_TERM);
|
MEM_HEAP_ALLOC_SHORT_TERM);
|
||||||
ecma_string_to_utf8_string (original_string_p, original_utf8_str_p, (ssize_t) size);
|
ssize_t sz = ecma_string_to_utf8_string (original_string_p, original_utf8_str_p, (ssize_t) size);
|
||||||
|
JERRY_ASSERT (sz >= 0);
|
||||||
|
|
||||||
const ecma_length_t length = lit_utf8_string_length (original_utf8_str_p, size);
|
const ecma_length_t length = lit_utf8_string_length (original_utf8_str_p, size);
|
||||||
|
|
||||||
|
|||||||
@@ -71,7 +71,9 @@ re_parse_regexp_flags (ecma_string_t *flags_str_p, /**< Input string with flags
|
|||||||
lit_utf8_size_t flags_str_size = ecma_string_get_size (flags_str_p);
|
lit_utf8_size_t flags_str_size = ecma_string_get_size (flags_str_p);
|
||||||
MEM_DEFINE_LOCAL_ARRAY (flags_start_p, flags_str_size, lit_utf8_byte_t);
|
MEM_DEFINE_LOCAL_ARRAY (flags_start_p, flags_str_size, lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (flags_str_p, flags_start_p, (ssize_t) flags_str_size);
|
ssize_t sz = ecma_string_to_utf8_string (flags_str_p, flags_start_p, (ssize_t) flags_str_size);
|
||||||
|
JERRY_ASSERT (sz >= 0);
|
||||||
|
|
||||||
lit_utf8_iterator_t iter = lit_utf8_iterator_create (flags_start_p, flags_str_size);
|
lit_utf8_iterator_t iter = lit_utf8_iterator_create (flags_start_p, flags_str_size);
|
||||||
|
|
||||||
while (!lit_utf8_iterator_is_eos (&iter)
|
while (!lit_utf8_iterator_is_eos (&iter)
|
||||||
@@ -1236,7 +1238,9 @@ ecma_regexp_exec_helper (ecma_value_t regexp_value, /**< RegExp object */
|
|||||||
|
|
||||||
MEM_DEFINE_LOCAL_ARRAY (input_utf8_buffer_p, input_string_size, lit_utf8_byte_t);
|
MEM_DEFINE_LOCAL_ARRAY (input_utf8_buffer_p, input_string_size, lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (input_string_p, input_utf8_buffer_p, (ssize_t) input_string_size);
|
ssize_t sz = ecma_string_to_utf8_string (input_string_p, input_utf8_buffer_p, (ssize_t) input_string_size);
|
||||||
|
JERRY_ASSERT (sz >= 0);
|
||||||
|
|
||||||
lit_utf8_iterator_t iterator = lit_utf8_iterator_create (input_utf8_buffer_p, input_string_size);
|
lit_utf8_iterator_t iterator = lit_utf8_iterator_create (input_utf8_buffer_p, input_string_size);
|
||||||
|
|
||||||
re_matcher_ctx_t re_ctx;
|
re_matcher_ctx_t re_ctx;
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
#define __noreturn __attribute__((noreturn))
|
#define __noreturn __attribute__((noreturn))
|
||||||
#define __attr_noinline___ __attribute__((noinline))
|
#define __attr_noinline___ __attribute__((noinline))
|
||||||
#define __attr_used___ __attribute__((used))
|
#define __attr_used___ __attribute__((used))
|
||||||
|
#define __attr_return_value_should_be_checked___ __attribute__((warn_unused_result))
|
||||||
#ifndef __attr_always_inline___
|
#ifndef __attr_always_inline___
|
||||||
# define __attr_always_inline___ __attribute__((always_inline))
|
# define __attr_always_inline___ __attribute__((always_inline))
|
||||||
#endif /* !__attr_always_inline___ */
|
#endif /* !__attr_always_inline___ */
|
||||||
|
|||||||
@@ -653,7 +653,9 @@ re_compile_bytecode (re_bytecode_t **out_bytecode_p, /**< out:pointer to bytecod
|
|||||||
lit_utf8_size_t pattern_str_size = ecma_string_get_size (pattern_str_p);
|
lit_utf8_size_t pattern_str_size = ecma_string_get_size (pattern_str_p);
|
||||||
MEM_DEFINE_LOCAL_ARRAY (pattern_start_p, pattern_str_size, lit_utf8_byte_t);
|
MEM_DEFINE_LOCAL_ARRAY (pattern_start_p, pattern_str_size, lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (pattern_str_p, pattern_start_p, (ssize_t) pattern_str_size);
|
ssize_t sz = ecma_string_to_utf8_string (pattern_str_p, pattern_start_p, (ssize_t) pattern_str_size);
|
||||||
|
JERRY_ASSERT (sz >= 0);
|
||||||
|
|
||||||
lit_utf8_iterator_t iter = lit_utf8_iterator_create (pattern_start_p, pattern_str_size);
|
lit_utf8_iterator_t iter = lit_utf8_iterator_create (pattern_start_p, pattern_str_size);
|
||||||
|
|
||||||
re_parser_ctx_t parser_ctx;
|
re_parser_ctx_t parser_ctx;
|
||||||
|
|||||||
@@ -154,7 +154,8 @@ opfunc_assignment (vm_instr_t instr, /**< instruction */
|
|||||||
lit_utf8_size_t re_utf8_buffer_size = ecma_string_get_size (string_p);
|
lit_utf8_size_t re_utf8_buffer_size = ecma_string_get_size (string_p);
|
||||||
MEM_DEFINE_LOCAL_ARRAY (re_utf8_buffer_p, re_utf8_buffer_size, lit_utf8_byte_t);
|
MEM_DEFINE_LOCAL_ARRAY (re_utf8_buffer_p, re_utf8_buffer_size, lit_utf8_byte_t);
|
||||||
|
|
||||||
ecma_string_to_utf8_string (string_p, re_utf8_buffer_p, (ssize_t) re_utf8_buffer_size);
|
ssize_t sz = ecma_string_to_utf8_string (string_p, re_utf8_buffer_p, (ssize_t) re_utf8_buffer_size);
|
||||||
|
JERRY_ASSERT (sz >= 0);
|
||||||
|
|
||||||
lit_utf8_byte_t *ch_p = re_utf8_buffer_p;
|
lit_utf8_byte_t *ch_p = re_utf8_buffer_p;
|
||||||
lit_utf8_byte_t *last_slash_p = NULL;
|
lit_utf8_byte_t *last_slash_p = NULL;
|
||||||
|
|||||||
Reference in New Issue
Block a user