Skip to content

Commit 7d41d38

Browse files
authored
Remove deprecated native handle support. (#2496)
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg [email protected]
1 parent b4dc6b0 commit 7d41d38

File tree

9 files changed

+32
-295
lines changed

9 files changed

+32
-295
lines changed

docs/02.API-REFERENCE.md

Lines changed: 0 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -334,20 +334,6 @@ typedef jerry_value_t (*jerry_external_handler_t) (const jerry_value_t function_
334334
const jerry_length_t args_count);
335335
```
336336

337-
## jerry_object_free_callback_t
338-
339-
**Summary**
340-
341-
**Deprecated: Please use jerry_object_native_free_callback_t instead.**
342-
343-
Native free callback of an object.
344-
345-
**Prototype**
346-
347-
```c
348-
typedef void (*jerry_object_free_callback_t) (const uintptr_t native_p);
349-
```
350-
351337
## jerry_object_native_free_callback_t
352338

353339
**Summary**
@@ -4387,106 +4373,6 @@ jerry_set_prototype (const jerry_value_t obj_val,
43874373
- [jerry_get_prototype](#jerry_get_prototype)
43884374

43894375

4390-
## jerry_get_object_native_handle
4391-
4392-
**Summary**
4393-
4394-
**Deprecated: Please use jerry_get_object_native_pointer instead.**
4395-
4396-
Get native handle, previously associated with specified object.
4397-
4398-
**Prototype**
4399-
4400-
```c
4401-
bool
4402-
jerry_get_object_native_handle (const jerry_value_t obj_val,
4403-
uintptr_t *out_handle_p);
4404-
```
4405-
4406-
- `obj_val` - object value
4407-
- `out_handle_p` - handle value (output parameter).
4408-
- return value
4409-
- true, if there is handle associated with the object
4410-
- false, otherwise
4411-
4412-
**Example**
4413-
4414-
```c
4415-
{
4416-
jerry_value_t object;
4417-
uintptr_t handle_set;
4418-
4419-
... // receive or construct object and handle_set value
4420-
4421-
jerry_set_object_native_handle (object, handle_set, NULL);
4422-
4423-
...
4424-
4425-
uintptr_t handle_get;
4426-
bool is_there_associated_handle = jerry_get_object_native_handle (object, &handle_get);
4427-
}
4428-
```
4429-
4430-
**See also**
4431-
4432-
- [jerry_create_object](#jerry_create_object)
4433-
- [jerry_set_object_native_handle](#jerry_set_object_native_handle)
4434-
- [jerry_get_object_native_pointer](#jerry_get_object_native_pointer)
4435-
4436-
4437-
## jerry_set_object_native_handle
4438-
4439-
**Summary**
4440-
4441-
**Deprecated: Please use jerry_set_object_native_pointer instead.**
4442-
4443-
Set native handle and an optional free callback for the specified object.
4444-
4445-
*Note*: If native handle was already set for the object, its value is updated.
4446-
4447-
*Note*: If a non-NULL free callback is specified, it will be called
4448-
by the garbage collector when the object is freed. The free
4449-
callback always overwrites the previous value, so passing
4450-
a NULL value deletes the current free callback.
4451-
4452-
**Prototype**
4453-
4454-
```c
4455-
void
4456-
jerry_set_object_native_handle (const jerry_value_t obj_val,
4457-
uintptr_t handle_p,
4458-
jerry_object_free_callback_t freecb_p);
4459-
```
4460-
4461-
- `obj_val` - object value to set handle in
4462-
- `handle_p` - handle value
4463-
- `freecb_p` - pointer to "free" callback or NULL
4464-
4465-
**Example**
4466-
4467-
```c
4468-
{
4469-
jerry_value_t object;
4470-
uintptr_t handle_set;
4471-
4472-
... // receive or construct object and handle_set value
4473-
4474-
jerry_set_object_native_handle (object, handle_set, NULL);
4475-
4476-
...
4477-
4478-
uintptr_t handle_get;
4479-
bool is_there_associated_handle = jerry_get_object_native_handle (object, &handle_get);
4480-
}
4481-
```
4482-
4483-
**See also**
4484-
4485-
- [jerry_create_object](#jerry_create_object)
4486-
- [jerry_get_object_native_handle](#jerry_get_object_native_handle)
4487-
- [jerry_set_object_native_pointer](#jerry_set_object_native_pointer)
4488-
4489-
44904376
## jerry_get_object_native_pointer
44914377

44924378
**Summary**

jerry-core/api/jerry.c

Lines changed: 4 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -2355,69 +2355,6 @@ jerry_set_prototype (const jerry_value_t obj_val, /**< object value */
23552355
return ECMA_VALUE_TRUE;
23562356
} /* jerry_set_prototype */
23572357

2358-
/**
2359-
* Get native handle, associated with specified object.
2360-
*
2361-
* Note: This API is deprecated, please use jerry_get_object_native_pointer instaed.
2362-
*
2363-
* @return true - if there is an associated handle (handle is returned through out_handle_p),
2364-
* false - otherwise
2365-
*/
2366-
bool
2367-
jerry_get_object_native_handle (const jerry_value_t obj_val, /**< object to get handle from */
2368-
uintptr_t *out_handle_p) /**< [out] handle value */
2369-
{
2370-
jerry_assert_api_available ();
2371-
2372-
if (!ecma_is_value_object (obj_val))
2373-
{
2374-
return false;
2375-
}
2376-
2377-
ecma_native_pointer_t *native_pointer_p;
2378-
native_pointer_p = ecma_get_native_pointer_value (ecma_get_object_from_value (obj_val),
2379-
LIT_INTERNAL_MAGIC_STRING_NATIVE_HANDLE);
2380-
2381-
if (native_pointer_p == NULL)
2382-
{
2383-
return false;
2384-
}
2385-
2386-
*out_handle_p = (uintptr_t) native_pointer_p->data_p;
2387-
return true;
2388-
} /* jerry_get_object_native_handle */
2389-
2390-
/**
2391-
* Set native handle and an optional free callback for the specified object.
2392-
*
2393-
* Note: This API is deprecated, please use jerry_set_object_native_pointer instaed.
2394-
*
2395-
* Note:
2396-
* If native handle was already set for the object, its value is updated.
2397-
*
2398-
* Note:
2399-
* If a non-NULL free callback is specified, it will be called
2400-
* by the garbage collector when the object is freed. The free
2401-
* callback always overwrites the previous value, so passing
2402-
* a NULL value deletes the current free callback.
2403-
*/
2404-
void
2405-
jerry_set_object_native_handle (const jerry_value_t obj_val, /**< object to set handle in */
2406-
uintptr_t handle_p, /**< handle value */
2407-
jerry_object_free_callback_t freecb_p) /**< object free callback or NULL */
2408-
{
2409-
jerry_assert_api_available ();
2410-
2411-
if (ecma_is_value_object (obj_val))
2412-
{
2413-
ecma_object_t *object_p = ecma_get_object_from_value (obj_val);
2414-
2415-
ecma_create_native_handle_property (object_p,
2416-
(void *) handle_p,
2417-
(void *) (ecma_external_pointer_t) freecb_p);
2418-
}
2419-
} /* jerry_set_object_native_handle */
2420-
24212358
/**
24222359
* Traverse objects.
24232360
*
@@ -2472,9 +2409,9 @@ jerry_objects_foreach_by_native_info (const jerry_object_native_info_t *native_i
24722409
{
24732410
if (!ecma_is_lexical_environment (iter_p))
24742411
{
2475-
native_pointer_p = ecma_get_native_pointer_value (iter_p, LIT_INTERNAL_MAGIC_STRING_NATIVE_POINTER);
2412+
native_pointer_p = ecma_get_native_pointer_value (iter_p);
24762413
if (native_pointer_p
2477-
&& ((const jerry_object_native_info_t *) native_pointer_p->u.info_p) == native_info_p
2414+
&& ((const jerry_object_native_info_t *) native_pointer_p->info_p) == native_info_p
24782415
&& !foreach_p (ecma_make_object_value (iter_p), native_pointer_p->data_p, user_data_p))
24792416
{
24802417
return true;
@@ -2509,8 +2446,7 @@ jerry_get_object_native_pointer (const jerry_value_t obj_val, /**< object to get
25092446
}
25102447

25112448
ecma_native_pointer_t *native_pointer_p;
2512-
native_pointer_p = ecma_get_native_pointer_value (ecma_get_object_from_value (obj_val),
2513-
LIT_INTERNAL_MAGIC_STRING_NATIVE_POINTER);
2449+
native_pointer_p = ecma_get_native_pointer_value (ecma_get_object_from_value (obj_val));
25142450

25152451
if (native_pointer_p == NULL)
25162452
{
@@ -2524,7 +2460,7 @@ jerry_get_object_native_pointer (const jerry_value_t obj_val, /**< object to get
25242460

25252461
if (out_native_info_p != NULL)
25262462
{
2527-
*out_native_info_p = (const jerry_object_native_info_t *) native_pointer_p->u.info_p;
2463+
*out_native_info_p = (const jerry_object_native_info_t *) native_pointer_p->info_p;
25282464
}
25292465

25302466
return true;

jerry-core/ecma/base/ecma-gc.c

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -404,37 +404,23 @@ ecma_gc_mark (ecma_object_t *object_p) /**< object to mark from */
404404
* Free the native handle/pointer by calling its free callback.
405405
*/
406406
static void
407-
ecma_gc_free_native_pointer (ecma_property_t *property_p, /**< property */
408-
lit_magic_string_id_t id) /**< identifier of internal property */
407+
ecma_gc_free_native_pointer (ecma_property_t *property_p) /**< property */
409408
{
410409
JERRY_ASSERT (property_p != NULL);
411410

412-
JERRY_ASSERT (id == LIT_INTERNAL_MAGIC_STRING_NATIVE_HANDLE
413-
|| id == LIT_INTERNAL_MAGIC_STRING_NATIVE_POINTER);
414-
415411
ecma_property_value_t *value_p = ECMA_PROPERTY_VALUE_PTR (property_p);
416412
ecma_native_pointer_t *native_pointer_p;
417413

418414
native_pointer_p = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_native_pointer_t,
419415
value_p->value);
420416

421-
if (id == LIT_INTERNAL_MAGIC_STRING_NATIVE_HANDLE)
422-
{
423-
if (native_pointer_p->u.callback_p != NULL)
424-
{
425-
native_pointer_p->u.callback_p ((uintptr_t) native_pointer_p->data_p);
426-
}
427-
}
428-
else
417+
if (native_pointer_p->info_p != NULL)
429418
{
430-
if (native_pointer_p->u.info_p != NULL)
431-
{
432-
ecma_object_native_free_callback_t free_cb = native_pointer_p->u.info_p->free_cb;
419+
ecma_object_native_free_callback_t free_cb = native_pointer_p->info_p->free_cb;
433420

434-
if (free_cb != NULL)
435-
{
436-
free_cb (native_pointer_p->data_p);
437-
}
421+
if (free_cb != NULL)
422+
{
423+
free_cb (native_pointer_p->data_p);
438424
}
439425
}
440426
} /* ecma_gc_free_native_pointer */
@@ -479,10 +465,9 @@ ecma_gc_free_object (ecma_object_t *object_p) /**< object to free */
479465

480466
/* Call the native's free callback. */
481467
if (ECMA_PROPERTY_GET_NAME_TYPE (*property_p) == ECMA_DIRECT_STRING_MAGIC
482-
&& (name_cp == LIT_INTERNAL_MAGIC_STRING_NATIVE_HANDLE
483-
|| name_cp == LIT_INTERNAL_MAGIC_STRING_NATIVE_POINTER))
468+
&& (name_cp == LIT_INTERNAL_MAGIC_STRING_NATIVE_POINTER))
484469
{
485-
ecma_gc_free_native_pointer (property_p, (lit_magic_string_id_t) name_cp);
470+
ecma_gc_free_native_pointer (property_p);
486471
}
487472

488473
if (prop_iter_p->types[i] != ECMA_PROPERTY_TYPE_DELETED)

jerry-core/ecma/base/ecma-globals.h

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -261,11 +261,6 @@ typedef ecma_value_t (*ecma_external_handler_t) (const ecma_value_t function_obj
261261
const ecma_value_t args_p[],
262262
const ecma_length_t args_count);
263263

264-
/**
265-
* Native free callback of an object (deprecated).
266-
*/
267-
typedef void (*ecma_object_free_callback_t) (const uintptr_t native_p);
268-
269264
/**
270265
* Native free callback of an object.
271266
*/
@@ -285,11 +280,7 @@ typedef struct
285280
typedef struct
286281
{
287282
void *data_p; /**< points to the data of the object */
288-
union
289-
{
290-
ecma_object_free_callback_t callback_p; /**< callback */
291-
ecma_object_native_info_t *info_p; /**< native info */
292-
} u;
283+
ecma_object_native_info_t *info_p; /**< native info */
293284
} ecma_native_pointer_t;
294285

295286
/**

0 commit comments

Comments
 (0)