]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: libproc_macro: Implement Drop for TokenStream
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Wed, 12 Apr 2023 16:07:08 +0000 (18:07 +0200)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 16 Jan 2024 17:34:12 +0000 (18:34 +0100)
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 <pierre-emmanuel.patry@embecosm.com>
libgrust/libproc_macro/rust/bridge/token_stream.rs

index 56f6679a822b46f7ea348d01947eb80b82cc8f58..79f161fce440d2ab5abcf1bdaa9cc09b2a565bb2 100644 (file)
@@ -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) }
+    }
+}