diff options
author | 2023-11-10 03:20:50 +0000 | |
---|---|---|
committer | 2023-11-10 03:20:50 +0000 | |
commit | c61b1617a4677f74dcde22ac37cfd48484e2cd08 (patch) | |
tree | 67cec6f1fe3ad1372e996dec1f6ee7e8c2d20b81 | |
parent | a37dbdd61b228a9c2f0cbe1ea777e808e152761e (diff) | |
parent | 2953706fb1bcddce000221c531ccff431b46b20b (diff) |
Merge "libbinder_rs: Switch inner type of ParcelFileDescriptor" into main am: 2953706fb1
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2824111
Change-Id: Ic4f27692a76382b40bae00f14d2214e788d3b1b5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | libs/binder/rust/src/parcel/file_descriptor.rs | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/libs/binder/rust/src/parcel/file_descriptor.rs b/libs/binder/rust/src/parcel/file_descriptor.rs index 5c688fa71b..6afe5ab42b 100644 --- a/libs/binder/rust/src/parcel/file_descriptor.rs +++ b/libs/binder/rust/src/parcel/file_descriptor.rs @@ -22,29 +22,28 @@ use crate::binder::AsNative; use crate::error::{status_result, Result, StatusCode}; use crate::sys; -use std::fs::File; -use std::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd, RawFd}; +use std::os::fd::{AsRawFd, FromRawFd, IntoRawFd, OwnedFd, RawFd}; /// Rust version of the Java class android.os.ParcelFileDescriptor #[derive(Debug)] -pub struct ParcelFileDescriptor(File); +pub struct ParcelFileDescriptor(OwnedFd); impl ParcelFileDescriptor { /// Create a new `ParcelFileDescriptor` - pub fn new(file: File) -> Self { - Self(file) + pub fn new<F: Into<OwnedFd>>(fd: F) -> Self { + Self(fd.into()) } } -impl AsRef<File> for ParcelFileDescriptor { - fn as_ref(&self) -> &File { +impl AsRef<OwnedFd> for ParcelFileDescriptor { + fn as_ref(&self) -> &OwnedFd { &self.0 } } -impl From<ParcelFileDescriptor> for File { - fn from(file: ParcelFileDescriptor) -> File { - file.0 +impl From<ParcelFileDescriptor> for OwnedFd { + fn from(fd: ParcelFileDescriptor) -> OwnedFd { + fd.0 } } @@ -120,7 +119,7 @@ impl DeserializeOption for ParcelFileDescriptor { // Safety: At this point, we know that the file descriptor was // not -1, so must be a valid, owned file descriptor which we // can safely turn into a `File`. - let file = unsafe { File::from_raw_fd(fd) }; + let file = unsafe { OwnedFd::from_raw_fd(fd) }; Ok(Some(ParcelFileDescriptor::new(file))) } } |