From 0d5143bc9bf71b5606a2d1546f451a675e831187 Mon Sep 17 00:00:00 2001 From: Ryo Yamashita Date: Sun, 2 Jul 2023 04:27:07 +0900 Subject: [PATCH] Fix up #534 --- crates/voicevox_core_c_api/src/slice_owner.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/crates/voicevox_core_c_api/src/slice_owner.rs b/crates/voicevox_core_c_api/src/slice_owner.rs index 1e869ff9c..1d95cf935 100644 --- a/crates/voicevox_core_c_api/src/slice_owner.rs +++ b/crates/voicevox_core_c_api/src/slice_owner.rs @@ -30,8 +30,10 @@ impl SliceOwner { /// /// # Safety /// - /// - `out_ptr`は書き込みについて有効でなければならない(ただし`*mut T`は有効である必要は無い)。 - /// - `out_len`は書き込みについて有効でなければならない。 + /// - `out_ptr`は書き込みについて[有効]でなければならない。 + /// - `out_len`は書き込みについて[有効]でなければならない。 + /// + /// [有効]: https://doc.rust-lang.org/stable/std/ptr/index.html#safety pub(crate) unsafe fn own_and_lend( &self, slice: impl Into>, @@ -47,8 +49,8 @@ impl SliceOwner { let duplicated = slices.insert(ptr as usize, slice.into()).is_some(); assert!(!duplicated, "duplicated"); - out_ptr.as_ptr().write_volatile(ptr); - out_len.as_ptr().write_volatile(len); + out_ptr.as_ptr().write_unaligned(ptr); + out_len.as_ptr().write_unaligned(len); } /// `own_and_lend`でC API利用者に貸し出したポインタに対応する`Box<[u8]>`をデストラクトする。