diff options
| -rw-r--r-- | libs/binder/rust/src/proxy.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libs/binder/rust/src/proxy.rs b/libs/binder/rust/src/proxy.rs index 9d612a43f4..17af0992e2 100644 --- a/libs/binder/rust/src/proxy.rs +++ b/libs/binder/rust/src/proxy.rs @@ -416,6 +416,16 @@ impl WpIBinder { } } +impl Drop for WpIBinder { + fn drop(&mut self) { + unsafe { + // Safety: WpIBinder always holds a valid `AIBinder_Weak` pointer, so we + // know this pointer is safe to pass to `AIBinder_Weak_delete` here. + sys::AIBinder_Weak_delete(self.0); + } + } +} + /// Rust wrapper around DeathRecipient objects. #[repr(C)] pub struct DeathRecipient { |