diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2012-08-24 09:42:44 +0200 |
---|---|---|
committer | hjk <qthjk@ovi.com> | 2012-08-24 09:46:25 +0200 |
commit | 5b69bee198099478af43411eac000000104cc8c4 (patch) | |
tree | 231ef3df11d291fc4c8450a8b9e4d618ce016e00 | |
parent | 2cd6db04bff363e3152d2b561fd6ead94cfe3ab0 (diff) |
Use QT_NO_CAST_FROM_ASCII for debugger plugin.
Fix gdmi escape routine by using a traits class to adapt
QByteArray/QString.
Change-Id: Ic6d2a0c927e4613aec9f69095bbb04a393e9edb9
Reviewed-by: hjk <qthjk@ovi.com>
-rw-r--r-- | src/plugins/debugger/debugger.pro | 2 | ||||
-rw-r--r-- | src/plugins/debugger/debuggeractions.cpp | 2 | ||||
-rw-r--r-- | src/plugins/debugger/debuggerplugin.cpp | 2 | ||||
-rw-r--r-- | src/plugins/debugger/gdb/coregdbadapter.cpp | 2 | ||||
-rw-r--r-- | src/plugins/debugger/gdb/gdbengine.cpp | 2 | ||||
-rw-r--r-- | src/plugins/debugger/gdb/gdbmi.cpp | 55 | ||||
-rw-r--r-- | src/plugins/debugger/lldb/lldbenginehost.cpp | 2 | ||||
-rw-r--r-- | src/plugins/debugger/loadcoredialog.cpp | 2 | ||||
-rw-r--r-- | src/plugins/debugger/namedemangler/namedemangler.cpp | 2 | ||||
-rw-r--r-- | src/plugins/debugger/namedemangler/parsetreenodes.cpp | 2 | ||||
-rw-r--r-- | src/plugins/debugger/pdb/pdbengine.cpp | 2 | ||||
-rw-r--r-- | src/plugins/debugger/qml/qmlinspectoradapter.cpp | 2 | ||||
-rw-r--r-- | src/plugins/debugger/qml/qmlinspectoragent.cpp | 2 | ||||
-rw-r--r-- | src/plugins/debugger/qml/qmllivetextpreview.cpp | 2 | ||||
-rw-r--r-- | src/plugins/debugger/qml/qmlv8debuggerclient.cpp | 2 | ||||
-rw-r--r-- | src/plugins/debugger/script/scriptengine.cpp | 2 | ||||
-rw-r--r-- | src/plugins/debugger/watchhandler.cpp | 2 |
17 files changed, 37 insertions, 50 deletions
diff --git a/src/plugins/debugger/debugger.pro b/src/plugins/debugger/debugger.pro index b836ec640e..246a491594 100644 --- a/src/plugins/debugger/debugger.pro +++ b/src/plugins/debugger/debugger.pro @@ -8,7 +8,7 @@ TARGET = Debugger include(../../qtcreatorplugin.pri) include(debugger_dependencies.pri) -DEFINES += DEBUGGER_LIBRARY +DEFINES += DEBUGGER_LIBRARY QT_NO_CAST_FROM_ASCII INCLUDEPATH += $$PWD/../../libs/utils diff --git a/src/plugins/debugger/debuggeractions.cpp b/src/plugins/debugger/debuggeractions.cpp index e5d9a21be2..580830a76e 100644 --- a/src/plugins/debugger/debuggeractions.cpp +++ b/src/plugins/debugger/debuggeractions.cpp @@ -28,8 +28,6 @@ ** **************************************************************************/ -#define QT_NO_CAST_FROM_ASCII - #include "debuggeractions.h" #include "debuggerconstants.h" diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 8ebcbde756..6c254b27a2 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -28,8 +28,6 @@ ** **************************************************************************/ -#define QT_NO_CAST_FROM_ASCII - #include "debuggerplugin.h" #include "debuggerstartparameters.h" diff --git a/src/plugins/debugger/gdb/coregdbadapter.cpp b/src/plugins/debugger/gdb/coregdbadapter.cpp index 0defb237fc..90f77262b8 100644 --- a/src/plugins/debugger/gdb/coregdbadapter.cpp +++ b/src/plugins/debugger/gdb/coregdbadapter.cpp @@ -28,8 +28,6 @@ ** **************************************************************************/ -#define QT_NO_CAST_FROM_ASCII - #include "coregdbadapter.h" #include "debuggerstartparameters.h" diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 46ac9ed4d0..d2e4e458fe 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -28,8 +28,6 @@ ** **************************************************************************/ -#define QT_NO_CAST_FROM_ASCII - #include "gdbengine.h" #include "debuggerstartparameters.h" diff --git a/src/plugins/debugger/gdb/gdbmi.cpp b/src/plugins/debugger/gdb/gdbmi.cpp index 40ad4693cf..42e06e5bff 100644 --- a/src/plugins/debugger/gdb/gdbmi.cpp +++ b/src/plugins/debugger/gdb/gdbmi.cpp @@ -246,9 +246,26 @@ void GdbMi::dumpChildren(QByteArray * str, bool multiline, int indent) const } } -class MyString : public QString { -public: - ushort at(int i) const { return constData()[i].unicode(); } +template <class String, typename CharType> +struct EscapeTraits +{ + static CharType at(const String &s, int i) + { return s.at(i); } + static void appendChar(CharType c, String *s) + { s->append(c); } + static void appendString(const char *c, String *s) + { s->append(c); } +}; + +template <> +struct EscapeTraits<QString, ushort> +{ + static ushort at(const QString &s, int i) + { return s.at(i).unicode(); } + static void appendChar(ushort c, QString *s) + { s->append(QLatin1Char(c)); } + static void appendString(const char *c, QString *s) + { s->append(QLatin1String(c)); } }; template<class ST, typename CT> @@ -257,25 +274,25 @@ inline ST escapeCStringTpl(const ST &ba) ST ret; ret.reserve(ba.length() * 2); for (int i = 0; i < ba.length(); ++i) { - CT c = ba.at(i); + const CT c = EscapeTraits<ST, CT>::at(ba, i); switch (c) { - case '\\': ret += "\\\\"; break; - case '\a': ret += "\\a"; break; - case '\b': ret += "\\b"; break; - case '\f': ret += "\\f"; break; - case '\n': ret += "\\n"; break; - case '\r': ret += "\\r"; break; - case '\t': ret += "\\t"; break; - case '\v': ret += "\\v"; break; - case '"': ret += "\\\""; break; + case '\\': EscapeTraits<ST, CT>::appendString("\\\\", &ret); break; + case '\a': EscapeTraits<ST, CT>::appendString("\\a", &ret); break; + case '\b': EscapeTraits<ST, CT>::appendString("\\b", &ret); break; + case '\f': EscapeTraits<ST, CT>::appendString("\\f", &ret); break; + case '\n': EscapeTraits<ST, CT>::appendString("\\n", &ret); break; + case '\r': EscapeTraits<ST, CT>::appendString("\\r", &ret); break; + case '\t': EscapeTraits<ST, CT>::appendString("\\t", &ret); break; + case '\v': EscapeTraits<ST, CT>::appendString("\\v", &ret); break; + case '"': EscapeTraits<ST, CT>::appendString("\\\"", &ret); break; default: if (c < 32 || c == 127) { - ret += '\\'; - ret += '0' + (c >> 6); - ret += '0' + ((c >> 3) & 7); - ret += '0' + (c & 7); + EscapeTraits<ST, CT>::appendChar('\\', &ret); + EscapeTraits<ST, CT>::appendChar('0' + (c >> 6), &ret); + EscapeTraits<ST, CT>::appendChar('0' + ((c >> 3) & 7), &ret); + EscapeTraits<ST, CT>::appendChar('0' + (c & 7), &ret); } else { - ret += c; + EscapeTraits<ST, CT>::appendChar(c, &ret); } } } @@ -284,7 +301,7 @@ inline ST escapeCStringTpl(const ST &ba) QString GdbMi::escapeCString(const QString &ba) { - return escapeCStringTpl<MyString, ushort>(static_cast<const MyString &>(ba)); + return escapeCStringTpl<QString, ushort>(ba); } QByteArray GdbMi::escapeCString(const QByteArray &ba) diff --git a/src/plugins/debugger/lldb/lldbenginehost.cpp b/src/plugins/debugger/lldb/lldbenginehost.cpp index 19c9481fa0..810ab62de8 100644 --- a/src/plugins/debugger/lldb/lldbenginehost.cpp +++ b/src/plugins/debugger/lldb/lldbenginehost.cpp @@ -28,8 +28,6 @@ ** **************************************************************************/ -#define QT_NO_CAST_FROM_ASCII - #include "lldbenginehost.h" #include "debuggerstartparameters.h" diff --git a/src/plugins/debugger/loadcoredialog.cpp b/src/plugins/debugger/loadcoredialog.cpp index 888d6361b7..374025cd07 100644 --- a/src/plugins/debugger/loadcoredialog.cpp +++ b/src/plugins/debugger/loadcoredialog.cpp @@ -28,8 +28,6 @@ ** **************************************************************************/ -#define QT_NO_CAST_FROM_ASCII - #include "loadcoredialog.h" #include "debuggerconstants.h" diff --git a/src/plugins/debugger/namedemangler/namedemangler.cpp b/src/plugins/debugger/namedemangler/namedemangler.cpp index b79490dc0b..741c7bb4f6 100644 --- a/src/plugins/debugger/namedemangler/namedemangler.cpp +++ b/src/plugins/debugger/namedemangler/namedemangler.cpp @@ -28,8 +28,6 @@ ** **************************************************************************/ -#define QT_NO_CAST_FROM_ASCII - #include "namedemangler.h" #include "demanglerexceptions.h" diff --git a/src/plugins/debugger/namedemangler/parsetreenodes.cpp b/src/plugins/debugger/namedemangler/parsetreenodes.cpp index e423152b23..a6760874f5 100644 --- a/src/plugins/debugger/namedemangler/parsetreenodes.cpp +++ b/src/plugins/debugger/namedemangler/parsetreenodes.cpp @@ -28,8 +28,6 @@ ** **************************************************************************/ -#define QT_NO_CAST_FROM_ASCII - #include "parsetreenodes.h" #include "demanglerexceptions.h" diff --git a/src/plugins/debugger/pdb/pdbengine.cpp b/src/plugins/debugger/pdb/pdbengine.cpp index 54672ad280..e8235dc716 100644 --- a/src/plugins/debugger/pdb/pdbengine.cpp +++ b/src/plugins/debugger/pdb/pdbengine.cpp @@ -28,8 +28,6 @@ ** **************************************************************************/ -#define QT_NO_CAST_FROM_ASCII - #include "pdbengine.h" #include "debuggerstartparameters.h" diff --git a/src/plugins/debugger/qml/qmlinspectoradapter.cpp b/src/plugins/debugger/qml/qmlinspectoradapter.cpp index 77d24710cd..9528a1d5af 100644 --- a/src/plugins/debugger/qml/qmlinspectoradapter.cpp +++ b/src/plugins/debugger/qml/qmlinspectoradapter.cpp @@ -28,8 +28,6 @@ ** **************************************************************************/ -#define QT_NO_CAST_FROM_ASCII - #include "qmlinspectoradapter.h" #include "debuggeractions.h" diff --git a/src/plugins/debugger/qml/qmlinspectoragent.cpp b/src/plugins/debugger/qml/qmlinspectoragent.cpp index ab7f926f5c..c6fe7cb375 100644 --- a/src/plugins/debugger/qml/qmlinspectoragent.cpp +++ b/src/plugins/debugger/qml/qmlinspectoragent.cpp @@ -28,8 +28,6 @@ ** **************************************************************************/ -#define QT_NO_CAST_FROM_ASCII - #include "qmlinspectoragent.h" #include "debuggeractions.h" diff --git a/src/plugins/debugger/qml/qmllivetextpreview.cpp b/src/plugins/debugger/qml/qmllivetextpreview.cpp index 05e8ac4938..55c0032ff6 100644 --- a/src/plugins/debugger/qml/qmllivetextpreview.cpp +++ b/src/plugins/debugger/qml/qmllivetextpreview.cpp @@ -28,8 +28,6 @@ ** **************************************************************************/ -#define QT_NO_CAST_FROM_ASCII - #include "qmllivetextpreview.h" #include "qmlinspectoradapter.h" diff --git a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp index ed9ac64c57..fd91502654 100644 --- a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp +++ b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp @@ -28,8 +28,6 @@ ** **************************************************************************/ -#define QT_NO_CAST_FROM_ASCII - #include "qmlv8debuggerclient.h" #include "qmlv8debuggerclientconstants.h" #include "debuggerstringutils.h" diff --git a/src/plugins/debugger/script/scriptengine.cpp b/src/plugins/debugger/script/scriptengine.cpp index 2d6b9d5da3..5cc7e701af 100644 --- a/src/plugins/debugger/script/scriptengine.cpp +++ b/src/plugins/debugger/script/scriptengine.cpp @@ -28,8 +28,6 @@ ** **************************************************************************/ -#define QT_NO_CAST_FROM_ASCII - #include "scriptengine.h" #include "debuggerstartparameters.h" diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index 4d57dc478b..fb1cdf29d7 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -28,8 +28,6 @@ ** **************************************************************************/ -#define QT_NO_CAST_FROM_ASCII - #include "watchhandler.h" #include "breakhandler.h" |