From 32b6257d89fbb5c4fdd9cbe4bb0f6ed545fb48b7 Mon Sep 17 00:00:00 2001 From: Shane Liesegang Date: Wed, 11 Dec 2024 17:47:08 +0800 Subject: [PATCH] Rust: fixing buffer reader memory management --- beschi/writers/boilerplate/Rust.rs | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/beschi/writers/boilerplate/Rust.rs b/beschi/writers/boilerplate/Rust.rs index 2be8d0f..2c20165 100644 --- a/beschi/writers/boilerplate/Rust.rs +++ b/beschi/writers/boilerplate/Rust.rs @@ -33,9 +33,10 @@ impl<'a> BufferReader<'a> { } pub fn from_vec(buffer: Vec) -> BufferReader<'static> { + let buffer = Box::new(buffer); BufferReader { - buffer: buffer.leak(), - current_position: 0 + buffer: Box::leak(buffer), + current_position: 0, } } @@ -120,20 +121,6 @@ impl<'a> BufferReader<'a> { } } -impl <'a> Drop for BufferReader<'a> { - fn drop(&mut self) { - if std::mem::needs_drop::>() { - unsafe { - let _ = Vec::from_raw_parts( - self.buffer.as_ptr() as *mut u8, - self.buffer.len(), - self.buffer.len() - ); - } - } - } -} - pub trait MessageCodec { fn get_message_type(&self) -> MessageType; fn get_size_in_bytes(&self) -> usize;