aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/google/protobuf/arenastring.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/google/protobuf/arenastring.cc')
-rw-r--r--src/google/protobuf/arenastring.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/google/protobuf/arenastring.cc b/src/google/protobuf/arenastring.cc
index 7f33a0c8..cce61d74 100644
--- a/src/google/protobuf/arenastring.cc
+++ b/src/google/protobuf/arenastring.cc
@@ -38,6 +38,16 @@ namespace protobuf {
namespace internal {
+void ArenaStringPtr::AssignWithDefault(const ::std::string* default_value,
+ ArenaStringPtr value) {
+ const ::std::string* me = *UnsafeRawStringPointer();
+ const ::std::string* other = *value.UnsafeRawStringPointer();
+ // If the pointers are the same then do nothing.
+ if (me != other) {
+ SetNoArena(default_value, value.GetNoArena(default_value));
+ }
+}
+
} // namespace internal
} // namespace protobuf
} // namespace google