From bdd69d943914ec2cf80004b30b71eb3965874326 Mon Sep 17 00:00:00 2001
From: zhangshen023 <1292369127@qq.com>
Date: Sat, 29 Aug 2020 13:44:45 +0800
Subject: [PATCH] optimize code and adapt to other unit test

---
 config/config_loader_test.go         |  4 ++++
 registry/consul/service_discovery.go | 14 +++++++-------
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/config/config_loader_test.go b/config/config_loader_test.go
index 461e607c1..baf0c8fba 100644
--- a/config/config_loader_test.go
+++ b/config/config_loader_test.go
@@ -503,6 +503,10 @@ func (m *mockServiceDiscovery) String() string {
 	panic("implement me")
 }
 
+func (m *mockServiceDiscovery) Init(registryURL common.URL) error {
+	panic("implement me")
+}
+
 func (m *mockServiceDiscovery) Destroy() error {
 	panic("implement me")
 }
diff --git a/registry/consul/service_discovery.go b/registry/consul/service_discovery.go
index b57f77191..e794beb0a 100644
--- a/registry/consul/service_discovery.go
+++ b/registry/consul/service_discovery.go
@@ -227,31 +227,31 @@ func (csd *consulServiceDiscovery) GetServices() *gxset.HashSet {
 
 // encodeConsulMetadata because consul validate key strictly.
 func encodeConsulMetadata(metadata map[string]string) map[string]string {
+	consulMetadata := make(map[string]string, 8)
 	if metadata == nil {
-		metadata = make(map[string]string, 1)
+		return consulMetadata
 	}
 	encoder := base64.RawStdEncoding
 	for k, v := range metadata {
-		delete(metadata, k)
-		metadata[encoder.EncodeToString([]byte(k))] = v
+		consulMetadata[encoder.EncodeToString([]byte(k))] = v
 	}
-	return metadata
+	return consulMetadata
 }
 
 // nolint
 func decodeConsulMetadata(metadata map[string]string) map[string]string {
+	dubboMetadata := make(map[string]string, 8)
 	if metadata == nil {
-		metadata = make(map[string]string, 1)
+		return dubboMetadata
 	}
 	encoder := base64.RawStdEncoding
 	for k, v := range metadata {
-		delete(metadata, k)
 		kBytes, err := encoder.DecodeString(k)
 		if err != nil {
 			logger.Warnf("can not decoded consul metadata key %s", k)
 			continue
 		}
-		metadata[string(kBytes)] = v
+		dubboMetadata[string(kBytes)] = v
 	}
 	return metadata
 }
-- 
GitLab