From: Pierre-Emmanuel Patry Date: Fri, 7 Apr 2023 11:52:04 +0000 (+0200) Subject: gccrs: libproc_macro: Drop function shall take a mutable X-Git-Tag: basepoints/gcc-15~2649 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a2605b5a49d109370a21ba57c545cecc8cd9694d;p=thirdparty%2Fgcc.git gccrs: libproc_macro: Drop function shall take a mutable The rust API requires a mut reference, hence having a mutable pointer seems to match better. Furthermore the implementation is now modifying the struct in order to set the size to 0 instead of simply freeing the data, this will allow us to easily identify mistaken manual call to this function. libgrust/ChangeLog: * libproc_macro/rust/bridge/literal.rs: Make the pointer mutable. Signed-off-by: Pierre-Emmanuel Patry --- diff --git a/libgrust/libproc_macro/rust/bridge/literal.rs b/libgrust/libproc_macro/rust/bridge/literal.rs index 080cc1b21d81..740ed1fccac7 100644 --- a/libgrust/libproc_macro/rust/bridge/literal.rs +++ b/libgrust/libproc_macro/rust/bridge/literal.rs @@ -6,7 +6,7 @@ use std::str::FromStr; use LexError; extern "C" { - fn Literal__drop(literal: *const Literal); + fn Literal__drop(literal: *mut Literal); fn Literal__string(str: *const c_uchar, len: u64) -> Literal; fn Literal__byte_string(bytes: *const u8, len: u64) -> Literal; fn Literal__from_string(str: *const c_uchar, len: u64, lit: *mut Literal) -> bool; @@ -230,7 +230,7 @@ impl Drop for Literal { fn drop(&mut self) { match self { Literal::String { .. } | Literal::ByteString { .. } => unsafe { - Literal__drop(self as *const Literal) + Literal__drop(self as *mut Literal) }, _ => (), }