Index: third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_field.h |
diff --git a/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_field.h b/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_field.h |
index 3b01252780da26393e0056c802f068bea1b7f044..fdd338a65a968e1b13336d49c2c7471be9ab1761 100644 |
--- a/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_field.h |
+++ b/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_field.h |
@@ -136,6 +136,13 @@ class FieldGenerator { |
// GenerateMergeFrom method. |
virtual void GenerateMergingCode(io::Printer* printer) const = 0; |
+ // The same, but the generated code may or may not check the possibility that |
+ // the two objects being merged have the same address. To be safe, callers |
+ // should avoid calling this unless they know the objects are different. |
+ virtual void GenerateUnsafeMergingCode(io::Printer* printer) const { |
+ GenerateMergingCode(printer); |
+ } |
+ |
// Generate lines of code (statements, not declarations) which swaps |
// this field and the corresponding field of another message, which |
// is stored in the generated code variable "other". This is used to |