Deduplicate preserveUnknownFields variable

Remove the duplicated preserveUnknownFields variable in
QProtobufSerializerImpl, use the parent pointer to acquire its
value instead.

Pick-to: 6.8 6.9
Task-number: QTBUG-128812
Change-Id: I8c81e5ea6565f056756703d5ca989b67d163dd19
Reviewed-by: Dennis Oberst <dennis.oberst@qt.io>
This commit is contained in:
Alexey Edelev 2024-10-21 11:51:00 +02:00
parent 4018090d1e
commit 0ef57fd3ad
2 changed files with 9 additions and 5 deletions

View File

@ -172,6 +172,11 @@ findIntegratedTypeHandler(QMetaType metaType, bool nonPacked)
} }
} // namespace } // namespace
QProtobufSerializerImpl::QProtobufSerializerImpl(QProtobufSerializerPrivate *parent) : m_parent(parent)
{
}
QProtobufSerializerImpl::~QProtobufSerializerImpl() = default; QProtobufSerializerImpl::~QProtobufSerializerImpl() = default;
void QProtobufSerializerImpl::reset() void QProtobufSerializerImpl::reset()
@ -182,7 +187,7 @@ void QProtobufSerializerImpl::reset()
void QProtobufSerializerImpl::serializeUnknownFields(const QProtobufMessage *message) void QProtobufSerializerImpl::serializeUnknownFields(const QProtobufMessage *message)
{ {
if (preserveUnknownFields) { if (m_parent->preserveUnknownFields) {
// Restore any unknown fields we have stored away: // Restore any unknown fields we have stored away:
for (const auto &fields : for (const auto &fields :
std::as_const(QProtobufMessagePrivate::get(message)->unknownEntries)) { std::as_const(QProtobufMessagePrivate::get(message)->unknownEntries)) {
@ -498,7 +503,7 @@ bool QProtobufDeserializerImpl::decodeHeader(QProtobufSelfcheckIterator &it, int
|| wireType == QtProtobuf::WireTypes::LengthDelimited); || wireType == QtProtobuf::WireTypes::LengthDelimited);
} }
QProtobufSerializerPrivate::QProtobufSerializerPrivate() : deserializer(this) QProtobufSerializerPrivate::QProtobufSerializerPrivate() : serializer(this), deserializer(this)
{ {
} }
@ -566,7 +571,6 @@ QString QProtobufSerializer::lastErrorString() const
*/ */
void QProtobufSerializer::shouldPreserveUnknownFields(bool preserveUnknownFields) void QProtobufSerializer::shouldPreserveUnknownFields(bool preserveUnknownFields)
{ {
d_ptr->serializer.preserveUnknownFields = preserveUnknownFields;
d_ptr->preserveUnknownFields = preserveUnknownFields; d_ptr->preserveUnknownFields = preserveUnknownFields;
} }

View File

@ -39,7 +39,7 @@ QT_BEGIN_NAMESPACE
class QProtobufSerializerImpl final : public QProtobufSerializerBase class QProtobufSerializerImpl final : public QProtobufSerializerBase
{ {
public: public:
QProtobufSerializerImpl() = default; explicit QProtobufSerializerImpl(QProtobufSerializerPrivate *parent);
~QProtobufSerializerImpl(); ~QProtobufSerializerImpl();
const QByteArray &result() const { return m_result; } const QByteArray &result() const { return m_result; }
@ -47,7 +47,7 @@ public:
void reset(); void reset();
void serializeUnknownFields(const QProtobufMessage *message); void serializeUnknownFields(const QProtobufMessage *message);
bool preserveUnknownFields = true; QProtobufSerializerPrivate *m_parent = nullptr;
private: private:
bool serializeEnum(QVariant &value, bool serializeEnum(QVariant &value,