commit | 567942355e7c7a218e91bad93c3eb4a7b94e95a6 | [log] [tgz] |
---|---|---|
author | Treehugger Robot <treehugger-gerrit@google.com> | Tue Sep 22 01:44:00 2020 +0000 |
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | Tue Sep 22 01:44:00 2020 +0000 |
tree | 9cb17c92e9af481fe726712ca1f75e27ea35f9ab | |
parent | 0a8a201d856cdfde054640a6c9c7ff2df7cafada [diff] | |
parent | 58154ad99e6451ee20c233ef9b31c3c195fc0b3e [diff] |
Merge "Implement ToOwned for references to AIDL interfaces" am: 4bd0720968 am: 006d319b11 am: 58154ad99e Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1395668 Change-Id: I8402ea36102333573820fc5795c4a0fc84a42f93
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))) + } + } }; }