From 613889ed24a11c860d8af7226291b7e808e71708 Mon Sep 17 00:00:00 2001 From: xiezhengyao Date: Fri, 27 Sep 2024 11:39:22 +0800 Subject: [PATCH] fix: deep copy nil string --- tool/internal_pkg/pluginmode/thriftgo/struct_tpl.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tool/internal_pkg/pluginmode/thriftgo/struct_tpl.go b/tool/internal_pkg/pluginmode/thriftgo/struct_tpl.go index 41350ffc52..ace72884b5 100644 --- a/tool/internal_pkg/pluginmode/thriftgo/struct_tpl.go +++ b/tool/internal_pkg/pluginmode/thriftgo/struct_tpl.go @@ -714,16 +714,17 @@ const FieldDeepCopyBaseType = ` {{- if .IsPointer}} if {{$Src}} != nil { {{- if IsGoStringType .TypeName}} + var tmp string if *{{$Src}} != "" { - tmp := kutils.StringDeepCopy(*{{$Src}}) - {{.Target}} = &tmp + tmp = kutils.StringDeepCopy(*{{$Src}}) } + {{.Target}} = &tmp {{- else if .Type.Category.IsBinary}} + tmp := make([]byte, len(*{{$Src}})) if len(*{{$Src}}) != 0 { - tmp := make([]byte, len(*{{$Src}})) copy(tmp, *{{$Src}}) - {{.Target}} = &tmp } + {{.Target}} = &tmp {{- else}} tmp := *{{$Src}} {{.Target}} = &tmp