mirror of
https://github.com/ii64/sonic.git
synced 2026-06-21 00:46:43 +08:00
fix iterator traversal empty object panic (#314)
This commit is contained in:
parent
b52e528dc6
commit
3e6f839fb6
2 changed files with 15 additions and 1 deletions
|
|
@ -63,7 +63,11 @@ func (self *Iterator) HasNext() bool {
|
|||
} else if self.p.t == _V_ARRAY_LAZY {
|
||||
return self.p.skipNextNode().Valid()
|
||||
} else if self.p.t == _V_OBJECT_LAZY {
|
||||
return self.p.skipNextPair().Value.Valid()
|
||||
pair := self.p.skipNextPair()
|
||||
if pair == nil {
|
||||
return false
|
||||
}
|
||||
return pair.Value.Valid()
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
|
|
|||
|
|
@ -195,6 +195,16 @@ func TestIterator(t *testing.T) {
|
|||
if i != int64(loop) {
|
||||
t.Fatal(i)
|
||||
}
|
||||
|
||||
str, _ = getTestIteratorSample(0)
|
||||
root, err = NewParser(str).Parse()
|
||||
if err != 0 {
|
||||
t.Fatal(err)
|
||||
}
|
||||
mi, _ = root.Get("object").Properties()
|
||||
if mi.HasNext() {
|
||||
t.Fatalf("should not have next")
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkArrays(b *testing.B) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue