aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen
diff options
context:
space:
mode:
Diffstat (limited to 'macros/src/codegen')
-rw-r--r--macros/src/codegen/post_init.rs2
-rw-r--r--macros/src/codegen/resources.rs22
2 files changed, 16 insertions, 8 deletions
diff --git a/macros/src/codegen/post_init.rs b/macros/src/codegen/post_init.rs
index 733d6eec..c7a574ac 100644
--- a/macros/src/codegen/post_init.rs
+++ b/macros/src/codegen/post_init.rs
@@ -24,7 +24,7 @@ pub fn codegen(app: &App, analysis: &Analysis) -> Vec<TokenStream2> {
// - `get_mut_unchecked` to obtain `MaybeUninit<T>`
// - `as_mut_ptr` to obtain a raw pointer to `MaybeUninit<T>`
// - `write` the defined value for the late resource T
- #mangled_name.get_mut_unchecked().as_mut_ptr().write(late.#name);
+ #mangled_name.get_mut_unchecked().as_mut_ptr().write(late.#name);
));
}
}
diff --git a/macros/src/codegen/resources.rs b/macros/src/codegen/resources.rs
index ad01ccbf..37de9124 100644
--- a/macros/src/codegen/resources.rs
+++ b/macros/src/codegen/resources.rs
@@ -93,17 +93,23 @@ pub fn codegen(
}
));
- let ptr = if expr.is_none() {
+ let (ptr, doc) = if expr.is_none() {
// late resource
- quote!(
- #(#cfgs)*
- &mut #mangled_name.get_mut_unchecked().assume_init()
+ (
+ quote!(
+ #(#cfgs)*
+ #mangled_name.get_mut_unchecked().as_mut_ptr()
+ ),
+ "late",
)
} else {
// early resource
- quote!(
- #(#cfgs)*
- unsafe { #mangled_name.get_mut_unchecked() }
+ (
+ quote!(
+ #(#cfgs)*
+ #mangled_name.get_mut_unchecked()
+ ),
+ "early",
)
};
@@ -114,6 +120,8 @@ pub fn codegen(
None => 0,
};
+ // let doc = format!(" RTIC internal ({} resource): {}:{}", doc, file!(), line!());
+
mod_app.push(util::impl_mutex(
extra,
cfgs,