38 #ifndef GOOGLE_PROTOBUF_METADATA_H__ 39 #define GOOGLE_PROTOBUF_METADATA_H__ 66 if (have_unknown_fields() && arena() ==
NULL) {
67 delete PtrValue<Container>();
74 return PtrValue<Container>()->unknown_fields_;
82 return &PtrValue<Container>()->unknown_fields_;
84 return mutable_unknown_fields_slow();
90 return PtrValue<Container>()->arena_;
92 return PtrValue<Arena>();
97 return PtrTag() == kTagContainer;
126 static const intptr_t kPtrTagMask = 1;
127 static const intptr_t kPtrValueMask = ~kPtrTagMask;
131 return reinterpret_cast<intptr_t>(ptr_) & kPtrTagMask;
134 template<
typename T>
T* PtrValue()
const {
135 return reinterpret_cast<T*
>(
136 reinterpret_cast<intptr_t>(ptr_) & kPtrValueMask);
146 Arena* my_arena = arena();
147 Container* container = Arena::Create<Container>(my_arena);
148 ptr_ =
reinterpret_cast<void*
>(
149 reinterpret_cast<intptr_t>(container) | kTagContainer);
150 container->arena_ = my_arena;
151 return &(container->unknown_fields_);
163 #endif // GOOGLE_PROTOBUF_METADATA_H__
InternalMetadataWithArena InternalMetadata
Definition: metadata.h:157
#define GOOGLE_ATTRIBUTE_NOINLINE
Definition: port.h:189
#define GOOGLE_ATTRIBUTE_ALWAYS_INLINE
Definition: port.h:175
static const UnknownFieldSet * default_instance()
Definition: unknown_field_set.cc:66
TestSubObjConstructor T
Definition: TestTypedefs.idl:84
#define GOOGLE_PREDICT_FALSE(x)
Definition: port.h:216
Definition: __init__.py:1
#define GOOGLE_PREDICT_TRUE(x)
Definition: port.h:207
Definition: unknown_field_set.h:75
Definition: document.h:393
#define NULL
Definition: common_types.h:41
#define LIBPROTOBUF_EXPORT
Definition: port.h:97
Definition: gflags_completions.h:115
_W64 signed int intptr_t
Definition: stdint.h:160