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);
272
272
jerry_api_size_t jerry_api_string_to_char_buffer (const jerry_api_string_t * , jerry_api_char_t * , jerry_api_size_t );
273
273
jerry_api_string_t * jerry_api_acquire_string (jerry_api_string_t * );
274
274
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 * );
275
276
276
277
void jerry_api_release_object (jerry_api_object_t * );
277
278
void 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
634
634
ecma_deref_object (object_p );
635
635
} /* jerry_api_release_object */
636
636
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
+
637
662
/**
638
663
* Release specified Jerry API value
639
664
*/
You can’t perform that action at this time.
0 commit comments