diff --git a/src/google/protobuf/util/field_mask_util.h b/src/google/protobuf/util/field_mask_util.h index 36040fefa6..dce5bc93b2 100644 --- a/src/google/protobuf/util/field_mask_util.h +++ b/src/google/protobuf/util/field_mask_util.h @@ -46,12 +46,6 @@ namespace google { namespace protobuf { namespace util { -#if GTEST_HAS_RTTI -#define TYPENAME(T) typeid(T).name() -#else -#define TYPENAME(T) #T -#endif - class PROTOBUF_EXPORT FieldMaskUtil { typedef google::protobuf::FieldMask FieldMask; @@ -66,13 +60,19 @@ class PROTOBUF_EXPORT FieldMaskUtil { template static void FromFieldNumbers(const std::vector& field_numbers, FieldMask* out) { + #if PROTOBUF_RTTI + #define PROTOBUF_RTTI_TYPENAME(T) typeid(T).name() + #else + #define PROTOBUF_RTTI_TYPENAME(T) #T + #endif for (const auto field_number : field_numbers) { const FieldDescriptor* field_desc = T::descriptor()->FindFieldByNumber(field_number); GOOGLE_CHECK(field_desc != nullptr) << "Invalid field number for " - << TYPENAME(T) << ": " << field_number; + << PROTOBUF_RTTI_TYPENAME(T) << ": " << field_number; AddPathToFieldMask(field_desc->lowercase_name(), out); } + #undef PROTOBUF_RTTI_TYPENAME } // Converts FieldMask to/from string, formatted according to proto3 JSON