Skip to content

Commit 00f88cc

Browse files
author
L'In20Cible
committed
Fixed ProtobufMessage.get_[repeated_]string crashes.
1 parent 6c13297 commit 00f88cc

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

src/core/modules/messages/messages.h

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,11 @@
137137
{ return GetField<bool>(pMessage, &google::protobuf::Reflection::GetBool, field_name); }
138138

139139
static std::string GetString(google::protobuf::Message* pMessage, const char* field_name)
140-
{ return GetField<std::string>(pMessage, &google::protobuf::Reflection::GetString, field_name); }
140+
{
141+
std::string return_value;
142+
return_value = pMessage->GetReflection()->GetStringReference(*pMessage, GetFieldDescriptor(pMessage, field_name), &return_value);
143+
return return_value;
144+
}
141145

142146
static int GetEnum(google::protobuf::Message* pMessage, const char* field_name)
143147
{ return GetField<const google::protobuf::EnumValueDescriptor*>(pMessage, &google::protobuf::Reflection::GetEnum, field_name)->number(); }
@@ -179,7 +183,11 @@
179183
{ return GetRepeatedField<bool>(pMessage, &google::protobuf::Reflection::GetRepeatedBool, field_name, index); }
180184

181185
static std::string GetRepeatedString(google::protobuf::Message* pMessage, const char* field_name, int index)
182-
{ return GetRepeatedField<std::string>(pMessage, &google::protobuf::Reflection::GetRepeatedString, field_name, index); }
186+
{
187+
std::string return_value;
188+
return_value = pMessage->GetReflection()->GetRepeatedStringReference(*pMessage, GetFieldDescriptor(pMessage, field_name), index, &return_value);
189+
return return_value;
190+
}
183191

184192
static int GetRepeatedEnum(google::protobuf::Message* pMessage, const char* field_name, int index)
185193
{ return GetRepeatedField<const google::protobuf::EnumValueDescriptor*>(pMessage, &google::protobuf::Reflection::GetRepeatedEnum, field_name, index)->number(); }

0 commit comments

Comments
 (0)