Skip to content

Commit d5e5b4d

Browse files
authored
Merge pull request #223 from Emilgardis/fix-nopad
Fixes #222, no padding emitted when pad is first in block
2 parents 8a50bc1 + d86365b commit d5e5b4d

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

src/generate/peripheral.rs

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -444,22 +444,20 @@ fn register_or_cluster_block_nightly(
444444
// We need to compute the idents of each register/union block first to make sure no conflicts exists.
445445
regions.resolve_idents()?;
446446
// The end of the region from the prior iteration of the loop
447-
let mut last_end = None;
447+
let mut last_end = 0;
448448

449449
for (i, region) in regions.regions.iter().enumerate() {
450450
// Check if we need padding
451-
if let Some(end) = last_end {
452-
let pad = region.offset - end;
453-
if pad != 0 {
454-
let name = Ident::new(format!("_reserved{}", i));
455-
let pad = pad as usize;
456-
fields.append(quote! {
457-
#name : [u8; #pad],
458-
});
459-
}
451+
let pad = region.offset - last_end;
452+
if pad != 0 {
453+
let name = Ident::new(format!("_reserved{}", i));
454+
let pad = pad as usize;
455+
fields.append(quote! {
456+
#name : [u8; #pad],
457+
});
460458
}
461459

462-
last_end = Some(region.end);
460+
last_end = region.end;
463461

464462
let mut region_fields = Tokens::new();
465463

0 commit comments

Comments
 (0)