修复codec 编码库json解析错误

This commit is contained in:
liwei1dao 2022-07-15 21:10:56 +08:00
parent f8653cdd3d
commit 928f2ccc11
2 changed files with 9 additions and 4 deletions

View File

@ -163,8 +163,9 @@ func ReadUint32ForString(buf []byte) (ret uint32, n int, err error) {
return return
} }
ret = uint32(ind) ret = uint32(ind)
n = 1
if len(buf) > 10 { if len(buf) > 10 {
i := 0 i := 1
ind2 := intDigits[buf[i]] ind2 := intDigits[buf[i]]
if ind2 == invalidCharForNumber { if ind2 == invalidCharForNumber {
n = i n = i
@ -228,7 +229,7 @@ func ReadUint32ForString(buf []byte) (ret uint32, n int, err error) {
return return
} }
} }
for i := 1; i < len(buf); i++ { for i := n; i < len(buf); i++ {
ind = intDigits[buf[i]] ind = intDigits[buf[i]]
if ind == invalidCharForNumber { if ind == invalidCharForNumber {
n = i n = i
@ -260,6 +261,7 @@ func ReadUint64ForString(buf []byte) (ret uint64, n int, err error) {
return return
} }
ret = uint64(ind) ret = uint64(ind)
n = 1
if len(buf) > 10 { if len(buf) > 10 {
i := 0 i := 0
ind2 := intDigits[buf[i]] ind2 := intDigits[buf[i]]
@ -325,7 +327,7 @@ func ReadUint64ForString(buf []byte) (ret uint64, n int, err error) {
return return
} }
} }
for i := 1; i < len(buf); i++ { for i := n; i < len(buf); i++ {
ind = intDigits[buf[i]] ind = intDigits[buf[i]]
if ind == invalidCharForNumber { if ind == invalidCharForNumber {
n = i n = i

View File

@ -411,7 +411,10 @@ func (this *MCompModel) GetList(uid string, data interface{}) (err error) {
elemPtr = sliceType.UnsafeGetIndex(dptr, n) elemPtr = sliceType.UnsafeGetIndex(dptr, n)
if *((*unsafe.Pointer)(elemPtr)) == nil { if *((*unsafe.Pointer)(elemPtr)) == nil {
newPtr := sliceelemType.UnsafeNew() newPtr := sliceelemType.UnsafeNew()
decoder.DecodeForMapJson(newPtr, v) if err = decoder.DecodeForMapJson(newPtr, v); err != nil {
log.Errorf("err:%v", err)
return
}
*((*unsafe.Pointer)(elemPtr)) = newPtr *((*unsafe.Pointer)(elemPtr)) = newPtr
} else { } else {
decoder.DecodeForMapJson(*((*unsafe.Pointer)(elemPtr)), v) decoder.DecodeForMapJson(*((*unsafe.Pointer)(elemPtr)), v)