mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Core: dynamically resize weight table
Replace the fixed-size weightsystem table by a dynamically relocated table. Reuse the table-macros used in other parts of the code. The table stores weightsystem entries, not pointers to weightsystems. Thus, ownership of the description string is taken when adding a weightsystem. An extra function adds a cloned weightsystem at the end of the table. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
efdb3503ea
commit
a5e7f4253a
25 changed files with 182 additions and 154 deletions
|
@ -194,7 +194,7 @@ static void uemis_get_weight(char *buffer, weightsystem_t *weight, int diveid)
|
|||
weight->weight.grams = uemis_get_weight_unit(diveid) ?
|
||||
lbs_to_grams(ascii_strtod(buffer, NULL)) :
|
||||
lrint(ascii_strtod(buffer, NULL) * 1000);
|
||||
weight->description = strdup(translate("gettextFromC", "unknown"));
|
||||
weight->description = translate("gettextFromC", "unknown");
|
||||
}
|
||||
|
||||
static struct dive *uemis_start_dive(uint32_t deviceid)
|
||||
|
@ -815,7 +815,9 @@ static void parse_tag(struct dive *dive, char *tag, char *val)
|
|||
} else if (!strcmp(tag, "altitude")) {
|
||||
uemis_get_index(val, &dive->dc.surface_pressure.mbar);
|
||||
} else if (!strcmp(tag, "f32Weight")) {
|
||||
uemis_get_weight(val, &dive->weightsystem[0], dive->dc.diveid);
|
||||
weightsystem_t ws;
|
||||
uemis_get_weight(val, &ws, dive->dc.diveid);
|
||||
add_cloned_weightsystem(&dive->weightsystems, ws);
|
||||
} else if (!strcmp(tag, "notes")) {
|
||||
uemis_add_string(val, &dive->notes, " ");
|
||||
} else if (!strcmp(tag, "u8DiveSuit")) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue