Rework external string free operation (#4690)

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
Zoltan Herczeg
2021-08-17 08:31:30 +02:00
committed by GitHub
parent 74e5ccd434
commit e7ffb70ae0
9 changed files with 187 additions and 44 deletions
+14 -4
View File
@@ -2700,9 +2700,9 @@ jerry_create_string_sz (const jerry_char_t *str_p, /**< pointer to string */
*/
jerry_value_t
jerry_create_external_string (const jerry_char_t *str_p, /**< pointer to string */
jerry_value_free_callback_t free_cb) /**< free callback */
void *user_p) /**< user pointer passed to the callback when the string is freed */
{
return jerry_create_external_string_sz (str_p, lit_zt_utf8_string_size ((lit_utf8_byte_t *) str_p), free_cb);
return jerry_create_external_string_sz (str_p, lit_zt_utf8_string_size ((lit_utf8_byte_t *) str_p), user_p);
} /* jerry_create_external_string */
/**
@@ -2716,13 +2716,13 @@ jerry_create_external_string (const jerry_char_t *str_p, /**< pointer to string
jerry_value_t
jerry_create_external_string_sz (const jerry_char_t *str_p, /**< pointer to string */
jerry_size_t str_size, /**< string size */
jerry_value_free_callback_t free_cb) /**< free callback */
void *user_p) /**< user pointer passed to the callback when the string is freed */
{
jerry_assert_api_available ();
ecma_string_t *ecma_str_p = ecma_new_ecma_external_string_from_cesu8 ((lit_utf8_byte_t *) str_p,
(lit_utf8_size_t) str_size,
free_cb);
user_p);
return ecma_make_string_value (ecma_str_p);
} /* jerry_create_external_string_sz */
@@ -3107,6 +3107,16 @@ jerry_substring_to_utf8_char_buffer (const jerry_value_t value, /**< input strin
buffer_size);
} /* jerry_substring_to_utf8_char_buffer */
/**
* Sets the global callback which is called when an external string is freed.
*/
void
jerry_string_set_external_string_free_callback (jerry_external_string_free_callback_t callback_p) /**< free
* callback */
{
JERRY_CONTEXT (external_string_free_callback_p) = callback_p;
} /* jerry_string_set_external_string_free_callback */
/**
* Checks whether the object or it's prototype objects have the given property.
*