diff --git a/dive.h b/dive.h index 6ad21aa1f..b27eff218 100644 --- a/dive.h +++ b/dive.h @@ -436,7 +436,7 @@ static inline struct dive *get_dive_by_uemis_diveid(uint32_t diveid, uint32_t de return NULL; } -static inline struct dive *getDiveById(int id) +static inline struct dive *get_dive_by_diveid(int id) { int i; struct dive *dive = NULL; @@ -445,6 +445,12 @@ static inline struct dive *getDiveById(int id) if (dive->id == id) break; } +#ifdef DEBUG + if(dive == NULL){ + fprintf(stderr, "Invalid id %x passed to get_dive_by_diveid, try to fix the code\n", id); + exit(1); + } +#endif return dive; } diff --git a/qt-ui/models.cpp b/qt-ui/models.cpp index 43f08e106..c04b973e5 100644 --- a/qt-ui/models.cpp +++ b/qt-ui/models.cpp @@ -1056,7 +1056,7 @@ static int nitrox_sort_value(struct dive *dive) QVariant DiveItem::data(int column, int role) const { QVariant retVal; - struct dive *dive = getDiveById(diveId); + struct dive *dive = get_dive_by_diveid(diveId); switch (role) { case Qt::TextAlignmentRole: @@ -1203,8 +1203,7 @@ bool DiveItem::setData(const QModelIndex &index, const QVariant &value, int role if (d->number == v) return false; } - d = getDiveById(diveId); - Q_ASSERT(d != NULL); + d = get_dive_by_diveid(diveId); d->number = value.toInt(); mark_divelist_changed(true); return true; @@ -1212,8 +1211,7 @@ bool DiveItem::setData(const QModelIndex &index, const QVariant &value, int role QString DiveItem::displayDate() const { - struct dive *dive = getDiveById(diveId); - Q_ASSERT(dive != NULL); + struct dive *dive = get_dive_by_diveid(diveId); return get_dive_date_string(dive->when); } @@ -1221,8 +1219,7 @@ QString DiveItem::displayDepth() const { QString fract, str; const int scale = 1000; - struct dive *dive = getDiveById(diveId); - Q_ASSERT(dive != NULL); + struct dive *dive = get_dive_by_diveid(diveId); if (get_units()->length == units::METERS) { fract = QString::number((unsigned)(dive->maxdepth.mm % scale) / 100); str = QString("%1.%2").arg((unsigned)(dive->maxdepth.mm / scale)).arg(fract, 1, QChar('0')); @@ -1236,8 +1233,7 @@ QString DiveItem::displayDepth() const QString DiveItem::displayDuration() const { int hrs, mins, secs; - struct dive *dive = getDiveById(diveId); - Q_ASSERT(dive != NULL); + struct dive *dive = get_dive_by_diveid(diveId); secs = dive->duration.seconds % 60; mins = dive->duration.seconds / 60; hrs = mins / 60; @@ -1255,8 +1251,7 @@ QString DiveItem::displayDuration() const QString DiveItem::displayTemperature() const { QString str; - struct dive *dive = getDiveById(diveId); - Q_ASSERT(dive != NULL); + struct dive *dive = get_dive_by_diveid(diveId); if (!dive->watertemp.mkelvin) return str; if (get_units()->temperature == units::CELSIUS) @@ -1269,8 +1264,7 @@ QString DiveItem::displayTemperature() const QString DiveItem::displaySac() const { QString str; - struct dive *dive = getDiveById(diveId); - Q_ASSERT(dive != NULL); + struct dive *dive = get_dive_by_diveid(diveId); if (get_units()->volume == units::LITER) str = QString::number(dive->sac / 1000.0, 'f', 1).append(tr(" l/min")); else @@ -1286,8 +1280,7 @@ QString DiveItem::displayWeight() const int DiveItem::weight() const { - struct dive *dive = getDiveById(diveId); - Q_ASSERT(dive != 0); + struct dive *dive = get_dive_by_diveid(diveId); weight_t tw = { total_weight(dive) }; return tw.grams; } @@ -1907,8 +1900,7 @@ QVariant ProfilePrintModel::data(const QModelIndex &index, int role) const switch (role) { case Qt::DisplayRole: { - struct dive *dive = getDiveById(diveId); - Q_ASSERT(dive != NULL); + struct dive *dive = get_dive_by_diveid(diveId); struct DiveItem di; di.diveId = diveId; diff --git a/qt-ui/profile/diveplotdatamodel.cpp b/qt-ui/profile/diveplotdatamodel.cpp index ad2859b9e..990564fbb 100644 --- a/qt-ui/profile/diveplotdatamodel.cpp +++ b/qt-ui/profile/diveplotdatamodel.cpp @@ -178,9 +178,7 @@ void DivePlotDataModel::emitDataChanged() void DivePlotDataModel::calculateDecompression() { - struct dive *d = getDiveById(id()); - if (!d) - return; + struct dive *d = get_dive_by_diveid(id()); struct divecomputer *dc = select_dc(d); init_decompression(d); calculate_deco_information(d, dc, &pInfo, false); diff --git a/qt-ui/profile/diveprofileitem.cpp b/qt-ui/profile/diveprofileitem.cpp index c239d39a9..1615be87f 100644 --- a/qt-ui/profile/diveprofileitem.cpp +++ b/qt-ui/profile/diveprofileitem.cpp @@ -427,8 +427,7 @@ void DiveGasPressureItem::modelDataChanged(const QModelIndex &topLeft, const QMo int last_pressure[MAX_CYLINDERS] = { 0, }; int last_time[MAX_CYLINDERS] = { 0, }; struct plot_data *entry; - struct dive *dive = getDiveById(dataModel->id()); - Q_ASSERT(dive != NULL); + struct dive *dive = get_dive_by_diveid(dataModel->id()); cyl = -1; for (int i = 0, count = dataModel->rowCount(); i < count; i++) { @@ -490,9 +489,7 @@ void DiveGasPressureItem::paint(QPainter *painter, const QStyleOptionGraphicsIte QPen pen; pen.setCosmetic(true); pen.setWidth(2); - struct dive *d = getDiveById(dataModel->id()); - if (!d) - return; + struct dive *d = get_dive_by_diveid(dataModel->id()); struct plot_data *entry = dataModel->data().entry; Q_FOREACH(const QPolygonF & poly, polygons) { for (int i = 1, count = poly.count(); i < count; i++, entry++) { diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp index 17eb2a3c4..d2d01a384 100644 --- a/qt-ui/profile/profilewidget2.cpp +++ b/qt-ui/profile/profilewidget2.cpp @@ -227,7 +227,7 @@ void ProfileWidget2::replot() { int diveId = dataModel->id(); dataModel->clear(); - plotDives(QList() << getDiveById(diveId)); + plotDives(QList() << get_dive_by_diveid(diveId)); } void ProfileWidget2::setupItemSizes() @@ -808,7 +808,7 @@ void ProfileWidget2::changeGas() int diveId = dataModel->id(); int o2, he; int seconds = timeAxis->valueAt(scenePos); - struct dive *d = getDiveById(diveId); + struct dive *d = get_dive_by_diveid(diveId); validate_gas(gas.toUtf8().constData(), &o2, &he); add_gas_switch_event(d, get_dive_dc(d, diveComputer), seconds, get_gasidx(d, o2, he));