diff --git a/src/google/protobuf/generated_message_reflection.cc b/src/google/protobuf/generated_message_reflection.cc index 9cea6662aa..6e13104afd 100644 --- a/src/google/protobuf/generated_message_reflection.cc +++ b/src/google/protobuf/generated_message_reflection.cc @@ -1492,16 +1492,7 @@ void Reflection::ClearField(Message* message, } case FieldDescriptor::CPPTYPE_MESSAGE: - if (schema_.HasBitIndex(field) == static_cast(-1)) { - // Proto3 does not have has-bits and we need to set a message field - // to nullptr in order to indicate its un-presence. - if (message->GetArena() == nullptr) { - delete *MutableRaw(message, field); - } - *MutableRaw(message, field) = nullptr; - } else { - (*MutableRaw(message, field))->Clear(); - } + (*MutableRaw(message, field))->Clear(); break; } }