Dive site: pass dive-site pointer to is_dive_site_used()

Instead of passing a uuid, pass a pointer to the dive site.
This is small step in an effort to remove uuids.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2018-10-23 18:55:42 +02:00 committed by Dirk Hohndel
parent 14ab95608c
commit 8de471f90e
5 changed files with 15 additions and 16 deletions

View file

@ -145,13 +145,15 @@ int nr_of_dives_at_dive_site(struct dive_site *ds, bool select_only)
return nr;
}
bool is_dive_site_used(uint32_t uuid, bool select_only)
bool is_dive_site_used(struct dive_site *ds, bool select_only)
{
int j;
bool found = false;
struct dive *d;
if (!ds)
return false;
for_each_dive(j, d) {
if (d->dive_site_uuid == uuid && (!select_only || d->selected)) {
if (d->dive_site_uuid == ds->uuid && (!select_only || d->selected)) {
found = true;
break;
}

View file

@ -55,7 +55,7 @@ static inline struct dive_site *get_dive_site_by_uuid(uint32_t uuid)
void dive_site_table_sort();
struct dive_site *alloc_or_get_dive_site(uint32_t uuid);
int nr_of_dives_at_dive_site(struct dive_site *ds, bool select_only);
bool is_dive_site_used(uint32_t uuid, bool select_only);
bool is_dive_site_used(struct dive_site *ds, bool select_only);
void free_dive_site(struct dive_site *ds);
void delete_dive_site(uint32_t id);
struct dive_site *create_dive_site(const char *name, timestamp_t divetime);

View file

@ -883,7 +883,7 @@ static void save_divesites(git_repository *repo, struct dir *tree)
for (int i = 0; i < dive_site_table.nr; i++) {
struct membuffer b = { 0 };
struct dive_site *ds = get_dive_site(i);
if (dive_site_is_empty(ds) || !is_dive_site_used(ds->uuid, false)) {
if (dive_site_is_empty(ds) || !is_dive_site_used(ds, false)) {
int j;
struct dive *d;
for_each_dive(j, d) {
@ -900,7 +900,7 @@ static void save_divesites(git_repository *repo, struct dir *tree)
// these are the two default names for sites from
// the web service; if the site isn't used in any
// dive (really? you didn't rename it?), delete it
if (!is_dive_site_used(ds->uuid, false)) {
if (!is_dive_site_used(ds, false)) {
if (verbose)
fprintf(stderr, "Deleted unused auto-created dive site %s\n", ds->name);
delete_dive_site(ds->uuid);

View file

@ -600,7 +600,7 @@ void save_dives_buffer(struct membuffer *b, const bool select_only, bool anonymi
int j;
struct dive *d;
struct dive_site *ds = get_dive_site(i);
if (dive_site_is_empty(ds) || !is_dive_site_used(ds->uuid, false)) {
if (dive_site_is_empty(ds) || !is_dive_site_used(ds, false)) {
for_each_dive(j, d) {
if (d->dive_site_uuid == ds->uuid)
d->dive_site_uuid = 0;
@ -614,7 +614,7 @@ void save_dives_buffer(struct membuffer *b, const bool select_only, bool anonymi
// these are the two default names for sites from
// the web service; if the site isn't used in any
// dive (really? you didn't rename it?), delete it
if (!is_dive_site_used(ds->uuid, false)) {
if (!is_dive_site_used(ds, false)) {
if (verbose)
fprintf(stderr, "Deleted unused auto-created dive site %s\n", ds->name);
delete_dive_site(ds->uuid);
@ -622,7 +622,7 @@ void save_dives_buffer(struct membuffer *b, const bool select_only, bool anonymi
continue;
}
}
if (select_only && !is_dive_site_used(ds->uuid, true))
if (select_only && !is_dive_site_used(ds, true))
continue;
put_format(b, "<site uuid='%8x'", ds->uuid);