Skip to content

Commit

Permalink
Merge pull request #113 from nsuke/oneof-c++11
Browse files Browse the repository at this point in the history
Make C++ code generation of string oneof field compatible with C++11
  • Loading branch information
xfxyjwf committed Dec 12, 2014
2 parents 78c8200 + 2413cb5 commit 001e82a
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 41 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -725,7 +725,7 @@ TEST_F(CommandLineInterfaceTest, ColonDelimitedPath) {
#endif

Run("protocol_compiler --test_out=$tmpdir "
"--proto_path=$tmpdir/a"PATH_SEPARATOR"$tmpdir/b foo.proto");
"--proto_path=$tmpdir/a" PATH_SEPARATOR "$tmpdir/b foo.proto");

#undef PATH_SEPARATOR

Expand Down
3 changes: 1 addition & 2 deletions src/google/protobuf/compiler/cpp/cpp_string_field.cc
Original file line number Diff line number Diff line change
Expand Up @@ -613,8 +613,7 @@ GenerateSwappingCode(io::Printer* printer) const {
void StringOneofFieldGenerator::
GenerateConstructorCode(io::Printer* printer) const {
printer->Print(variables_,
" const_cast< ::google::protobuf::internal::ArenaStringPtr*>("
"&$classname$_default_oneof_instance_->$name$_)->UnsafeSetDefault("
" $classname$_default_oneof_instance_->$name$_.UnsafeSetDefault("
"$default_variable$);\n");
}

Expand Down
58 changes: 29 additions & 29 deletions src/google/protobuf/compiler/parser_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -379,35 +379,35 @@ TEST_F(ParseMessageTest, FieldDefaults) {
#define ETC "name:\"foo\" label:LABEL_REQUIRED number:1"
"message_type {"
" name: \"TestMessage\""
" field { type:TYPE_INT32 default_value:\"1\" "ETC" }"
" field { type:TYPE_INT32 default_value:\"-2\" "ETC" }"
" field { type:TYPE_INT64 default_value:\"3\" "ETC" }"
" field { type:TYPE_INT64 default_value:\"-4\" "ETC" }"
" field { type:TYPE_UINT32 default_value:\"5\" "ETC" }"
" field { type:TYPE_UINT64 default_value:\"6\" "ETC" }"
" field { type:TYPE_FLOAT default_value:\"7.5\" "ETC" }"
" field { type:TYPE_FLOAT default_value:\"-8.5\" "ETC" }"
" field { type:TYPE_FLOAT default_value:\"9\" "ETC" }"
" field { type:TYPE_DOUBLE default_value:\"10.5\" "ETC" }"
" field { type:TYPE_DOUBLE default_value:\"-11.5\" "ETC" }"
" field { type:TYPE_DOUBLE default_value:\"12\" "ETC" }"
" field { type:TYPE_DOUBLE default_value:\"inf\" "ETC" }"
" field { type:TYPE_DOUBLE default_value:\"-inf\" "ETC" }"
" field { type:TYPE_DOUBLE default_value:\"nan\" "ETC" }"
" field { type:TYPE_STRING default_value:\"13\\001\" "ETC" }"
" field { type:TYPE_STRING default_value:\"abc\" "ETC" }"
" field { type:TYPE_BYTES default_value:\"14\\\\002\" "ETC" }"
" field { type:TYPE_BYTES default_value:\"abc\" "ETC" }"
" field { type:TYPE_BOOL default_value:\"true\" "ETC" }"
" field { type_name:\"Foo\" default_value:\"FOO\" "ETC" }"

" field { type:TYPE_INT32 default_value:\"2147483647\" "ETC" }"
" field { type:TYPE_INT32 default_value:\"-2147483648\" "ETC" }"
" field { type:TYPE_UINT32 default_value:\"4294967295\" "ETC" }"
" field { type:TYPE_INT64 default_value:\"9223372036854775807\" "ETC" }"
" field { type:TYPE_INT64 default_value:\"-9223372036854775808\" "ETC" }"
" field { type:TYPE_UINT64 default_value:\"18446744073709551615\" "ETC" }"
" field { type:TYPE_DOUBLE default_value:\"43981\" "ETC" }"
" field { type:TYPE_INT32 default_value:\"1\" " ETC " }"
" field { type:TYPE_INT32 default_value:\"-2\" " ETC " }"
" field { type:TYPE_INT64 default_value:\"3\" " ETC " }"
" field { type:TYPE_INT64 default_value:\"-4\" " ETC " }"
" field { type:TYPE_UINT32 default_value:\"5\" " ETC " }"
" field { type:TYPE_UINT64 default_value:\"6\" " ETC " }"
" field { type:TYPE_FLOAT default_value:\"7.5\" " ETC " }"
" field { type:TYPE_FLOAT default_value:\"-8.5\" " ETC " }"
" field { type:TYPE_FLOAT default_value:\"9\" " ETC " }"
" field { type:TYPE_DOUBLE default_value:\"10.5\" " ETC " }"
" field { type:TYPE_DOUBLE default_value:\"-11.5\" " ETC " }"
" field { type:TYPE_DOUBLE default_value:\"12\" " ETC " }"
" field { type:TYPE_DOUBLE default_value:\"inf\" " ETC " }"
" field { type:TYPE_DOUBLE default_value:\"-inf\" " ETC " }"
" field { type:TYPE_DOUBLE default_value:\"nan\" " ETC " }"
" field { type:TYPE_STRING default_value:\"13\\001\" " ETC " }"
" field { type:TYPE_STRING default_value:\"abc\" " ETC " }"
" field { type:TYPE_BYTES default_value:\"14\\\\002\" " ETC " }"
" field { type:TYPE_BYTES default_value:\"abc\" " ETC " }"
" field { type:TYPE_BOOL default_value:\"true\" " ETC " }"
" field { type_name:\"Foo\" default_value:\"FOO\" " ETC " }"

" field { type:TYPE_INT32 default_value:\"2147483647\" " ETC " }"
" field { type:TYPE_INT32 default_value:\"-2147483648\" " ETC " }"
" field { type:TYPE_UINT32 default_value:\"4294967295\" " ETC " }"
" field { type:TYPE_INT64 default_value:\"9223372036854775807\" " ETC " }"
" field { type:TYPE_INT64 default_value:\"-9223372036854775808\" " ETC " }"
" field { type:TYPE_UINT64 default_value:\"18446744073709551615\" " ETC " }"
" field { type:TYPE_DOUBLE default_value:\"43981\" " ETC " }"
"}");
#undef ETC
}
Expand Down
4 changes: 2 additions & 2 deletions src/google/protobuf/descriptor_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5883,8 +5883,8 @@ class AbortingErrorCollector : public DescriptorPool::ErrorCollector {
const Message *message,
ErrorLocation location,
const string &error_message) {
GOOGLE_LOG(FATAL) << "AddError() called unexpectedly: " << filename << ": "
<< error_message;
GOOGLE_LOG(FATAL) << "AddError() called unexpectedly: " << filename << " ["
<< element_name << "]: " << error_message;
}
private:
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(AbortingErrorCollector);
Expand Down
14 changes: 7 additions & 7 deletions src/google/protobuf/stubs/common_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,9 @@ TEST(LoggingTest, DefaultLogging) {

string text = GetCapturedTestStderr();
EXPECT_EQ(
"[libprotobuf INFO "__FILE__":" + SimpleItoa(line + 1) + "] A message.\n"
"[libprotobuf WARNING "__FILE__":" + SimpleItoa(line + 2) + "] A warning.\n"
"[libprotobuf ERROR "__FILE__":" + SimpleItoa(line + 3) + "] An error.\n",
"[libprotobuf INFO " __FILE__ ":" + SimpleItoa(line + 1) + "] A message.\n"
"[libprotobuf WARNING " __FILE__ ":" + SimpleItoa(line + 2) + "] A warning.\n"
"[libprotobuf ERROR " __FILE__ ":" + SimpleItoa(line + 3) + "] An error.\n",
text);
}

