From 9f530fa5fefc8a5d9d8441ac55bcb0577ad252bb Mon Sep 17 00:00:00 2001 From: wangboo <5417808+wangboa@user.noreply.gitee.com> Date: Tue, 13 Dec 2022 18:37:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dfrom=5Fbuf=E7=9A=84bug,?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=86=85=E5=AD=98=E6=8B=B7=E8=B4=9D=E7=9A=84?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/util/slice.rs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/util/slice.rs b/src/util/slice.rs index 7616c13..fd12e02 100644 --- a/src/util/slice.rs +++ b/src/util/slice.rs @@ -22,12 +22,11 @@ impl Default for Slice { } impl Slice { - /// 从 &mut [u8] 转到 Slice - /// # Unsafe - /// 这里目前存在内存泄漏和double free问题, 先别用 - pub unsafe fn from_buf(buf: &mut [u8]) -> Self { + + /// 从 &mut [u8] 转到 Slice, 这里存在内存拷贝开销 + pub fn from_buf(buf: &mut [u8]) -> Self { Self { - data: Vec::from_raw_parts(buf.as_mut_ptr(), buf.len(), buf.len()) + data: buf.to_owned() } } /// 获取 slice 长度 -- Gitee