Browse Source

Use uint32 in GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET macro

There have been some reports that this necessary to prevent build
failures in some environments. It makes sense to do this anyway since
the result of this macro is ultimately assigned to uint32 in the
generated code.
Adam Cozzette 8 years ago
parent
commit
e19f3b5e3a
1 changed files with 4 additions and 4 deletions
  1. 4 4
      src/google/protobuf/generated_message_reflection.h

+ 4 - 4
src/google/protobuf/generated_message_reflection.h

@@ -660,14 +660,14 @@ class LIBPROTOBUF_EXPORT GeneratedMessageReflection PROTOBUF_FINAL : public Refl
 // choose 16 rather than some other number just in case the compiler would
 // choose 16 rather than some other number just in case the compiler would
 // be confused by an unaligned pointer.
 // be confused by an unaligned pointer.
 #define GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TYPE, FIELD)    \
 #define GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TYPE, FIELD)    \
-  static_cast<int>(                                           \
-      reinterpret_cast<const char*>(                          \
-          &reinterpret_cast<const TYPE*>(16)->FIELD) -        \
+  static_cast< ::google::protobuf::uint32>(                            \
+      reinterpret_cast<const char*>(                                   \
+          &reinterpret_cast<const TYPE*>(16)->FIELD) -                 \
       reinterpret_cast<const char*>(16))
       reinterpret_cast<const char*>(16))
 #endif
 #endif
 
 
 #define PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(ONEOF, FIELD)     \
 #define PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(ONEOF, FIELD)     \
-  static_cast< ::google::protobuf::uint32>(                                              \
+  static_cast< ::google::protobuf::uint32>(                           \
       reinterpret_cast<const char*>(&(ONEOF->FIELD))                  \
       reinterpret_cast<const char*>(&(ONEOF->FIELD))                  \
       - reinterpret_cast<const char*>(ONEOF))
       - reinterpret_cast<const char*>(ONEOF))