[wasm] Add HB_STRUCT_TYPE
This commit is contained in:
parent
851ef1380a
commit
099a0150e1
|
@ -35,11 +35,10 @@ void
|
|||
blob_free (HB_WASM_EXEC_ENV
|
||||
ptr_t(blob_t) blobptr)
|
||||
{
|
||||
if (unlikely (!validate_app_addr (blobptr, sizeof (blob_t))))
|
||||
HB_STRUCT_TYPE (blob_t, blob);
|
||||
if (unlikely (!blob))
|
||||
return;
|
||||
|
||||
blob_t *blob = (blob_t *) addr_app_to_native (blobptr);
|
||||
|
||||
module_free (blob->data);
|
||||
}
|
||||
|
||||
|
|
|
@ -37,11 +37,10 @@ void
|
|||
buffer_contents_free (HB_WASM_EXEC_ENV
|
||||
ptr_t(buffer_contents_t) contentsptr)
|
||||
{
|
||||
if (unlikely (!validate_app_addr (contentsptr, sizeof (buffer_contents_t))))
|
||||
HB_STRUCT_TYPE (buffer_contents_t, contents);
|
||||
if (unlikely (!contents))
|
||||
return;
|
||||
|
||||
buffer_contents_t *contents = (buffer_contents_t *) addr_app_to_native (contentsptr);
|
||||
|
||||
module_free (contents->info);
|
||||
module_free (contents->pos);
|
||||
}
|
||||
|
|
|
@ -68,6 +68,7 @@ HB_INTERNAL extern hb_user_data_key_t _hb_wasm_ref_type_key;
|
|||
(void *) hb_wasm_ref_type_##obj)) \
|
||||
obj = hb_##obj##_get_empty (); \
|
||||
} HB_STMT_END
|
||||
|
||||
#define HB_OBJ2REF(obj) \
|
||||
uint32_t obj##ref = nullref; \
|
||||
HB_STMT_START { \
|
||||
|
@ -90,5 +91,13 @@ HB_INTERNAL extern hb_user_data_key_t _hb_wasm_ref_type_key;
|
|||
} \
|
||||
type &name = *_name_ptr
|
||||
|
||||
#define HB_STRUCT_TYPE(type, name) \
|
||||
type *name = nullptr; \
|
||||
HB_STMT_START { \
|
||||
if (likely (wasm_runtime_validate_app_addr (module_inst, \
|
||||
name##ptr, sizeof (type)))) \
|
||||
name = (type *) wasm_runtime_addr_app_to_native (module_inst, name##ptr); \
|
||||
} HB_STMT_END
|
||||
|
||||
|
||||
#endif /* HB_WASM_API_HH */
|
||||
|
|
Loading…
Reference in New Issue