mirror of https://github.com/goccy/go-json.git
Fix decoder
This commit is contained in:
parent
77059977ce
commit
9b1349d40a
|
@ -200,7 +200,6 @@ func Benchmark_Decode_LargeStruct_GoJayUnsafe(b *testing.B) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
func Benchmark_Decode_LargeStruct_GoJson(b *testing.B) {
|
func Benchmark_Decode_LargeStruct_GoJson(b *testing.B) {
|
||||||
b.ReportAllocs()
|
b.ReportAllocs()
|
||||||
for i := 0; i < b.N; i++ {
|
for i := 0; i < b.N; i++ {
|
||||||
|
@ -220,4 +219,3 @@ func Benchmark_Decode_LargeStruct_GoJsonNoEscape(b *testing.B) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
|
@ -38,6 +38,7 @@ func (d *arrayDecoder) decode(ctx *context, p uintptr) error {
|
||||||
cursor = ctx.skipWhiteSpace()
|
cursor = ctx.skipWhiteSpace()
|
||||||
switch buf[cursor] {
|
switch buf[cursor] {
|
||||||
case ']':
|
case ']':
|
||||||
|
ctx.cursor++
|
||||||
return nil
|
return nil
|
||||||
case ',':
|
case ',':
|
||||||
idx++
|
idx++
|
||||||
|
|
|
@ -58,6 +58,7 @@ func (d *sliceDecoder) decode(ctx *context, p uintptr) error {
|
||||||
Len: idx + 1,
|
Len: idx + 1,
|
||||||
Cap: cap,
|
Cap: cap,
|
||||||
}
|
}
|
||||||
|
ctx.cursor++
|
||||||
return nil
|
return nil
|
||||||
case ',':
|
case ',':
|
||||||
idx++
|
idx++
|
||||||
|
|
|
@ -57,7 +57,10 @@ func (d *structDecoder) skipValue(ctx *context) error {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if tk == '"' {
|
if tk == '"' {
|
||||||
cursor++
|
if bracketCount == 0 && braceCount == 0 {
|
||||||
|
ctx.cursor = cursor + 1
|
||||||
|
return nil
|
||||||
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue