fix node names
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user