Internal change

PiperOrigin-RevId: 521532900
pull/12399/head
Protobuf Team Bot 2 years ago committed by Copybara-Service
parent ef299f7af4
commit 084d9702d6
  1. 13
      src/google/protobuf/arena.h

@ -246,7 +246,7 @@ class PROTOBUF_EXPORT PROTOBUF_ALIGNAS(8) Arena final {
template <typename T, typename... Args>
PROTOBUF_ALWAYS_INLINE static T* CreateMessage(Arena* arena, Args&&... args) {
static_assert(
InternalHelper<T>::is_arena_constructable::value,
is_arena_constructable<T>::value,
"CreateMessage can only construct types that are ArenaConstructable");
// We must delegate to CreateMaybeMessage() and NOT CreateMessageInternal()
// because protobuf generated classes specialize CreateMaybeMessage() and we
@ -539,7 +539,7 @@ class PROTOBUF_EXPORT PROTOBUF_ALIGNAS(8) Arena final {
PROTOBUF_NDEBUG_INLINE static T* CreateMessageInternal(Arena* arena,
Args&&... args) {
static_assert(
InternalHelper<T>::is_arena_constructable::value,
is_arena_constructable<T>::value,
"CreateMessage can only construct types that are ArenaConstructable");
if (PROTOBUF_PREDICT_FALSE(arena == nullptr)) {
return new T(nullptr, static_cast<Args&&>(args)...);
@ -554,7 +554,7 @@ class PROTOBUF_EXPORT PROTOBUF_ALIGNAS(8) Arena final {
template <typename T>
PROTOBUF_NDEBUG_INLINE static T* CreateMessageInternal(Arena* arena) {
static_assert(
InternalHelper<T>::is_arena_constructable::value,
is_arena_constructable<T>::value,
"CreateMessage can only construct types that are ArenaConstructable");
if (PROTOBUF_PREDICT_FALSE(arena == nullptr)) {
// Generated arena constructor T(Arena*) is protected. Call via
@ -613,13 +613,10 @@ class PROTOBUF_EXPORT PROTOBUF_ALIGNAS(8) Arena final {
// which needs to declare Map as friend of generated message.
template <typename T, typename... Args>
static void CreateInArenaStorage(T* ptr, Arena* arena, Args&&... args) {
CreateInArenaStorageInternal(ptr, arena,
typename is_arena_constructable<T>::type(),
CreateInArenaStorageInternal(ptr, arena, is_arena_constructable<T>(),
std::forward<Args>(args)...);
if (PROTOBUF_PREDICT_TRUE(arena != nullptr)) {
RegisterDestructorInternal(
ptr, arena,
typename InternalHelper<T>::is_destructor_skippable::type());
RegisterDestructorInternal(ptr, arena, is_destructor_skippable<T>());
}
}

Loading…
Cancel
Save