Upgrade code to newer version of Rust
Some features were still unstable when some of the code that could have
used them was written. Now that AOSP has moved to recent enough version
of Rust, where those have been stabilized, let's upgrade our code.
Test: m pvmfw librialto libvmbase_example
Change-Id: I1e21fe1c4decfc3fe28cbd4f7b25f05595a87d53
diff --git a/libs/libfdt/Android.bp b/libs/libfdt/Android.bp
index 7a7d71f..7dc9e64 100644
--- a/libs/libfdt/Android.bp
+++ b/libs/libfdt/Android.bp
@@ -39,7 +39,6 @@
rustlibs: [
"libcstr",
"liblibfdt_bindgen",
- "libmemoffset_nostd",
"libstatic_assertions",
"libzerocopy_nostd",
],
diff --git a/libs/libfdt/src/libfdt.rs b/libs/libfdt/src/libfdt.rs
index 9ddfbaa..b2250f5 100644
--- a/libs/libfdt/src/libfdt.rs
+++ b/libs/libfdt/src/libfdt.rs
@@ -248,8 +248,7 @@
let prop = unsafe { libfdt_bindgen::fdt_get_property_by_offset(fdt, offset, &mut len) };
let data_len = FdtRawResult::from(len).try_into()?;
- // TODO(stable_feature(offset_of)): mem::offset_of!(fdt_property, data).
- let data_offset = memoffset::offset_of!(libfdt_bindgen::fdt_property, data);
+ let data_offset = mem::offset_of!(libfdt_bindgen::fdt_property, data);
let len = data_offset.checked_add(data_len).ok_or(FdtError::Internal)?;
if !is_aligned(prop) || get_slice_at_ptr(self.as_fdt_slice(), prop.cast(), len).is_none() {
diff --git a/libs/libfdt/src/safe_types.rs b/libs/libfdt/src/safe_types.rs
index 3848542..03b5bc2 100644
--- a/libs/libfdt/src/safe_types.rs
+++ b/libs/libfdt/src/safe_types.rs
@@ -15,6 +15,7 @@
//! Safe zero-cost wrappers around integer values used by libfdt.
use core::ffi::c_int;
+use core::mem::offset_of;
use crate::result::FdtRawResult;
use crate::{FdtError, Result};
@@ -23,13 +24,9 @@
use zerocopy::{FromBytes, FromZeroes};
macro_rules! assert_offset_eq {
- // TODO(stable_feature(offset_of)): mem::offset_of
// TODO(const_feature(assert_eq)): assert_eq!()
($t:ty, $u:ty, $id:ident) => {
- static_assertions::const_assert_eq!(
- memoffset::offset_of!($t, $id),
- memoffset::offset_of!($u, $id),
- );
+ static_assertions::const_assert_eq!(offset_of!($t, $id), offset_of!($u, $id));
};
}
diff --git a/vmbase/src/bionic.rs b/vmbase/src/bionic.rs
index 63a6894..a38fd25 100644
--- a/vmbase/src/bionic.rs
+++ b/vmbase/src/bionic.rs
@@ -188,8 +188,7 @@
} else {
// SAFETY: Just like libc, we need to assume that `s` is a valid NULL-terminated string.
let c_str = unsafe { CStr::from_ptr(s) };
- // TODO(Rust 1.71): if c_str.is_empty() {
- if c_str.to_bytes().is_empty() {
+ if c_str.is_empty() {
None
} else {
Some(c_str.to_str().unwrap())