Skip to content

Commit 720a12b

Browse files
committed
fix: wrong at item of NodeSeqItem
Signed-off-by: Woshiluo Luo <woshiluo.luo@outlook.com>
1 parent 57e84b1 commit 720a12b

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

src/de_mut/node_seq.rs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -134,11 +134,15 @@ impl<'de> Iterator for NodeSeqIter<'de, '_> {
134134
match self.de.move_on() {
135135
// 子节点名字
136136
Cursor::Title(c) => {
137-
let (name, _) = c.split_on(self.de.dtb);
138-
let (node, next) = c.take_node_on(self.de.dtb, name);
139-
140-
let pre_len = name.as_bytes().iter().take_while(|b| **b != b'@').count();
141-
let name_bytes = &name.as_bytes()[..pre_len];
137+
let (full_name, _) = c.split_on(self.de.dtb);
138+
let (node, next) = c.take_node_on(self.de.dtb, full_name);
139+
140+
let pre_len = full_name
141+
.as_bytes()
142+
.iter()
143+
.take_while(|b| **b != b'@')
144+
.count();
145+
let name_bytes = &full_name.as_bytes()[..pre_len];
142146
let name = unsafe { core::str::from_utf8_unchecked(name_bytes) };
143147
if self.seq.name != name {
144148
return None;
@@ -150,7 +154,7 @@ impl<'de> Iterator for NodeSeqIter<'de, '_> {
150154
dtb: self.de.dtb,
151155
reg: self.de.reg,
152156
body: node,
153-
at: &name[pre_len..],
157+
at: &full_name[pre_len + 1..],
154158
})
155159
}
156160
_ => None,

0 commit comments

Comments
 (0)