|
|
@@ -500,6 +500,9 @@ func (decoder *generalStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator)
|
|
|
if !iter.readObjectStart() {
|
|
|
return
|
|
|
}
|
|
|
+ if !iter.incrementDepth() {
|
|
|
+ return
|
|
|
+ }
|
|
|
var c byte
|
|
|
for c = ','; c == ','; c = iter.nextToken() {
|
|
|
decoder.decodeOneField(ptr, iter)
|
|
|
@@ -510,6 +513,7 @@ func (decoder *generalStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator)
|
|
|
if c != '}' {
|
|
|
iter.ReportError("struct Decode", `expect }, but found `+string([]byte{c}))
|
|
|
}
|
|
|
+ iter.decrementDepth()
|
|
|
}
|
|
|
|
|
|
func (decoder *generalStructDecoder) decodeOneField(ptr unsafe.Pointer, iter *Iterator) {
|
|
|
@@ -571,6 +575,9 @@ func (decoder *oneFieldStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator)
|
|
|
if !iter.readObjectStart() {
|
|
|
return
|
|
|
}
|
|
|
+ if !iter.incrementDepth() {
|
|
|
+ return
|
|
|
+ }
|
|
|
for {
|
|
|
if iter.readFieldHash() == decoder.fieldHash {
|
|
|
decoder.fieldDecoder.Decode(ptr, iter)
|
|
|
@@ -584,6 +591,7 @@ func (decoder *oneFieldStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator)
|
|
|
if iter.Error != nil && iter.Error != io.EOF {
|
|
|
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
|
|
}
|
|
|
+ iter.decrementDepth()
|
|
|
}
|
|
|
|
|
|
type twoFieldsStructDecoder struct {
|
|
|
@@ -598,6 +606,9 @@ func (decoder *twoFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator
|
|
|
if !iter.readObjectStart() {
|
|
|
return
|
|
|
}
|
|
|
+ if !iter.incrementDepth() {
|
|
|
+ return
|
|
|
+ }
|
|
|
for {
|
|
|
switch iter.readFieldHash() {
|
|
|
case decoder.fieldHash1:
|
|
|
@@ -614,6 +625,7 @@ func (decoder *twoFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator
|
|
|
if iter.Error != nil && iter.Error != io.EOF {
|
|
|
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
|
|
}
|
|
|
+ iter.decrementDepth()
|
|
|
}
|
|
|
|
|
|
type threeFieldsStructDecoder struct {
|
|
|
@@ -630,6 +642,9 @@ func (decoder *threeFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterat
|
|
|
if !iter.readObjectStart() {
|
|
|
return
|
|
|
}
|
|
|
+ if !iter.incrementDepth() {
|
|
|
+ return
|
|
|
+ }
|
|
|
for {
|
|
|
switch iter.readFieldHash() {
|
|
|
case decoder.fieldHash1:
|
|
|
@@ -648,6 +663,7 @@ func (decoder *threeFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterat
|
|
|
if iter.Error != nil && iter.Error != io.EOF {
|
|
|
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
|
|
}
|
|
|
+ iter.decrementDepth()
|
|
|
}
|
|
|
|
|
|
type fourFieldsStructDecoder struct {
|
|
|
@@ -666,6 +682,9 @@ func (decoder *fourFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterato
|
|
|
if !iter.readObjectStart() {
|
|
|
return
|
|
|
}
|
|
|
+ if !iter.incrementDepth() {
|
|
|
+ return
|
|
|
+ }
|
|
|
for {
|
|
|
switch iter.readFieldHash() {
|
|
|
case decoder.fieldHash1:
|
|
|
@@ -686,6 +705,7 @@ func (decoder *fourFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterato
|
|
|
if iter.Error != nil && iter.Error != io.EOF {
|
|
|
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
|
|
}
|
|
|
+ iter.decrementDepth()
|
|
|
}
|
|
|
|
|
|
type fiveFieldsStructDecoder struct {
|
|
|
@@ -706,6 +726,9 @@ func (decoder *fiveFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterato
|
|
|
if !iter.readObjectStart() {
|
|
|
return
|
|
|
}
|
|
|
+ if !iter.incrementDepth() {
|
|
|
+ return
|
|
|
+ }
|
|
|
for {
|
|
|
switch iter.readFieldHash() {
|
|
|
case decoder.fieldHash1:
|
|
|
@@ -728,6 +751,7 @@ func (decoder *fiveFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterato
|
|
|
if iter.Error != nil && iter.Error != io.EOF {
|
|
|
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
|
|
}
|
|
|
+ iter.decrementDepth()
|
|
|
}
|
|
|
|
|
|
type sixFieldsStructDecoder struct {
|
|
|
@@ -750,6 +774,9 @@ func (decoder *sixFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator
|
|
|
if !iter.readObjectStart() {
|
|
|
return
|
|
|
}
|
|
|
+ if !iter.incrementDepth() {
|
|
|
+ return
|
|
|
+ }
|
|
|
for {
|
|
|
switch iter.readFieldHash() {
|
|
|
case decoder.fieldHash1:
|
|
|
@@ -774,6 +801,7 @@ func (decoder *sixFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator
|
|
|
if iter.Error != nil && iter.Error != io.EOF {
|
|
|
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
|
|
}
|
|
|
+ iter.decrementDepth()
|
|
|
}
|
|
|
|
|
|
type sevenFieldsStructDecoder struct {
|
|
|
@@ -798,6 +826,9 @@ func (decoder *sevenFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterat
|
|
|
if !iter.readObjectStart() {
|
|
|
return
|
|
|
}
|
|
|
+ if !iter.incrementDepth() {
|
|
|
+ return
|
|
|
+ }
|
|
|
for {
|
|
|
switch iter.readFieldHash() {
|
|
|
case decoder.fieldHash1:
|
|
|
@@ -824,6 +855,7 @@ func (decoder *sevenFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterat
|
|
|
if iter.Error != nil && iter.Error != io.EOF {
|
|
|
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
|
|
}
|
|
|
+ iter.decrementDepth()
|
|
|
}
|
|
|
|
|
|
type eightFieldsStructDecoder struct {
|
|
|
@@ -850,6 +882,9 @@ func (decoder *eightFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterat
|
|
|
if !iter.readObjectStart() {
|
|
|
return
|
|
|
}
|
|
|
+ if !iter.incrementDepth() {
|
|
|
+ return
|
|
|
+ }
|
|
|
for {
|
|
|
switch iter.readFieldHash() {
|
|
|
case decoder.fieldHash1:
|
|
|
@@ -878,6 +913,7 @@ func (decoder *eightFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterat
|
|
|
if iter.Error != nil && iter.Error != io.EOF {
|
|
|
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
|
|
}
|
|
|
+ iter.decrementDepth()
|
|
|
}
|
|
|
|
|
|
type nineFieldsStructDecoder struct {
|
|
|
@@ -906,6 +942,9 @@ func (decoder *nineFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterato
|
|
|
if !iter.readObjectStart() {
|
|
|
return
|
|
|
}
|
|
|
+ if !iter.incrementDepth() {
|
|
|
+ return
|
|
|
+ }
|
|
|
for {
|
|
|
switch iter.readFieldHash() {
|
|
|
case decoder.fieldHash1:
|
|
|
@@ -936,6 +975,7 @@ func (decoder *nineFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterato
|
|
|
if iter.Error != nil && iter.Error != io.EOF {
|
|
|
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
|
|
}
|
|
|
+ iter.decrementDepth()
|
|
|
}
|
|
|
|
|
|
type tenFieldsStructDecoder struct {
|
|
|
@@ -966,6 +1006,9 @@ func (decoder *tenFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator
|
|
|
if !iter.readObjectStart() {
|
|
|
return
|
|
|
}
|
|
|
+ if !iter.incrementDepth() {
|
|
|
+ return
|
|
|
+ }
|
|
|
for {
|
|
|
switch iter.readFieldHash() {
|
|
|
case decoder.fieldHash1:
|
|
|
@@ -998,6 +1041,7 @@ func (decoder *tenFieldsStructDecoder) Decode(ptr unsafe.Pointer, iter *Iterator
|
|
|
if iter.Error != nil && iter.Error != io.EOF {
|
|
|
iter.Error = fmt.Errorf("%v.%s", decoder.typ, iter.Error.Error())
|
|
|
}
|
|
|
+ iter.decrementDepth()
|
|
|
}
|
|
|
|
|
|
type structFieldDecoder struct {
|