Cleanup: return cylinder from add_empty_cylinder()

As a convenience, return the cylinder from add_empty_cylinder()
to spare the caller from the nasty expression to fetch the
last cylinder.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2019-08-04 19:17:11 +02:00 committed by Dirk Hohndel
parent 8df3705152
commit c26e922802
4 changed files with 5 additions and 7 deletions

View file

@ -2126,9 +2126,7 @@ static int match_cylinder(const cylinder_t *cyl, const struct dive *dive, const
*/ */
static void merge_one_cylinder(struct cylinder_table *t, const cylinder_t *a, const cylinder_t *b) static void merge_one_cylinder(struct cylinder_table *t, const cylinder_t *a, const cylinder_t *b)
{ {
cylinder_t *res; cylinder_t *res = add_empty_cylinder(t);
add_empty_cylinder(t);
res = t->cylinders + (t->nr - 1);
res->type.size.mliter = a->type.size.mliter ? res->type.size.mliter = a->type.size.mliter ?
a->type.size.mliter : b->type.size.mliter; a->type.size.mliter : b->type.size.mliter;
res->type.workingpressure.mbar = a->type.workingpressure.mbar ? res->type.workingpressure.mbar = a->type.workingpressure.mbar ?

View file

@ -314,11 +314,12 @@ void copy_cylinder_types(const struct dive *s, struct dive *d)
add_cloned_cylinder(&d->cylinders, s->cylinders.cylinders[i]); add_cloned_cylinder(&d->cylinders, s->cylinders.cylinders[i]);
} }
void add_empty_cylinder(struct cylinder_table *t) cylinder_t *add_empty_cylinder(struct cylinder_table *t)
{ {
cylinder_t cyl = { 0 }; cylinder_t cyl = { 0 };
cyl.type.description = strdup(""); cyl.type.description = strdup("");
add_to_cylinder_table(t, t->nr, cyl); add_to_cylinder_table(t, t->nr, cyl);
return &t->cylinders[t->nr - 1];
} }
/* access to cylinders is controlled by two functions: /* access to cylinders is controlled by two functions:

View file

@ -69,7 +69,7 @@ extern int cylinderuse_from_text(const char *text);
extern void copy_weights(const struct weightsystem_table *s, struct weightsystem_table *d); extern void copy_weights(const struct weightsystem_table *s, struct weightsystem_table *d);
extern void copy_cylinder_types(const struct dive *s, struct dive *d); extern void copy_cylinder_types(const struct dive *s, struct dive *d);
extern void add_cloned_weightsystem(struct weightsystem_table *t, weightsystem_t ws); extern void add_cloned_weightsystem(struct weightsystem_table *t, weightsystem_t ws);
extern void add_empty_cylinder(struct cylinder_table *t); extern cylinder_t *add_empty_cylinder(struct cylinder_table *t);
extern void add_cloned_cylinder(struct cylinder_table *t, cylinder_t cyl); extern void add_cloned_cylinder(struct cylinder_table *t, cylinder_t cyl);
extern cylinder_t *get_cylinder(const struct dive *d, int idx); extern cylinder_t *get_cylinder(const struct dive *d, int idx);
extern cylinder_t *get_or_create_cylinder(struct dive *d, int idx); extern cylinder_t *get_or_create_cylinder(struct dive *d, int idx);

View file

@ -289,8 +289,7 @@ void picture_end(struct parser_state *state)
cylinder_t *cylinder_start(struct parser_state *state) cylinder_t *cylinder_start(struct parser_state *state)
{ {
add_empty_cylinder(&state->cur_dive->cylinders); return add_empty_cylinder(&state->cur_dive->cylinders);
return &state->cur_dive->cylinders.cylinders[state->cur_dive->cylinders.nr - 1];
} }
void cylinder_end(struct parser_state *state) void cylinder_end(struct parser_state *state)