Fix message type to string crash (#4308)

* Fix message string crash

* Fix
This commit is contained in:
Yuhong Guo
2019-03-09 13:51:02 -08:00
committed by Stephanie Wang
parent edc794751f
commit ba3fe04629
+13 -3
View File
@@ -9,8 +9,12 @@
namespace {
const std::vector<std::string> GenerateEnumNames(const char *const *enum_names_ptr) {
const std::vector<std::string> GenerateEnumNames(const char *const *enum_names_ptr,
int start_index, int end_index) {
std::vector<std::string> enum_names;
for (int i = 0; i < start_index; ++i) {
enum_names.push_back("EmptyMessageType");
}
size_t i = 0;
while (true) {
const char *name = enum_names_ptr[i];
@@ -20,13 +24,19 @@ const std::vector<std::string> GenerateEnumNames(const char *const *enum_names_p
enum_names.push_back(name);
i++;
}
RAY_CHECK(static_cast<size_t>(end_index) == enum_names.size() - 1)
<< "Message Type mismatch!";
return enum_names;
}
static const std::vector<std::string> node_manager_message_enum =
GenerateEnumNames(ray::protocol::EnumNamesMessageType());
GenerateEnumNames(ray::protocol::EnumNamesMessageType(),
static_cast<int>(ray::protocol::MessageType::MIN),
static_cast<int>(ray::protocol::MessageType::MAX));
static const std::vector<std::string> object_manager_message_enum =
GenerateEnumNames(ray::object_manager::protocol::EnumNamesMessageType());
GenerateEnumNames(ray::object_manager::protocol::EnumNamesMessageType(),
static_cast<int>(ray::object_manager::protocol::MessageType::MIN),
static_cast<int>(ray::object_manager::protocol::MessageType::MAX));
}
namespace ray {