Skip to content

Commit 8d4084c

Browse files
carlocastoldidariost
authored andcommitted
fixed wyvern_data_array structs not getting free'd properly
Signed-off-by: Dario Ostuni <[email protected]>
1 parent 524fd46 commit 8d4084c

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

wyvern-c/src/lib.rs

+12-6
Original file line numberDiff line numberDiff line change
@@ -262,16 +262,22 @@ pub unsafe extern "C" fn wyvern_vk_resource_get_data_array_float32(obj: *mut wyv
262262
}
263263

264264
#[no_mangle]
265-
pub unsafe extern "C" fn wyvern_vk_resource_data_array_uint32_free(data: wyvern_data_array_uint32_t) {
266-
free(data.data as *mut libc::c_void);
265+
pub unsafe extern "C" fn wyvern_vk_resource_data_array_uint32_free(data: *mut wyvern_data_array_uint32_t) {
266+
let array = (&mut *data).data;
267+
free(array as *mut libc::c_void);
268+
free(data as *mut libc::c_void);
267269
}
268270

269271
#[no_mangle]
270-
pub unsafe extern "C" fn wyvern_vk_resource_data_array_int32_free(data: wyvern_data_array_int32_t) {
271-
free(data.data as *mut libc::c_void);
272+
pub unsafe extern "C" fn wyvern_vk_resource_data_array_int32_free(data: *mut wyvern_data_array_int32_t) {
273+
let array = (&mut *data).data;
274+
free(array as *mut libc::c_void);
275+
free(data as *mut libc::c_void);
272276
}
273277

274278
#[no_mangle]
275-
pub unsafe extern "C" fn wyvern_vk_resource_data_array_float32_free(data: wyvern_data_array_float_t) {
276-
free(data.data as *mut libc::c_void);
279+
pub unsafe extern "C" fn wyvern_vk_resource_data_array_float32_free(data: *mut wyvern_data_array_float_t) {
280+
let array = (&mut *data).data;
281+
free(array as *mut libc::c_void);
282+
free(data as *mut libc::c_void);
277283
}

0 commit comments

Comments
 (0)