Assign the uniq dive ID the moment a dive is allocated

Previously we only did this when we did fixup_dive(), but that way we
can't reference dives "early" in their life cycle (e.g., right after they
got downloaded).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2014-05-19 06:53:28 +09:00
parent cae51ff0aa
commit b36c8f07c7

6
dive.c
View file

@ -221,6 +221,7 @@ struct dive *alloc_dive(void)
if (!dive) if (!dive)
exit(1); exit(1);
memset(dive, 0, sizeof(*dive)); memset(dive, 0, sizeof(*dive));
dive->id = dive_getUniqID(dive);
return dive; return dive;
} }
@ -955,7 +956,10 @@ struct dive *fixup_dive(struct dive *dive)
weightsystem_t *ws = dive->weightsystem + i; weightsystem_t *ws = dive->weightsystem + i;
add_weightsystem_description(ws); add_weightsystem_description(ws);
} }
dive->id = dive_getUniqID(dive); /* we should always have a uniq ID as that gets assigned during alloc_dive(),
* but we want to make sure... */
if (!dive->id)
dive->id = dive_getUniqID(dive);
return dive; return dive;
} }