Merge pull request #64 from collin80/master

Merge master into WIP
This commit is contained in:
Collin Kidder
2016-08-09 09:20:34 -04:00
committed by GitHub
4 changed files with 28 additions and 9 deletions
+19 -6
View File
@@ -34,8 +34,21 @@ int CANFrameModel::columnCount(const QModelIndex &index) const
CANFrameModel::CANFrameModel(QObject *parent) CANFrameModel::CANFrameModel(QObject *parent)
: QAbstractTableModel(parent) : QAbstractTableModel(parent)
{ {
frames.reserve(50000000); //yes, preallocating a huge number of frames.
filteredFrames.reserve(50000000); //the goal is to prevent a reallocation from ever happening if (QSysInfo::WordSize > 32)
{
qDebug() << "64 bit OS detected. Requesting a large preallocation";
preallocSize = 50000000;
}
else //if compiling for 32 bit you can't ask for gigabytes of preallocation so tone it down.
{
qDebug() << "32 bit OS detected. Requesting a much restricted prealloc";
preallocSize = 5000000;
}
frames.reserve(preallocSize);
filteredFrames.reserve(preallocSize); //the goal is to prevent a reallocation from ever happening
dbcHandler = NULL; dbcHandler = NULL;
interpretFrames = false; interpretFrames = false;
overwriteDups = false; overwriteDups = false;
@@ -159,7 +172,7 @@ void CANFrameModel::recalcOverwrite()
while (frames.count() > lastUnique) frames.removeLast(); while (frames.count() > lastUnique) frames.removeLast();
filteredFrames.clear(); filteredFrames.clear();
filteredFrames.reserve(50000000); filteredFrames.reserve(preallocSize);
for (int i = 0; i < frames.count(); i++) for (int i = 0; i < frames.count(); i++)
{ {
@@ -360,7 +373,7 @@ void CANFrameModel::sendRefresh()
beginResetModel(); beginResetModel();
filteredFrames.clear(); filteredFrames.clear();
filteredFrames.append(tempContainer); filteredFrames.append(tempContainer);
filteredFrames.reserve(50000000); filteredFrames.reserve(preallocSize);
lastUpdateNumFrames = filteredFrames.count(); lastUpdateNumFrames = filteredFrames.count();
endResetModel(); endResetModel();
mutex.unlock(); mutex.unlock();
@@ -416,8 +429,8 @@ void CANFrameModel::clearFrames()
frames.clear(); frames.clear();
filteredFrames.clear(); filteredFrames.clear();
filters.clear(); filters.clear();
frames.reserve(50000000); frames.reserve(preallocSize);
filteredFrames.reserve(50000000); filteredFrames.reserve(preallocSize);
this->endResetModel(); this->endResetModel();
lastUpdateNumFrames = 0; lastUpdateNumFrames = 0;
mutex.unlock(); mutex.unlock();
+1
View File
@@ -62,6 +62,7 @@ private:
bool needFilterRefresh; bool needFilterRefresh;
uint64_t timeOffset; uint64_t timeOffset;
int lastUpdateNumFrames; int lastUpdateNumFrames;
uint32_t preallocSize;
}; };
+5
View File
@@ -8,6 +8,7 @@ DeltaModel::DeltaModel(QObject *parent)
QVariant DeltaModel::headerData(int section, Qt::Orientation orientation, int role) const QVariant DeltaModel::headerData(int section, Qt::Orientation orientation, int role) const
{ {
// FIXME: Implement me! // FIXME: Implement me!
return QVariant();
} }
int DeltaModel::rowCount(const QModelIndex &parent) const int DeltaModel::rowCount(const QModelIndex &parent) const
@@ -15,6 +16,8 @@ int DeltaModel::rowCount(const QModelIndex &parent) const
if (!parent.isValid()) if (!parent.isValid())
return 0; return 0;
return 0;
// FIXME: Implement me! // FIXME: Implement me!
} }
@@ -23,6 +26,8 @@ int DeltaModel::columnCount(const QModelIndex &parent) const
if (!parent.isValid()) if (!parent.isValid())
return 0; return 0;
return 0;
// FIXME: Implement me! // FIXME: Implement me!
} }
+3 -3
View File
@@ -837,7 +837,7 @@ void GraphingWindow::loadDefinitions()
for (int b = 0; b < 8; b++) for (int b = 0; b < 8; b++)
{ {
if (oldMask & (1 << b)) if (oldMask & (1ull << b))
{ {
gp.startBit = (8 * oldEnd) + b; gp.startBit = (8 * oldEnd) + b;
break; break;
@@ -846,7 +846,7 @@ void GraphingWindow::loadDefinitions()
for (int c = 7; c >= 0; c--) for (int c = 7; c >= 0; c--)
{ {
if ( oldMask & (1<<(((numBytes - 1) * 8) + c)) ) if ( oldMask & (1ull << (((numBytes - 1) * 8) + c)) )
{ {
gp.numBits -= (7-c); gp.numBits -= (7-c);
break; break;
@@ -865,7 +865,7 @@ void GraphingWindow::loadDefinitions()
gp.numBits = 8; gp.numBits = 8;
for (int b = 0; b < 8; b++) for (int b = 0; b < 8; b++)
{ {
if (oldMask & (1 << b)) if (oldMask & (1ull << b))
{ {
gp.startBit = 8 * oldStart + b; gp.startBit = 8 * oldStart + b;
gp.numBits = 8 - b; gp.numBits = 8 - b;