Qt: Fix DataPrinter hex conversions.

Add casts so that we call the unsigned version of QString::arg. We
aren't modifying the byte array and want to avoid deep copies so
constify it.

Change-Id: I2dcdeeab87bb0f810ffd4d36d41d1e47256d487e
Reviewed-on: https://code.wireshark.org/review/24901
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Michael Mann <mmann78@netscape.net>
This commit is contained in:
Gerald Combs 2017-12-19 14:53:51 -08:00 committed by Michael Mann
parent 6ff295af01
commit 6d38bc00db
6 changed files with 12 additions and 12 deletions

View File

@ -25,7 +25,7 @@ DataPrinter::DataPrinter(QObject * parent)
void DataPrinter::toClipboard(DataPrinter::DumpType type, IDataPrintable * printable)
{
QByteArray printData = printable->printableData();
const QByteArray printData = printable->printableData();
QString clipboard_text;
@ -40,7 +40,7 @@ void DataPrinter::toClipboard(DataPrinter::DumpType type, IDataPrintable * print
break;
case DP_HexStream:
for (int i = 0; i < printData.length(); i++)
clipboard_text += QString("%1").arg(printData[i], 2, 16, QChar('0'));
clipboard_text += QString("%1").arg((uint8_t) printData[i], 2, 16, QChar('0'));
break;
case DP_EscapedString:
// Beginning quote
@ -54,7 +54,7 @@ void DataPrinter::toClipboard(DataPrinter::DumpType type, IDataPrintable * print
if (i % 16 == 0 && i != 0 && i != printData.length() - 1) {
clipboard_text += QString("\" \\\n\"");
}
clipboard_text += QString("\\x%1").arg(printData[i], 2, 16, QChar('0'));
clipboard_text += QString("\\x%1").arg((uint8_t) printData[i], 2, 16, QChar('0'));
}
// End quote
clipboard_text += QString("\"\n");
@ -77,7 +77,7 @@ void DataPrinter::toClipboard(DataPrinter::DumpType type, IDataPrintable * print
}
}
void DataPrinter::binaryDump(QByteArray printData)
void DataPrinter::binaryDump(const QByteArray printData)
{
if (!printData.isEmpty()) {
QMimeData *mime_data = new QMimeData;
@ -110,7 +110,7 @@ int DataPrinter::hexChars()
return (row_width * chars_per_byte) + ((row_width - 1) / separatorInterval());
}
QString DataPrinter::hexTextDump(QByteArray printData, bool showText)
QString DataPrinter::hexTextDump(const QByteArray printData, bool showText)
{
QString clipboard_text;

View File

@ -23,7 +23,7 @@ class IDataPrintable
public:
virtual ~IDataPrintable() {}
virtual QByteArray printableData() = 0;
virtual const QByteArray printableData() = 0;
};
class DataPrinter : public QObject
@ -51,8 +51,8 @@ public:
static int hexChars();
private:
QString hexTextDump(QByteArray printData, bool append_text);
void binaryDump(QByteArray printData);
QString hexTextDump(const QByteArray printData, bool append_text);
void binaryDump(const QByteArray printData);
int byteLineLength_;
};

View File

@ -174,7 +174,7 @@ FieldInformation::Position FieldInformation::appendix() const
return pos;
}
QByteArray FieldInformation::printableData()
const QByteArray FieldInformation::printableData()
{
QByteArray data;

View File

@ -61,7 +61,7 @@ public:
const QString moduleName();
QString url();
QByteArray printableData();
const QByteArray printableData();
private:

View File

@ -96,7 +96,7 @@ int FrameInformation::frameNum() const
return fi_->num;
}
QByteArray FrameInformation::printableData()
const QByteArray FrameInformation::printableData()
{
QByteArray data;

View File

@ -51,7 +51,7 @@ public:
frame_data * frameData() const;
int frameNum() const;
QByteArray printableData();
const QByteArray printableData();
private: