Migrate code to for_each_dive and for_each_dc

[Dirk Hohndel: this overlapped with my commit 09e7c61fee ("Consistently
	       use for_each_dive (and use it correctly)") so I took the
	       pieces that I had missed]

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Anton Lundin 2014-05-14 00:32:45 +02:00 committed by Dirk Hohndel
parent 91c20357f5
commit 05d9cc409c
6 changed files with 9 additions and 21 deletions

5
dive.c
View file

@ -1320,11 +1320,8 @@ static void dc_cylinder_renumber(struct dive *dive, struct divecomputer *dc, int
static void cylinder_renumber(struct dive *dive, int mapping[]) static void cylinder_renumber(struct dive *dive, int mapping[])
{ {
struct divecomputer *dc; struct divecomputer *dc;
for_each_dc(dive, dc)
dc = &dive->dc;
do {
dc_cylinder_renumber(dive, dc, mapping); dc_cylinder_renumber(dive, dc, mapping);
} while ((dc = dc->next) != NULL);
} }
/* /*

View file

@ -162,9 +162,9 @@ extern "C" void set_dc_nickname(struct dive *dive)
if (!dive) if (!dive)
return; return;
struct divecomputer *dc = &dive->dc; struct divecomputer *dc;
while (dc) { for_each_dc(dive, dc) {
if (dc->model && *dc->model && dc->deviceid && if (dc->model && *dc->model && dc->deviceid &&
!dcList.getExact(dc->model, dc->deviceid)) { !dcList.getExact(dc->model, dc->deviceid)) {
// we don't have this one, yet // we don't have this one, yet
@ -181,6 +181,5 @@ extern "C" void set_dc_nickname(struct dive *dive)
dcList.addDC(dc->model, dc->deviceid); dcList.addDC(dc->model, dc->deviceid);
} }
} }
dc = dc->next;
} }
} }

View file

@ -887,8 +887,7 @@ void DiveListView::loadImages()
for_each_dive(j, dive) { for_each_dive(j, dive) {
if (!dive->selected) if (!dive->selected)
continue; continue;
dc = &(dive->dc); for_each_dc(dive, dc) {
while (dc) {
when = dc->when ? dc->when : dive->when; when = dc->when ? dc->when : dive->when;
duration_s = dc->duration.seconds ? dc->duration.seconds : dive->duration.seconds; duration_s = dc->duration.seconds ? dc->duration.seconds : dive->duration.seconds;
if (when - 3600 < imagetime && when + duration_s + 3600 > imagetime) { if (when - 3600 < imagetime && when + duration_s + 3600 > imagetime) {
@ -909,7 +908,6 @@ void DiveListView::loadImages()
MainWindow::instance()->refreshDisplay(); MainWindow::instance()->refreshDisplay();
MainWindow::instance()->graphics()->replot(); MainWindow::instance()->graphics()->replot();
} }
dc = dc->next;
} }
} }
} }

View file

@ -392,12 +392,8 @@ void save_one_dive(struct membuffer *b, struct dive *dive)
save_weightsystem_info(b, dive); save_weightsystem_info(b, dive);
save_dive_temperature(b, dive); save_dive_temperature(b, dive);
/* Save the dive computer data */ /* Save the dive computer data */
dc = &dive->dc; for_each_dc(dive, dc)
do {
save_dc(b, dive, dc); save_dc(b, dive, dc);
dc = dc->next;
} while (dc);
put_format(b, "</dive>\n"); put_format(b, "</dive>\n");
} }

View file

@ -294,12 +294,12 @@ void get_selected_dives_text(char *buffer, int size)
static bool is_gas_used(struct dive *dive, int idx) static bool is_gas_used(struct dive *dive, int idx)
{ {
struct divecomputer *dc = &dive->dc; struct divecomputer *dc;
bool firstGasExplicit = false; bool firstGasExplicit = false;
if (cylinder_none(&dive->cylinder[idx])) if (cylinder_none(&dive->cylinder[idx]))
return false; return false;
while (dc) { for_each_dc(dive, dc) {
struct event *event = get_next_event(dc->events, "gaschange"); struct event *event = get_next_event(dc->events, "gaschange");
while (event) { while (event) {
if (event->time.seconds < 30) if (event->time.seconds < 30)
@ -308,7 +308,6 @@ static bool is_gas_used(struct dive *dive, int idx)
return true; return true;
event = get_next_event(event->next, "gaschange"); event = get_next_event(event->next, "gaschange");
} }
dc = dc->next;
} }
if (idx == 0 && !firstGasExplicit) if (idx == 0 && !firstGasExplicit)
return true; return true;

View file

@ -795,13 +795,12 @@ static char *uemis_get_divenr(char *deviceidstr)
deviceid = atoi(deviceidstr); deviceid = atoi(deviceidstr);
struct dive *d; struct dive *d;
for_each_dive (i, d) { for_each_dive (i, d) {
struct divecomputer *dc = &d->dc; struct divecomputer *dc;
while (dc) { for_each_dc(d, dc) {
if (dc->model && !strcmp(dc->model, "Uemis Zurich") && if (dc->model && !strcmp(dc->model, "Uemis Zurich") &&
(dc->deviceid == 0 || dc->deviceid == 0x7fffffff || dc->deviceid == deviceid) && (dc->deviceid == 0 || dc->deviceid == 0x7fffffff || dc->deviceid == deviceid) &&
dc->diveid > maxdiveid) dc->diveid > maxdiveid)
maxdiveid = dc->diveid; maxdiveid = dc->diveid;
dc = dc->next;
} }
} }
snprintf(divenr, 10, "%d", maxdiveid); snprintf(divenr, 10, "%d", maxdiveid);