fix(runtime-c-api) wasmer_serialized_module_from_bytes accepts bytes + length instead of wasmer_byte_array.

This commit is contained in:
Ivan Enderlin
2019-03-19 16:24:59 +01:00
parent 46edd20725
commit 57a82fa5cf
4 changed files with 13 additions and 6 deletions

View File

@ -639,7 +639,8 @@ pub unsafe extern "C" fn wasmer_serialized_module_bytes(
#[no_mangle]
pub unsafe extern "C" fn wasmer_serialized_module_from_bytes(
serialized_module: *mut *mut wasmer_serialized_module_t,
serialized_module_bytes: *const wasmer_byte_array,
serialized_module_bytes: *const uint8_t,
serialized_module_bytes_length: uint32_t,
) -> wasmer_result_t {
if serialized_module.is_null() {
update_last_error(CApiError {
@ -649,8 +650,8 @@ pub unsafe extern "C" fn wasmer_serialized_module_from_bytes(
}
let serialized_module_bytes: &[u8] = slice::from_raw_parts(
(*serialized_module_bytes).bytes,
(*serialized_module_bytes).bytes_len as usize,
serialized_module_bytes,
serialized_module_bytes_length as usize,
);
*serialized_module = Box::into_raw(Box::new(serialized_module_bytes)) as _;

View File

@ -64,7 +64,11 @@ int main()
assert(call_result == WASMER_OK);
wasmer_serialized_module_t *serialized_module_two = NULL;
wasmer_result_t serialized_module_from_bytes_result = wasmer_serialized_module_from_bytes(&serialized_module_two, &serialized_module_bytes);
wasmer_result_t serialized_module_from_bytes_result = wasmer_serialized_module_from_bytes(
&serialized_module_two,
serialized_module_bytes.bytes,
serialized_module_bytes.bytes_len
);
assert(serialized_module_from_bytes_result == WASMER_OK);
wasmer_module_t *module_three = NULL;

View File

@ -545,7 +545,8 @@ void wasmer_serialized_module_destroy(wasmer_serialized_module_t *serialized_mod
* and `wasmer_last_error_message` to get an error message.
*/
wasmer_result_t wasmer_serialized_module_from_bytes(wasmer_serialized_module_t **serialized_module,
const wasmer_byte_array *serialized_module_bytes);
const uint8_t *serialized_module_bytes,
uint32_t serialized_module_bytes_length);
/**
* Frees memory for the given Table

View File

@ -428,7 +428,8 @@ void wasmer_serialized_module_destroy(wasmer_serialized_module_t *serialized_mod
/// Returns `wasmer_result_t::WASMER_ERROR` upon failure. Use `wasmer_last_error_length`
/// and `wasmer_last_error_message` to get an error message.
wasmer_result_t wasmer_serialized_module_from_bytes(wasmer_serialized_module_t **serialized_module,
const wasmer_byte_array *serialized_module_bytes);
const uint8_t *serialized_module_bytes,
uint32_t serialized_module_bytes_length);
/// Frees memory for the given Table
void wasmer_table_destroy(wasmer_table_t *table);