aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--macros/src/codegen/locals.rs4
-rw-r--r--macros/src/codegen/resources.rs3
-rw-r--r--macros/src/codegen/resources_struct.rs2
3 files changed, 6 insertions, 3 deletions
diff --git a/macros/src/codegen/locals.rs b/macros/src/codegen/locals.rs
index 5725a151..0ff56f59 100644
--- a/macros/src/codegen/locals.rs
+++ b/macros/src/codegen/locals.rs
@@ -50,7 +50,7 @@ pub fn codegen(
items.push(quote!(
#(#cfgs)*
#[doc(hidden)]
- static mut #name: #ty = #expr
+ static #name: rtic::RacyCell<#ty> = rtic::RacyCell::new(#expr)
));
values.push(quote!(
#(#cfgs)*
@@ -64,7 +64,7 @@ pub fn codegen(
}
if lt.is_some() && has_cfgs {
- fields.push(quote!(__marker__: core::marker::PhantomData<&'a mut ()>));
+ fields.push(quote!(__marker__: core::marker::PhantomData<&'a ()>));
values.push(quote!(__marker__: core::marker::PhantomData));
}
diff --git a/macros/src/codegen/resources.rs b/macros/src/codegen/resources.rs
index 89f70f84..68eea4d2 100644
--- a/macros/src/codegen/resources.rs
+++ b/macros/src/codegen/resources.rs
@@ -66,8 +66,11 @@ pub fn codegen(
}
let r_prop = &res.properties;
+ let doc = format!(" RTIC internal: {}:{}", file!(), line!());
+
if !r_prop.task_local && !r_prop.lock_free {
mod_resources.push(quote!(
+ #[doc = #doc]
#[allow(non_camel_case_types)]
#(#cfgs)*
pub struct #name<'a> {
diff --git a/macros/src/codegen/resources_struct.rs b/macros/src/codegen/resources_struct.rs
index 8ed8a291..6a21c319 100644
--- a/macros/src/codegen/resources_struct.rs
+++ b/macros/src/codegen/resources_struct.rs
@@ -79,7 +79,7 @@ pub fn codegen(ctxt: Context, needs_lt: &mut bool, app: &App) -> (TokenStream2,
let is_late = expr.is_none();
if is_late {
let expr = if access.is_exclusive() {
- quote!(&mut *#mangled_name.as_mut_ptr())
+ quote!(&mut *#mangled_name.get_mut_unchecked().as_mut_ptr())
} else {
quote!(&*#mangled_name.as_ptr())
};