|
|
|
@ -347,9 +347,10 @@ class LIBPROTOBUF_EXPORT GeneratedMessageReflection : public Reflection { |
|
|
|
|
// choose 16 rather than some other number just in case the compiler would
|
|
|
|
|
// be confused by an unaligned pointer.
|
|
|
|
|
#define GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TYPE, FIELD) \ |
|
|
|
|
(reinterpret_cast<const char*>( \
|
|
|
|
|
&reinterpret_cast<const TYPE*>(16)->FIELD) - \
|
|
|
|
|
reinterpret_cast<const char*>(16)) |
|
|
|
|
static_cast<int>( \
|
|
|
|
|
reinterpret_cast<const char*>( \
|
|
|
|
|
&reinterpret_cast<const TYPE*>(16)->FIELD) - \
|
|
|
|
|
reinterpret_cast<const char*>(16)) |
|
|
|
|
|
|
|
|
|
// There are some places in proto2 where dynamic_cast would be useful as an
|
|
|
|
|
// optimization. For example, take Message::MergeFrom(const Message& other).
|
|
|
|
|