From 98b779a83cbbbe87e2aad76d230b6c8674645943 Mon Sep 17 00:00:00 2001 From: Pierre-Emmanuel Patry Date: Wed, 12 Apr 2023 18:07:08 +0200 Subject: [PATCH] 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 --- libgrust/libproc_macro/rust/bridge/token_stream.rs | 7 +++++++ 1 file changed, 7 insertions(+) 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) } + } +} -- 2.47.2