diff options
Diffstat (limited to 'macros/src/codegen/resources.rs')
-rw-r--r-- | macros/src/codegen/resources.rs | 22 |
1 files changed, 15 insertions, 7 deletions
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, |