fix node names

This commit is contained in:
Bryan McShea
2024-04-23 18:23:37 -04:00
parent b2b17b927a
commit 7c859ab6c3

View File

@@ -73,7 +73,7 @@ impl Debug for Prop {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
f.debug_struct("Prop") f.debug_struct("Prop")
.field("name", &self.name) .field("name", &self.name)
.field("data_len", &self.data) .field("data_len", &self.data.len())
.finish() .finish()
} }
} }
@@ -115,16 +115,18 @@ impl Iterator for NodeIter {
return None; return None;
} }
let name_start = self.pos; let name_start = self.pos;
let mut extra = 0;
'outer: loop { 'outer: loop {
let bytes = &self.pos[..4]; let bytes = &self.pos[..4];
self.pos = &self.pos[4..]; self.pos = &self.pos[4..];
for byte in bytes { for (i, byte) in bytes.iter().enumerate() {
if *byte == 0 { if *byte == 0 {
extra = 4 - i;
break 'outer; break 'outer;
} }
} }
} }
let name = unsafe { transmute(&name_start[..name_start.len() - self.pos.len()]) }; let name = unsafe { transmute(&name_start[..name_start.len() - self.pos.len() - extra]) };
let node_start = self.pos; let node_start = self.pos;
let node_data = if let Some(prop) = (PropIter { let node_data = if let Some(prop) = (PropIter {
strings: self.strings, strings: self.strings,