From 124cc3c0dfe18c2e5027a0eee430ac03b48807c0 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Tue, 1 Mar 2011 14:10:08 +0100 Subject: Wrap qPrintable inside QString QString() is a no-op if string is already a QString And it fixes the compilation if other types are use that do not have toLocal8Bit such as QStringBuilder. WebKit trunk has an instance of such usage. Reviewed-by: Joao --- src/corelib/global/qglobal.h | 2 +- tests/auto/qstringbuilder1/stringbuilder.cpp | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h index 67ccf4d..2ddb91d 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h @@ -1667,7 +1667,7 @@ inline void qUnused(T &x) { (void)x; } #endif #ifndef qPrintable -# define qPrintable(string) (string).toLocal8Bit().constData() +# define qPrintable(string) QString(string).toLocal8Bit().constData() #endif Q_CORE_EXPORT void qDebug(const char *, ...) /* print debug message */ diff --git a/tests/auto/qstringbuilder1/stringbuilder.cpp b/tests/auto/qstringbuilder1/stringbuilder.cpp index b4f6334..1ea7347 100644 --- a/tests/auto/qstringbuilder1/stringbuilder.cpp +++ b/tests/auto/qstringbuilder1/stringbuilder.cpp @@ -110,4 +110,6 @@ void runScenario() r = string P ba; QCOMPARE(r, r2); #endif + + QCOMPARE(QByteArray(qPrintable(string P string)), QByteArray(string.toLatin1() + string.toLatin1())); } -- cgit v0.12