1515package protoencoding
1616
1717import (
18- "fmt"
19-
2018 "google.golang.org/protobuf/proto"
2119 "google.golang.org/protobuf/types/descriptorpb"
2220)
@@ -62,11 +60,7 @@ func stripLegacyOptionsFromFile(file *descriptorpb.FileDescriptorProto) (*descri
6260 continue
6361 }
6462 if ! cloned {
65- newFile , err := clone (file )
66- if err != nil {
67- return nil , err
68- }
69- file = newFile
63+ file = proto .CloneOf (file )
7064 cloned = true
7165 }
7266 file .MessageType [i ] = newDescriptor
@@ -77,11 +71,7 @@ func stripLegacyOptionsFromFile(file *descriptorpb.FileDescriptorProto) (*descri
7771 }
7872 if newExts != nil {
7973 if ! cloned {
80- newFile , err := clone (file )
81- if err != nil {
82- return nil , err
83- }
84- file = newFile
74+ file = proto .CloneOf (file )
8575 cloned = true
8676 }
8777 file .Extension = newExts
@@ -100,11 +90,7 @@ func stripLegacyOptionsFromMessage(message *descriptorpb.DescriptorProto) (*desc
10090 if message .GetOptions ().GetMessageSetWireFormat () {
10191 // Strip this option since the Go runtime does not support
10292 // creating protoreflect.Descriptor instances with this set.
103- newMessage , err := clone (message )
104- if err != nil {
105- return nil , err
106- }
107- message = newMessage
93+ message = proto .CloneOf (message )
10894 cloned = true
10995 message .Options .MessageSetWireFormat = nil
11096 }
@@ -117,11 +103,7 @@ func stripLegacyOptionsFromMessage(message *descriptorpb.DescriptorProto) (*desc
117103 continue
118104 }
119105 if ! cloned {
120- newMessage , err := clone (message )
121- if err != nil {
122- return nil , err
123- }
124- message = newMessage
106+ message = proto .CloneOf (message )
125107 cloned = true
126108 }
127109 message .Field [i ] = newDescriptor
@@ -136,11 +118,7 @@ func stripLegacyOptionsFromMessage(message *descriptorpb.DescriptorProto) (*desc
136118 continue
137119 }
138120 if ! cloned {
139- newMessage , err := clone (message )
140- if err != nil {
141- return nil , err
142- }
143- message = newMessage
121+ message = proto .CloneOf (message )
144122 cloned = true
145123 }
146124 message .NestedType [i ] = newDescriptor
@@ -151,11 +129,7 @@ func stripLegacyOptionsFromMessage(message *descriptorpb.DescriptorProto) (*desc
151129 }
152130 if newExtRanges != nil {
153131 if ! cloned {
154- newMessage , err := clone (message )
155- if err != nil {
156- return nil , err
157- }
158- message = newMessage
132+ message = proto .CloneOf (message )
159133 cloned = true
160134 }
161135 message .ExtensionRange = newExtRanges
@@ -166,11 +140,7 @@ func stripLegacyOptionsFromMessage(message *descriptorpb.DescriptorProto) (*desc
166140 }
167141 if newExts != nil {
168142 if ! cloned {
169- newMessage , err := clone (message )
170- if err != nil {
171- return nil , err
172- }
173- message = newMessage
143+ message = proto .CloneOf (message )
174144 cloned = true
175145 }
176146 message .Extension = newExts
@@ -192,10 +162,7 @@ func stripLegacyOptionsFromField(field *descriptorpb.FieldDescriptorProto) (*des
192162 // creating protoreflect.Descriptor instances with this set.
193163 // Buf CLI doesn't actually support weak dependencies, so
194164 // there should be no practical consequences of removing this.
195- newField , err := clone (field )
196- if err != nil {
197- return nil , err
198- }
165+ newField := proto .CloneOf (field )
199166 newField .Options .Weak = nil
200167 return newField , nil
201168}
@@ -267,10 +234,7 @@ func stripLegacyOptionsFromExtensionRanges(extRanges []*descriptorpb.DescriptorP
267234 continue
268235 }
269236 if extRange .GetEnd () > maxTagNumber + 1 /* extension range end is exclusive */ {
270- newExtRange , err := clone (extRange )
271- if err != nil {
272- return nil , err
273- }
237+ newExtRange := proto .CloneOf (extRange )
274238 newExtRange .End = proto .Int32 (maxTagNumber + 1 )
275239 if newExtRanges == nil {
276240 // initialize to everything so far except current item (that we're replacing)
@@ -286,13 +250,3 @@ func stripLegacyOptionsFromExtensionRanges(extRanges []*descriptorpb.DescriptorP
286250 }
287251 return newExtRanges , nil
288252}
289-
290- func clone [M proto.Message ](message M ) (M , error ) {
291- clone := proto .Clone (message )
292- newMessage , isFileProto := clone .(M )
293- if ! isFileProto {
294- var zero M
295- return zero , fmt .Errorf ("proto.Clone returned unexpected value: %T instead of %T" , clone , message )
296- }
297- return newMessage , nil
298- }
0 commit comments