Addressed PR comments.

pull/13171/head
Joshua Haberman 4 years ago
parent b1bbbdd4e7
commit 29be74c5d2
  1. 5
      upb/msg_test.cc
  2. 10
      upbc/protoc-gen-upb.cc

@ -60,13 +60,13 @@ TEST(MessageTest, Extensions) {
upb::MessageDefPtr m(upb_test_TestExtensions_getmsgdef(symtab.ptr()));
EXPECT_TRUE(m.ptr() != nullptr);
std::string json = R"(
std::string json = R"json(
{
"[upb_test.TestExtensions.optional_int32_ext]": 123,
"[upb_test.TestExtensions.Nested.repeated_int32_ext]": [2, 4, 6],
"[upb_test.optional_msg_ext]": {"optional_int32": 456}
}
)";
)json";
upb::Status status;
EXPECT_TRUE(upb_json_decode(json.data(), json.size(), ext_msg, m.ptr(),
symtab.ptr(), 0, arena.ptr(), status.ptr()))
@ -98,4 +98,3 @@ TEST(MessageTest, Extensions) {
<< status.error_message();
VerifyMessage(ext_msg3);
}

@ -1172,18 +1172,16 @@ int WriteExtensions(const protobuf::FileDescriptor* file, Output& output) {
// Order by full name for consistent ordering.
std::map<std::string, const protobuf::Descriptor*> forward_messages;
auto add_forward_decl = [&](const protobuf::Descriptor* d) {
forward_messages[d->full_name()] = d;
};
for (auto ext : exts) {
add_forward_decl(ext->containing_type());
forward_messages[ext->containing_type()->full_name()] =
ext->containing_type();
if (ext->message_type()) {
add_forward_decl(ext->message_type());
forward_messages[ext->message_type()->full_name()] = ext->message_type();
}
}
for (auto decl : forward_messages) {
for (const auto& decl : forward_messages) {
output("extern const upb_msglayout $0;\n", MessageInit(decl.second));
}

Loading…
Cancel
Save