From: Pierre-Emmanuel Patry Date: Wed, 12 Apr 2023 16:07:08 +0000 (+0200) Subject: gccrs: libproc_macro: Implement Drop for TokenStream X-Git-Tag: basepoints/gcc-15~2630 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=98b779a83cbbbe87e2aad76d230b6c8674645943;p=thirdparty%2Fgcc.git gccrs: libproc_macro: Implement Drop for TokenStream TokenStream did not have any drop implementation, the memory could not have been freed correctly. libgrust/ChangeLog: * libproc_macro/rust/bridge/token_stream.rs: Implement drop. Signed-off-by: Pierre-Emmanuel Patry --- diff --git a/libgrust/libproc_macro/rust/bridge/token_stream.rs b/libgrust/libproc_macro/rust/bridge/token_stream.rs index 56f6679a822b..79f161fce440 100644 --- a/libgrust/libproc_macro/rust/bridge/token_stream.rs +++ b/libgrust/libproc_macro/rust/bridge/token_stream.rs @@ -15,6 +15,7 @@ extern "C" { fn TokenStream__push(stream: *mut TokenStream, tree: TokenTree); fn TokenStream__from_string(str: *const c_uchar, len: u64, ts: *mut TokenStream) -> bool; fn TokenStream__clone(ts: *const TokenStream) -> TokenStream; + fn TokenStream__drop(stream: *mut TokenStream); } #[repr(C)] @@ -154,3 +155,9 @@ impl Clone for TokenStream { unsafe { TokenStream__clone(self as *const TokenStream) } } } + +impl Drop for TokenStream { + fn drop(&mut self) { + unsafe { TokenStream__drop(self as *mut TokenStream) } + } +}