mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
Consistently use for_each_dive (and use it correctly)
The way the macro is written there is no need to test the dive against NULL before dereferencing. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
b303f217a9
commit
09e7c61fee
5 changed files with 17 additions and 25 deletions
|
@ -706,8 +706,7 @@ void DiveListView::deleteDive()
|
|||
// so instead of using the for_each_dive macro I'm using an explicit for loop
|
||||
// to make this easier to understand
|
||||
int lastDiveNr = -1;
|
||||
for (i = 0; i < dive_table.nr; i++) {
|
||||
d = get_dive(i);
|
||||
for_each_dive (i, d) {
|
||||
if (!d->selected)
|
||||
continue;
|
||||
delete_single_dive(i);
|
||||
|
|
|
@ -270,10 +270,8 @@ void MainTab::enableEdition(EditMode newEditMode)
|
|||
|
||||
// We may be editing one or more dives here. backup everything.
|
||||
struct dive *mydive;
|
||||
for (int i = 0; i < dive_table.nr; i++) {
|
||||
mydive = get_dive(i);
|
||||
if (!mydive)
|
||||
continue;
|
||||
int i;
|
||||
for_each_dive(i, mydive) {
|
||||
if (!mydive->selected)
|
||||
continue;
|
||||
|
||||
|
@ -596,14 +594,12 @@ void MainTab::reload()
|
|||
#define EDIT_SELECTED_DIVES(WHAT) \
|
||||
do { \
|
||||
struct dive *mydive = NULL; \
|
||||
int _i; \
|
||||
if (editMode == NONE) \
|
||||
return; \
|
||||
\
|
||||
for (int _i = 0; _i < dive_table.nr; _i++) { \
|
||||
mydive = get_dive(_i); \
|
||||
if (!mydive || mydive == current_dive)\
|
||||
continue; \
|
||||
if (!mydive->selected) \
|
||||
for_each_dive (_i, mydive) { \
|
||||
if (!mydive->selected || mydive == current_dive) \
|
||||
continue; \
|
||||
\
|
||||
WHAT; \
|
||||
|
@ -836,10 +832,8 @@ void MainTab::rejectChanges()
|
|||
}
|
||||
|
||||
struct dive *mydive;
|
||||
for (int i = 0; i < dive_table.nr; i++) {
|
||||
mydive = get_dive(i);
|
||||
if (!mydive)
|
||||
continue;
|
||||
int i;
|
||||
for_each_dive (i, mydive) {
|
||||
if (!mydive->selected)
|
||||
continue;
|
||||
|
||||
|
|
|
@ -133,7 +133,9 @@ bool DivelogsDeWebServices::prepare_dives_for_divelogs(const QString &tempfile,
|
|||
}
|
||||
|
||||
/* walk the dive list in chronological order */
|
||||
for (int i = 0; i < dive_table.nr; i++) {
|
||||
int i;
|
||||
struct dive *dive;
|
||||
for_each_dive(i, dive) {
|
||||
FILE *f;
|
||||
char filename[PATH_MAX];
|
||||
int streamsize;
|
||||
|
@ -145,9 +147,6 @@ bool DivelogsDeWebServices::prepare_dives_for_divelogs(const QString &tempfile,
|
|||
* Get the i'th dive in XML format so we can process it.
|
||||
* We need to save to a file before we can reload it back into memory...
|
||||
*/
|
||||
struct dive *dive = get_dive(i);
|
||||
if (!dive)
|
||||
continue;
|
||||
if (selected && !dive->selected)
|
||||
continue;
|
||||
f = tmpfile();
|
||||
|
|
|
@ -131,8 +131,7 @@ void process_all_dives(struct dive *dive, struct dive **prev_dive)
|
|||
|
||||
/* this relies on the fact that the dives in the dive_table
|
||||
* are in chronological order */
|
||||
for (idx = 0; idx < dive_table.nr; idx++) {
|
||||
dp = dive_table.dives[idx];
|
||||
for_each_dive (idx, dp) {
|
||||
if (dive && dp->when == dive->when) {
|
||||
/* that's the one we are showing */
|
||||
if (idx > 0)
|
||||
|
@ -230,10 +229,10 @@ static void get_ranges(char *buffer, int size)
|
|||
{
|
||||
int i, len;
|
||||
int first = -1, last = -1;
|
||||
struct dive *dive;
|
||||
|
||||
snprintf(buffer, size, "%s", translate("gettextFromC", "for dives #"));
|
||||
for (i = 0; i < dive_table.nr; i++) {
|
||||
struct dive *dive = get_dive(i);
|
||||
for_each_dive (i, dive) {
|
||||
if (!dive->selected)
|
||||
continue;
|
||||
if (dive->number < 1) {
|
||||
|
|
|
@ -793,8 +793,9 @@ static char *uemis_get_divenr(char *deviceidstr)
|
|||
char divenr[10];
|
||||
|
||||
deviceid = atoi(deviceidstr);
|
||||
for (i = 0; i < dive_table.nr; i++) {
|
||||
struct divecomputer *dc = &dive_table.dives[i]->dc;
|
||||
struct dive *d;
|
||||
for_each_dive (i, d) {
|
||||
struct divecomputer *dc = &d->dc;
|
||||
while (dc) {
|
||||
if (dc->model && !strcmp(dc->model, "Uemis Zurich") &&
|
||||
(dc->deviceid == 0 || dc->deviceid == 0x7fffffff || dc->deviceid == deviceid) &&
|
||||
|
|
Loading…
Reference in a new issue