From 8c1e18b1cd8d01e21ddf2219477069b847c7484b Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Thu, 20 Feb 2025 17:57:36 +0100 Subject: [PATCH] :bug: Fix problem with images --- frontend/src/app/render_wasm/api.cljs | 3 +-- render-wasm/src/main.rs | 18 ++++++++---------- render-wasm/src/shapes.rs | 2 +- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/frontend/src/app/render_wasm/api.cljs b/frontend/src/app/render_wasm/api.cljs index 099a954fd5..7244f1169c 100644 --- a/frontend/src/app/render_wasm/api.cljs +++ b/frontend/src/app/render_wasm/api.cljs @@ -221,8 +221,7 @@ (aget buffer 0) (aget buffer 1) (aget buffer 2) - (aget buffer 3) - image-size) + (aget buffer 3)) true)))))) (defn set-shape-fills diff --git a/render-wasm/src/main.rs b/render-wasm/src/main.rs index 8016bcf946..c6a8d0710b 100644 --- a/render-wasm/src/main.rs +++ b/render-wasm/src/main.rs @@ -332,21 +332,19 @@ pub extern "C" fn store_font(family_name_size: u32, font_size: u32) { } #[no_mangle] -pub extern "C" fn store_image(a: u32, b: u32, c: u32, d: u32, size: u32) { +pub extern "C" fn store_image(a: u32, b: u32, c: u32, d: u32) { let state = unsafe { STATE.as_mut() }.expect("Got an invalid state pointer"); let id = uuid_from_u32_quartet(a, b, c, d); + let image_bytes = mem::bytes(); - unsafe { - let image_bytes = - Vec::::from_raw_parts(mem::buffer_ptr(), size as usize, size as usize); - match state.render_state().add_image(id, &image_bytes) { - Err(msg) => { - eprintln!("{}", msg); - } - _ => {} + match state.render_state().add_image(id, &image_bytes) { + Err(msg) => { + eprintln!("{}", msg); } - mem::free_bytes(); + _ => {} } + + mem::free_bytes(); } #[no_mangle] diff --git a/render-wasm/src/shapes.rs b/render-wasm/src/shapes.rs index 1f442b700e..1114b182f1 100644 --- a/render-wasm/src/shapes.rs +++ b/render-wasm/src/shapes.rs @@ -577,7 +577,7 @@ mod tests { assert_eq!(r.width(), 20.0); assert_eq!(r.height(), 20.0); } - _ => assert!(false) + _ => assert!(false), } } }