Make sure to quality calls to std::swap. Otherwise, if a google::swap() exists (e.g. because the user is using our own dense_hash_map implementation) it will be chosen instead, leading to a compile error.
diff --git a/src/google/protobuf/compiler/command_line_interface_unittest.cc b/src/google/protobuf/compiler/command_line_interface_unittest.cc
index 719771e..0784e78 100644
--- a/src/google/protobuf/compiler/command_line_interface_unittest.cc
+++ b/src/google/protobuf/compiler/command_line_interface_unittest.cc
@@ -775,8 +775,8 @@
if (HasFatalFailure()) return;
ASSERT_EQ(2, descriptor_set.file_size());
if (descriptor_set.file(0).name() == "bar.proto") {
- swap(descriptor_set.mutable_file()->mutable_data()[0],
- descriptor_set.mutable_file()->mutable_data()[1]);
+ std::swap(descriptor_set.mutable_file()->mutable_data()[0],
+ descriptor_set.mutable_file()->mutable_data()[1]);
}
EXPECT_EQ("foo.proto", descriptor_set.file(0).name());
EXPECT_EQ("bar.proto", descriptor_set.file(1).name());
diff --git a/src/google/protobuf/generated_message_reflection.cc b/src/google/protobuf/generated_message_reflection.cc
index d294e58..e04b93c 100644
--- a/src/google/protobuf/generated_message_reflection.cc
+++ b/src/google/protobuf/generated_message_reflection.cc
@@ -324,7 +324,7 @@
int has_bits_size = (descriptor_->field_count() + 31) / 32;
for (int i = 0; i < has_bits_size; i++) {
- swap(has_bits1[i], has_bits2[i]);
+ std::swap(has_bits1[i], has_bits2[i]);
}
for (int i = 0; i < descriptor_->field_count(); i++) {
@@ -360,8 +360,8 @@
switch (field->cpp_type()) {
#define SWAP_VALUES(CPPTYPE, TYPE) \
case FieldDescriptor::CPPTYPE_##CPPTYPE: \
- swap(*MutableRaw<TYPE>(message1, field), \
- *MutableRaw<TYPE>(message2, field)); \
+ std::swap(*MutableRaw<TYPE>(message1, field), \
+ *MutableRaw<TYPE>(message2, field)); \
break;
SWAP_VALUES(INT32 , int32 );
@@ -376,8 +376,8 @@
#undef SWAP_VALUES
case FieldDescriptor::CPPTYPE_STRING:
- swap(*MutableRaw<string*>(message1, field),
- *MutableRaw<string*>(message2, field));
+ std::swap(*MutableRaw<string*>(message1, field),
+ *MutableRaw<string*>(message2, field));
break;
default:
diff --git a/src/google/protobuf/repeated_field.h b/src/google/protobuf/repeated_field.h
index 43c9f3f..1696e2a 100644
--- a/src/google/protobuf/repeated_field.h
+++ b/src/google/protobuf/repeated_field.h
@@ -491,7 +491,7 @@
template <typename Element>
void RepeatedField<Element>::SwapElements(int index1, int index2) {
- swap(elements_[index1], elements_[index2]);
+ std::swap(elements_[index1], elements_[index2]);
}
template <typename Element>
@@ -627,7 +627,7 @@
}
inline void RepeatedPtrFieldBase::SwapElements(int index1, int index2) {
- swap(elements_[index1], elements_[index2]);
+ std::swap(elements_[index1], elements_[index2]);
}
template <typename TypeHandler>