Don't use QList if sizeof(item) > void*.

QList is optimized for storing pointer-sized items, thus
a QVector is the better choice for everything else.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Tomaz Canabrava 2013-12-24 10:18:56 -02:00 committed by Dirk Hohndel
parent 5e446fd258
commit 1a933e7e19
4 changed files with 10 additions and 9 deletions

View file

@ -1323,9 +1323,9 @@ DivePlannerPointsModel::Mode DivePlannerPointsModel::currentMode() const
return mode;
}
QList<QPair<int, int> > DivePlannerPointsModel::collectGases(struct dive *d)
QVector<QPair<int, int> > DivePlannerPointsModel::collectGases(struct dive *d)
{
QList<QPair<int, int> > l;
QVector<QPair<int, int> > l;
for (int i = 0; i < MAX_CYLINDERS; i++) {
cylinder_t *cyl = &d->cylinder[i];
if (!cylinder_nodata(cyl))
@ -1357,10 +1357,10 @@ void DivePlannerPointsModel::tanksUpdated()
// "did a gas change on us". So we look through the diveplan to
// see if there is a gas that is now missing and if there is, we
// replace it with the matching new gas.
QList<QPair<int,int> > gases = collectGases(stagingDive);
if (gases.length() == oldGases.length()) {
QVector<QPair<int,int> > gases = collectGases(stagingDive);
if (gases.count() == oldGases.count()) {
// either nothing relevant changed, or exactly ONE gasmix changed
for (int i = 0; i < gases.length(); i++) {
for (int i = 0; i < gases.count(); i++) {
if (gases.at(i) != oldGases.at(i)) {
if (oldGases.count(oldGases.at(i)) > 1) {
// we had this gas more than once, so don't

View file

@ -43,7 +43,7 @@ public:
int size();
struct diveplan getDiveplan();
QStringList &getGasList();
QList<QPair<int, int> > collectGases(dive *d);
QVector<QPair<int, int> > collectGases(dive *d);
public slots:
int addStop(int millimeters = 0, int seconds = 0, int o2 = 0, int he = 0, int ccpoint = 0 );
@ -76,7 +76,7 @@ private:
void deleteTemporaryPlan(struct divedatapoint *dp);
QVector<sample> backupSamples; // For editing added dives.
struct dive *stagingDive;
QList<QPair<int, int> > oldGases;
QVector<QPair<int, int> > oldGases;
};
class Button : public QObject, public QGraphicsRectItem {

View file

@ -4,6 +4,7 @@
#include <QObject>
#include <QPrinter>
#include <QList>
#include <QVector>
class QTableView;
class PrintDialog;
@ -27,7 +28,7 @@ private:
qreal scaleX, scaleY;
QRect pageRect;
QList<QString> tablePrintColumnNames;
QVector<QString> tablePrintColumnNames;
unsigned int tablePrintHeadingBackground;
QList<unsigned int> tablePrintColumnWidths;
unsigned int profilePrintTableMaxH;

View file

@ -45,7 +45,7 @@ public slots:
private:
typedef QPair<QGraphicsPixmapItem*, QGraphicsSimpleTextItem*> ToolTip;
QList<ToolTip> toolTips;
QVector<ToolTip> toolTips;
QGraphicsPathItem *background;
QGraphicsLineItem *separator;
QGraphicsSimpleTextItem *title;