From 5fff7c50a8ff6878d6b91776803b4eb7af8142f0 Mon Sep 17 00:00:00 2001 From: decentclock Date: Tue, 8 Nov 2022 13:15:32 -0500 Subject: [PATCH] core: remove unneeded clones, allocate output buffer once at setup, and reuse same memory block --- sphinx-key/src/core/events.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/sphinx-key/src/core/events.rs b/sphinx-key/src/core/events.rs index a1f4e02..10c4e3c 100644 --- a/sphinx-key/src/core/events.rs +++ b/sphinx-key/src/core/events.rs @@ -87,6 +87,7 @@ pub fn make_event_loop( // signing loop let dummy_peer = PubKey([0; 33]); + let mut out_buffer: Vec = Vec::with_capacity(600); while let Ok(event) = rx.recv() { match event { Event::Connected => { @@ -101,16 +102,18 @@ pub fn make_event_loop( //led_tx.send(Status::ConnectingToMqtt).unwrap(); log::info!("GOT A Event::Disconnected msg!"); } - Event::VlsMessage(ref msg_bytes) => { + Event::VlsMessage(msg_bytes) => { //led_tx.send(Status::Signing).unwrap(); + out_buffer.clear(); let _ret = match sphinx_signer::root::handle( &root_handler, - msg_bytes.clone(), + msg_bytes, dummy_peer.clone(), do_log, + &mut out_buffer, ) { - Ok(b) => { - mqtt.publish(topics::VLS_RETURN, QOS, false, &b) + Ok(()) => { + mqtt.publish(topics::VLS_RETURN, QOS, false, &out_buffer) .expect("could not publish VLS response"); } Err(e) => {