commit | 58154ad99e6451ee20c233ef9b31c3c195fc0b3e | [log] [tgz] |
---|---|---|
author | Treehugger Robot <treehugger-gerrit@google.com> | Tue Sep 22 01:16:09 2020 +0000 |
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | Tue Sep 22 01:16:09 2020 +0000 |
tree | 0f76b74060e260144a92690951b5498062ebd16b | |
parent | df3efc6e27f73e4b2c20a0657b324bcbdd0a1c55 [diff] | |
parent | 006d319b1118d0b632bd42f80e0be1e8ed736fa7 [diff] |
Merge "Implement ToOwned for references to AIDL interfaces" am: 4bd0720968 am: 006d319b11 Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1395668 Change-Id: Iab1db76c5c95b9ecc0a14ecd9240cddd56ec87c4
diff --git a/libs/binder/rust/src/binder.rs b/libs/binder/rust/src/binder.rs index ceb6ade..81a5f02 100644 --- a/libs/binder/rust/src/binder.rs +++ b/libs/binder/rust/src/binder.rs
@@ -590,6 +590,15 @@ f.pad(stringify!($interface)) } } + + // Convert a &dyn $interface to Box<dyn $interface> + impl std::borrow::ToOwned for dyn $interface { + type Owned = Box<dyn $interface>; + fn to_owned(&self) -> Self::Owned { + self.as_binder().into_interface() + .expect(concat!("Error cloning interface ", stringify!($interface))) + } + } }; }