From 928f2ccc117a501f079ac62a3e8fe8ba03c9832a Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Fri, 15 Jul 2022 21:10:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dcodec=20=E7=BC=96=E7=A0=81?= =?UTF-8?q?=E5=BA=93json=E8=A7=A3=E6=9E=90=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lego/sys/codec/utils/int.go | 8 +++++--- modules/comp_model.go | 5 ++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lego/sys/codec/utils/int.go b/lego/sys/codec/utils/int.go index ba3c9b483..8eb08960b 100644 --- a/lego/sys/codec/utils/int.go +++ b/lego/sys/codec/utils/int.go @@ -163,8 +163,9 @@ func ReadUint32ForString(buf []byte) (ret uint32, n int, err error) { return } ret = uint32(ind) + n = 1 if len(buf) > 10 { - i := 0 + i := 1 ind2 := intDigits[buf[i]] if ind2 == invalidCharForNumber { n = i @@ -228,7 +229,7 @@ func ReadUint32ForString(buf []byte) (ret uint32, n int, err error) { return } } - for i := 1; i < len(buf); i++ { + for i := n; i < len(buf); i++ { ind = intDigits[buf[i]] if ind == invalidCharForNumber { n = i @@ -260,6 +261,7 @@ func ReadUint64ForString(buf []byte) (ret uint64, n int, err error) { return } ret = uint64(ind) + n = 1 if len(buf) > 10 { i := 0 ind2 := intDigits[buf[i]] @@ -325,7 +327,7 @@ func ReadUint64ForString(buf []byte) (ret uint64, n int, err error) { return } } - for i := 1; i < len(buf); i++ { + for i := n; i < len(buf); i++ { ind = intDigits[buf[i]] if ind == invalidCharForNumber { n = i diff --git a/modules/comp_model.go b/modules/comp_model.go index 27a8f3618..7323a50cb 100644 --- a/modules/comp_model.go +++ b/modules/comp_model.go @@ -411,7 +411,10 @@ func (this *MCompModel) GetList(uid string, data interface{}) (err error) { elemPtr = sliceType.UnsafeGetIndex(dptr, n) if *((*unsafe.Pointer)(elemPtr)) == nil { 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 } else { decoder.DecodeForMapJson(*((*unsafe.Pointer)(elemPtr)), v)