Skip to content

Commit 0a1f1b2

Browse files
author
François Baldassari
committed
Add acquire_value API to simplify caller code
JerryScript-DCO-1.0-Signed-off-by: François Baldassari [email protected]
1 parent 25b0750 commit 0a1f1b2

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

jerry-core/jerry-api.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ jerry_api_value_t jerry_api_create_string_value (jerry_api_string_t *value);
272272
jerry_api_size_t jerry_api_string_to_char_buffer (const jerry_api_string_t *, jerry_api_char_t *, jerry_api_size_t);
273273
jerry_api_string_t *jerry_api_acquire_string (jerry_api_string_t *);
274274
jerry_api_object_t *jerry_api_acquire_object (jerry_api_object_t *);
275+
jerry_api_value_t *jerry_api_acquire_value (jerry_api_value_t *);
275276

276277
void jerry_api_release_object (jerry_api_object_t *);
277278
void jerry_api_release_string (jerry_api_string_t *);

jerry-core/jerry.c

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,31 @@ jerry_api_release_object (jerry_api_object_t *object_p) /**< pointer acquired th
634634
ecma_deref_object (object_p);
635635
} /* jerry_api_release_object */
636636

637+
/**
638+
* Acquire specified Jerry API value
639+
*
640+
* Warning:
641+
* acquired pointer should be released with jerry_api_release_value
642+
*
643+
* @return pointer that may be used outside of the engine
644+
*/
645+
jerry_api_value_t *
646+
jerry_api_acquire_value (jerry_api_value_t *value_p) /**< API value */
647+
{
648+
jerry_assert_api_available ();
649+
650+
if (value_p->type == JERRY_API_DATA_TYPE_STRING)
651+
{
652+
jerry_api_acquire_string (value_p->u.v_string);
653+
}
654+
else if (value_p->type == JERRY_API_DATA_TYPE_OBJECT)
655+
{
656+
jerry_api_acquire_object (value_p->u.v_object);
657+
}
658+
659+
return value_p;
660+
} /* jerry_api_acquire_value */
661+
637662
/**
638663
* Release specified Jerry API value
639664
*/

0 commit comments

Comments
 (0)