diff --git a/src/google/protobuf/arena.h b/src/google/protobuf/arena.h index abce219e5d..ee41320288 100644 --- a/src/google/protobuf/arena.h +++ b/src/google/protobuf/arena.h @@ -552,7 +552,7 @@ class PROTOBUF_EXPORT PROTOBUF_ALIGNAS(8) Arena final { static_assert( InternalHelper::is_arena_constructable::value, "CreateMessage can only construct types that are ArenaConstructable"); - if (arena == nullptr) { + if (PROTOBUF_PREDICT_FALSE(arena == nullptr)) { return new T(nullptr, static_cast(args)...); } else { return arena->DoCreateMessage(static_cast(args)...); @@ -642,7 +642,7 @@ class PROTOBUF_EXPORT PROTOBUF_ALIGNAS(8) Arena final { CreateInArenaStorageInternal(ptr, arena, typename is_arena_constructable::type(), std::forward(args)...); - if (arena != nullptr) { + if (PROTOBUF_PREDICT_TRUE(arena != nullptr)) { RegisterDestructorInternal( ptr, arena, typename InternalHelper::is_destructor_skippable::type());