소스 검색

Use the name from the descriptor instead of RTTI. (#7465)

Joshua Haberman 5 년 전
부모
커밋
204f99488c
1개의 변경된 파일3개의 추가작업 그리고 8개의 파일을 삭제
  1. 3 8
      src/google/protobuf/util/field_mask_util.h

+ 3 - 8
src/google/protobuf/util/field_mask_util.h

@@ -60,19 +60,14 @@ class PROTOBUF_EXPORT FieldMaskUtil {
   template <typename T>
   static void FromFieldNumbers(const std::vector<int64>& 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 "
-                                   << PROTOBUF_RTTI_TYPENAME(T) << ": " << field_number;
+      GOOGLE_CHECK(field_desc != nullptr)
+          << "Invalid field number for " << T::descriptor()->full_name() << ": "
+          << field_number;
       AddPathToFieldMask<T>(field_desc->lowercase_name(), out);
     }
-    #undef PROTOBUF_RTTI_TYPENAME
   }
 
   // Converts FieldMask to/from string, formatted according to proto3 JSON