Fix allocating potential far too much memory in the debugger.

Beware of negative sizes.
This commit is contained in:
dt
2009-08-28 17:19:42 +02:00
parent 75ade29466
commit 8a3e02a9e4

View File

@@ -709,8 +709,9 @@ int CdbSymbolGroupContext::dumpQString(CIDebugDataSpaces *ds, WatchData *wd)
if (truncated)
size = maxLength;
const QChar doubleQuote = QLatin1Char('"');
QString value(doubleQuote);
if (size) {
QString value;
if (size > 0) {
value += doubleQuote;
// Should this ever be a remote debugger, need to check byte order.
unsigned short *buf = new unsigned short[size + 1];
unsigned long bytesRead;
@@ -724,8 +725,13 @@ int CdbSymbolGroupContext::dumpQString(CIDebugDataSpaces *ds, WatchData *wd)
delete [] buf;
if (truncated)
value += QLatin1String("...");
}
value += doubleQuote;
} else if (size == 0) {
value = QString(doubleQuote) + doubleQuote;
} else {
value = "Invalid QString";
}
wd->setValue(value);
wd->setHasChildren(false);
return 0;