Skip to content

Commit a44c9cc

Browse files
authored
server: Defer region Clone to String() method (#3580)
Signed-off-by: Fred Wulff <frew@cs.stanford.edu>
1 parent 6351ca4 commit a44c9cc

File tree

1 file changed

+10
-12
lines changed

1 file changed

+10
-12
lines changed

server/core/region.go

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1122,9 +1122,6 @@ func RegionToHexMeta(meta *metapb.Region) HexRegionMeta {
11221122
if meta == nil {
11231123
return HexRegionMeta{}
11241124
}
1125-
meta = proto.Clone(meta).(*metapb.Region)
1126-
meta.StartKey = HexRegionKey(meta.StartKey)
1127-
meta.EndKey = HexRegionKey(meta.EndKey)
11281125
return HexRegionMeta{meta}
11291126
}
11301127

@@ -1134,20 +1131,17 @@ type HexRegionMeta struct {
11341131
}
11351132

11361133
func (h HexRegionMeta) String() string {
1137-
return strings.TrimSpace(proto.CompactTextString(h.Region))
1134+
var meta = proto.Clone(h.Region).(*metapb.Region)
1135+
meta.StartKey = HexRegionKey(meta.StartKey)
1136+
meta.EndKey = HexRegionKey(meta.EndKey)
1137+
return strings.TrimSpace(proto.CompactTextString(meta))
11381138
}
11391139

11401140
// RegionsToHexMeta converts regions' meta keys to hex format. Used for formating
11411141
// region in logs.
11421142
func RegionsToHexMeta(regions []*metapb.Region) HexRegionsMeta {
11431143
hexRegionMetas := make([]*metapb.Region, len(regions))
1144-
for i, region := range regions {
1145-
meta := proto.Clone(region).(*metapb.Region)
1146-
meta.StartKey = HexRegionKey(meta.StartKey)
1147-
meta.EndKey = HexRegionKey(meta.EndKey)
1148-
1149-
hexRegionMetas[i] = meta
1150-
}
1144+
copy(hexRegionMetas, regions)
11511145
return hexRegionMetas
11521146
}
11531147

@@ -1158,7 +1152,11 @@ type HexRegionsMeta []*metapb.Region
11581152
func (h HexRegionsMeta) String() string {
11591153
var b strings.Builder
11601154
for _, r := range h {
1161-
b.WriteString(proto.CompactTextString(r))
1155+
meta := proto.Clone(r).(*metapb.Region)
1156+
meta.StartKey = HexRegionKey(meta.StartKey)
1157+
meta.EndKey = HexRegionKey(meta.EndKey)
1158+
1159+
b.WriteString(proto.CompactTextString(meta))
11621160
}
11631161
return strings.TrimSpace(b.String())
11641162
}

0 commit comments

Comments
 (0)