File tree Expand file tree Collapse file tree 2 files changed +26
-0
lines changed
Expand file tree Collapse file tree 2 files changed +26
-0
lines changed Original file line number Diff line number Diff line change @@ -272,6 +272,7 @@ jerry_api_value_t jerry_api_create_string_value (jerry_api_string_t *value);
272272jerry_api_size_t jerry_api_string_to_char_buffer (const jerry_api_string_t * , jerry_api_char_t * , jerry_api_size_t );
273273jerry_api_string_t * jerry_api_acquire_string (jerry_api_string_t * );
274274jerry_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
276277void jerry_api_release_object (jerry_api_object_t * );
277278void jerry_api_release_string (jerry_api_string_t * );
Original file line number Diff line number Diff 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 */
You can’t perform that action at this time.
0 commit comments