You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2021/09/05 05:17:44 UTC
[dubbo-go-hessian2] branch master updated: write empty map for
empty map instead null
This is an automated email from the ASF dual-hosted git repository.
alexstocks pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-go-hessian2.git
The following commit(s) were added to refs/heads/master by this push:
new d986129 write empty map for empty map instead null
new 8679ff8 Merge pull request #275 from zhwaaaaaa/zw-dev
d986129 is described below
commit d98612902c0f82b528d77baf309a143ceb562da9
Author: wangzhang.zw <wa...@alibaba-inc.com>
AuthorDate: Fri Sep 3 18:47:12 2021 +0800
write empty map for empty map instead null
---
map.go | 32 +++++++++++++++-----------------
1 file changed, 15 insertions(+), 17 deletions(-)
diff --git a/map.go b/map.go
index 64227bf..cd340df 100644
--- a/map.go
+++ b/map.go
@@ -118,27 +118,25 @@ func (e *Encoder) encMap(m interface{}) error {
}
keys = value.MapKeys()
- if len(keys) == 0 {
- // fix: set nil for empty map
- e.buffer = EncNull(e.buffer)
- return nil
- }
- typ = value.Type().Key()
e.buffer = encByte(e.buffer, BC_MAP_UNTYPED)
- for i := 0; i < len(keys); i++ {
- k, err = getMapKey(keys[i], typ)
- if err != nil {
- return perrors.Wrapf(err, "getMapKey(idx:%d, key:%+v)", i, keys[i])
- }
- if err = e.Encode(k); err != nil {
- return perrors.Wrapf(err, "failed to encode map key(idx:%d, key:%+v)", i, keys[i])
- }
- entryValueObj := value.MapIndex(keys[i]).Interface()
- if err = e.Encode(entryValueObj); err != nil {
- return perrors.Wrapf(err, "failed to encode map value(idx:%d, key:%+v, value:%+v)", i, k, entryValueObj)
+ if len(keys) > 0 {
+ typ = value.Type().Key()
+ for i := 0; i < len(keys); i++ {
+ k, err = getMapKey(keys[i], typ)
+ if err != nil {
+ return perrors.Wrapf(err, "getMapKey(idx:%d, key:%+v)", i, keys[i])
+ }
+ if err = e.Encode(k); err != nil {
+ return perrors.Wrapf(err, "failed to encode map key(idx:%d, key:%+v)", i, keys[i])
+ }
+ entryValueObj := value.MapIndex(keys[i]).Interface()
+ if err = e.Encode(entryValueObj); err != nil {
+ return perrors.Wrapf(err, "failed to encode map value(idx:%d, key:%+v, value:%+v)", i, k, entryValueObj)
+ }
}
}
+
e.buffer = encByte(e.buffer, BC_END)
return nil