Dive site: return pointer to dive_site in get_dive_site_*()

As a first step in removing dive-site uuids, change the interface
of the get_dive_site_*() functions to return pointers instead
of uuids. This makes code a bit more complicated in places where
the uuid is extracted afterwards (needed NULL check). Nevertheless,
these places should disappear once pointers instead of uuids are
stored in the dive-structures.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2018-10-23 12:42:01 +02:00 committed by Dirk Hohndel
parent 4cea7b4901
commit 68961a169e
9 changed files with 68 additions and 77 deletions

View file

@ -373,17 +373,19 @@ static void smtk_build_location(MdbHandle *mdb, char *idx, timestamp_t when, uin
str = smtk_concat_str(str, ", ", "%s", col[1]->bind_ptr); // Locality
str = smtk_concat_str(str, ", ", "%s", site);
*location = get_dive_site_uuid_by_name(str, NULL);
if (*location == 0) {
ds = get_dive_site_by_name(str);
if (!ds) {
if (!has_location(&loc))
*location = create_dive_site(str, when);
else
*location = create_dive_site_with_gps(str, &loc, when);
ds = get_dive_site_by_uuid(*location);
} else {
*location = ds->uuid;
}
smtk_free(bound_values, table->num_cols);
/* Insert site notes */
ds = get_dive_site_by_uuid(*location);
ds->notes = copy_string(notes);
free(notes);