diff -r b72c6db6890b -r 5dc02b23752f src/corelib/tools/qstring.h --- a/src/corelib/tools/qstring.h Wed Jun 23 19:07:03 2010 +0300 +++ b/src/corelib/tools/qstring.h Tue Jul 06 15:10:48 2010 +0300 @@ -73,6 +73,16 @@ #error qstring.h must be included before any header file that defines truncate #endif +#if defined(Q_CC_GNU) && (__GNUC__ == 4 && __GNUC_MINOR__ == 0) +//There is a bug in GCC 4.0 that tries to instantiate template of annonymous enum +# ifdef QT_USE_FAST_OPERATOR_PLUS +# undef QT_USE_FAST_OPERATOR_PLUS +# endif +# ifdef QT_USE_FAST_CONCATENATION +# undef QT_USE_FAST_CONCATENATION +# endif +#endif + QT_BEGIN_HEADER QT_BEGIN_NAMESPACE @@ -91,7 +101,10 @@ { public: inline QString(); - QString(const QChar *unicode, int size); + QString(const QChar *unicode, int size); // Qt5: don't cap size < 0 +#ifdef QT_QCHAR_CONSTRUCTOR + explicit QString(const QChar *unicode); // Qt5: merge with the above +#endif QString(QChar c); QString(int size, QChar c); inline QString(const QLatin1String &latin1); @@ -122,6 +135,7 @@ inline void detach(); inline bool isDetached() const; + inline bool isSharedWith(const QString &other) const { return d == other.d; } void clear(); inline const QChar at(int i) const; @@ -331,6 +345,7 @@ int toWCharArray(wchar_t *array) const; static QString fromWCharArray(const wchar_t *, int size = -1); + QString &setRawData(const QChar *unicode, int size); QString &setUnicode(const QChar *unicode, int size); inline QString &setUtf16(const ushort *utf16, int size); @@ -594,7 +609,7 @@ struct Data { QBasicAtomicInt ref; int alloc, size; - ushort *data; + ushort *data; // QT5: put that after the bit field to fill alignment gap; don't use sizeof any more then ushort clean : 1; ushort simpletext : 1; ushort righttoleft : 1; @@ -1084,12 +1099,6 @@ Q_DECLARE_SHARED(QString) Q_DECLARE_OPERATORS_FOR_FLAGS(QString::SectionFlags) -#if defined(Q_OS_WIN32) || defined(Q_OS_WINCE) -extern Q_CORE_EXPORT QByteArray qt_winQString2MB(const QString& s, int len=-1); -extern Q_CORE_EXPORT QByteArray qt_winQString2MB(const QChar *ch, int len); -extern Q_CORE_EXPORT QString qt_winMB2QString(const char* mb, int len=-1); -#endif - class Q_CORE_EXPORT QStringRef { const QString *m_string;