Skip to content

Commit

Permalink
Fix endian calls
Browse files Browse the repository at this point in the history
  • Loading branch information
DonLakeFlyer committed Jul 26, 2015
1 parent c08574b commit 7c5688a
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions src/comm/LogReplayLink.cc
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include "LinkManager.h"

#include <QFileInfo>
#include <QtEndian>

const char* LogReplayLinkConfiguration::_logFilenameKey = "logFilename";

Expand Down Expand Up @@ -163,13 +164,13 @@ void LogReplayLink::writeBytes(const char* bytes, qint64 cBytes)
/// @return A Unix timestamp in microseconds UTC for found message or 0 if parsing failed
quint64 LogReplayLink::_parseTimestamp(const QByteArray& bytes)
{
quint64 timestamp = qFromBigEndian<quint64>(*((quint64*)(bytes.constData())));
quint64 timestamp = qFromBigEndian(*((quint64*)(bytes.constData())));
quint64 currentTimestamp = ((quint64)QDateTime::currentMSecsSinceEpoch()) * 1000;

// Now if the parsed timestamp is in the future, it must be an old file where the timestamp was stored as
// little endian, so switch it.
if (timestamp > currentTimestamp) {
timestamp = qbswap<quint64>(timestamp);
timestamp = qbswap(timestamp);
}

return timestamp;
Expand Down

0 comments on commit 7c5688a

Please sign in to comment.