aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2012-08-24 09:42:44 +0200
committerhjk <qthjk@ovi.com>2012-08-24 09:46:25 +0200
commit5b69bee198099478af43411eac000000104cc8c4 (patch)
tree231ef3df11d291fc4c8450a8b9e4d618ce016e00
parent2cd6db04bff363e3152d2b561fd6ead94cfe3ab0 (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.pro2
-rw-r--r--src/plugins/debugger/debuggeractions.cpp2
-rw-r--r--src/plugins/debugger/debuggerplugin.cpp2
-rw-r--r--src/plugins/debugger/gdb/coregdbadapter.cpp2
-rw-r--r--src/plugins/debugger/gdb/gdbengine.cpp2
-rw-r--r--src/plugins/debugger/gdb/gdbmi.cpp55
-rw-r--r--src/plugins/debugger/lldb/lldbenginehost.cpp2
-rw-r--r--src/plugins/debugger/loadcoredialog.cpp2
-rw-r--r--src/plugins/debugger/namedemangler/namedemangler.cpp2
-rw-r--r--src/plugins/debugger/namedemangler/parsetreenodes.cpp2
-rw-r--r--src/plugins/debugger/pdb/pdbengine.cpp2
-rw-r--r--src/plugins/debugger/qml/qmlinspectoradapter.cpp2
-rw-r--r--src/plugins/debugger/qml/qmlinspectoragent.cpp2
-rw-r--r--src/plugins/debugger/qml/qmllivetextpreview.cpp2
-rw-r--r--src/plugins/debugger/qml/qmlv8debuggerclient.cpp2
-rw-r--r--src/plugins/debugger/script/scriptengine.cpp2
-rw-r--r--src/plugins/debugger/watchhandler.cpp2
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"