From 4c0c6e66ac89c5078bded4ee5088e5a45db51b8c Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Tue, 4 Mar 2025 12:12:57 +0100 Subject: [PATCH] avoid closure to be dropped in release mode --- waku-bindings/src/macros.rs | 2 +- waku-bindings/src/node/management.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/waku-bindings/src/macros.rs b/waku-bindings/src/macros.rs index 4959638..4ad9608 100644 --- a/waku-bindings/src/macros.rs +++ b/waku-bindings/src/macros.rs @@ -52,9 +52,9 @@ macro_rules! handle_ffi_call { notify_clone.notify_one(); }; + let mut closure = result_cb; // Create trampoline and invoke the `waku_sys` function let code = unsafe { - let mut closure = result_cb; let cb = get_trampoline(&closure); $waku_fn( $ctx, // Pass the context diff --git a/waku-bindings/src/node/management.rs b/waku-bindings/src/node/management.rs index cad28f4..fc01c38 100644 --- a/waku-bindings/src/node/management.rs +++ b/waku-bindings/src/node/management.rs @@ -33,8 +33,8 @@ pub async fn waku_new(config: Option) -> Result result = r; notify_clone.notify_one(); // Notify that the value has been updated }; + let mut closure = result_cb; let obj_ptr = unsafe { - let mut closure = result_cb; let cb = get_trampoline(&closure); waku_sys::waku_new(config_ptr, cb, &mut closure as *mut _ as *mut c_void) };