Expand Down Expand Up @@ -128,10 +128,10 @@ TEST(LoggingTest, CaptureLogging) {

ASSERT_EQ(2, captured_messages_.size());
EXPECT_EQ(
"2 "__FILE__":" + SimpleItoa(start_line + 1) + ": An error.",
"2 " __FILE__ ":" + SimpleItoa(start_line + 1) + ": An error.",
captured_messages_[0]);
EXPECT_EQ(
"1 "__FILE__":" + SimpleItoa(start_line + 2) + ": A warning.",
"1 " __FILE__ ":" + SimpleItoa(start_line + 2) + ": A warning.",
captured_messages_[1]);
}

Expand All @@ -154,10 +154,10 @@ TEST(LoggingTest, SilenceLogging) {

ASSERT_EQ(2, captured_messages_.size());
EXPECT_EQ(
"0 "__FILE__":" + SimpleItoa(line1) + ": Visible1",
"0 " __FILE__ ":" + SimpleItoa(line1) + ": Visible1",
captured_messages_[0]);
EXPECT_EQ(
"0 "__FILE__":" + SimpleItoa(line2) + ": Visible2",
"0 " __FILE__ ":" + SimpleItoa(line2) + ": Visible2",
captured_messages_[1]);
}

Expand Down

0 comments on commit 001e82a

Please sign in to comment.