diff --git a/src/core/codecs/qtextcodec.cpp b/src/core/codecs/qtextcodec.cpp index 0865e72d7..84461814d 100644 --- a/src/core/codecs/qtextcodec.cpp +++ b/src/core/codecs/qtextcodec.cpp @@ -1399,8 +1399,16 @@ Q_GLOBAL_STATIC(QTextCodecCleanup, qGlobalQTextCodec) /*! \internal */ -QTextCodec::QTextCodec() - : d_ptr(nullptr) +QTextCodec::QTextCodec(const QByteArray &codec) + : d_ptr(new QTextCodecPrivate(codec)) +{ +} + +/*! + \internal +*/ +QTextCodec::QTextCodec(const int codec) + : d_ptr(new QTextCodecPrivate(codec)) { } @@ -1447,8 +1455,7 @@ QTextCodec *QTextCodec::codecForName(const QByteArray &name) #ifndef QT_NO_THREAD QMutexLocker locker(textCodecsMutex()); #endif - QTextCodec* newcodec = new QTextCodec(); - newcodec->d_ptr = new QTextCodecPrivate(codec); + QTextCodec* newcodec = new QTextCodec(codec); qGlobalQTextCodec()->append(newcodec); return newcodec; } @@ -1481,8 +1488,7 @@ QTextCodec* QTextCodec::codecForMib(int mib) #ifndef QT_NO_THREAD QMutexLocker locker(textCodecsMutex()); #endif - QTextCodec* newcodec = new QTextCodec(); - newcodec->d_ptr = new QTextCodecPrivate(codec); + QTextCodec* newcodec = new QTextCodec(codec); qGlobalQTextCodec()->append(newcodec); return newcodec; } diff --git a/src/core/codecs/qtextcodec.h b/src/core/codecs/qtextcodec.h index a5ad73161..48406d4b1 100644 --- a/src/core/codecs/qtextcodec.h +++ b/src/core/codecs/qtextcodec.h @@ -114,12 +114,13 @@ public: private: Q_DISABLE_COPY(QTextCodec); - QTextCodec(); + QTextCodec(const QByteArray &codec); + QTextCodec(const int codec); ~QTextCodec(); friend class QTextCodecCleanup; - QTextCodecPrivate* d_ptr; + QTextCodecPrivate* const d_ptr; }; #endif // QT_NO_TEXTCODEC