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) void DataPrinter::toClipboard(DataPrinter::DumpType type, IDataPrintable * printable)
{ {
QByteArray printData = printable->printableData(); const QByteArray printData = printable->printableData();
QString clipboard_text; QString clipboard_text;
@ -40,7 +40,7 @@ void DataPrinter::toClipboard(DataPrinter::DumpType type, IDataPrintable * print
break; break;
case DP_HexStream: case DP_HexStream:
for (int i = 0; i < printData.length(); i++) 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; break;
case DP_EscapedString: case DP_EscapedString:
// Beginning quote // Beginning quote
@ -54,7 +54,7 @@ void DataPrinter::toClipboard(DataPrinter::DumpType type, IDataPrintable * print
if (i % 16 == 0 && i != 0 && i != printData.length() - 1) { if (i % 16 == 0 && i != 0 && i != printData.length() - 1) {
clipboard_text += QString("\" \\\n\""); 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 // End quote
clipboard_text += QString("\"\n"); 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()) { if (!printData.isEmpty()) {
QMimeData *mime_data = new QMimeData; QMimeData *mime_data = new QMimeData;
@ -110,7 +110,7 @@ int DataPrinter::hexChars()
return (row_width * chars_per_byte) + ((row_width - 1) / separatorInterval()); 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; QString clipboard_text;

View File

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

View File

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

View File

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

View File

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

View File

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