mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Uemis downloader: assure empty divespots are not added
If the load_uemis_divespot returns false we must assure we delete the divespot that was created during process_raw_buffer Also added some comments Signed-off-by: glerch <guido.lerch@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
1aa941e754
commit
6504d97ca8
1 changed files with 13 additions and 0 deletions
|
@ -1191,17 +1191,30 @@ const char *do_uemis_import(device_data_t *data)
|
||||||
last_found_log_file_nr = dive_to_read;
|
last_found_log_file_nr = dive_to_read;
|
||||||
int divespot_id = uemis_get_divespot_id_by_diveid(dive->dc.diveid);
|
int divespot_id = uemis_get_divespot_id_by_diveid(dive->dc.diveid);
|
||||||
if (load_uemis_divespot(mountpath, divespot_id)) {
|
if (load_uemis_divespot(mountpath, divespot_id)) {
|
||||||
|
/* get the divesite based on the diveid, this should give us
|
||||||
|
* the newly created site
|
||||||
|
*/
|
||||||
struct dive_site *nds = get_dive_site_by_uuid(dive->dive_site_uuid);
|
struct dive_site *nds = get_dive_site_by_uuid(dive->dive_site_uuid);
|
||||||
struct dive_site *ods = NULL;
|
struct dive_site *ods = NULL;
|
||||||
if (nds) {
|
if (nds) {
|
||||||
|
/* with the divesite name we got from parse_dive, that is called on load_uemis_divespot
|
||||||
|
* we search all existing divesites if we have one with the same name already. The function
|
||||||
|
* returns the first found which is luckily not the newly created.
|
||||||
|
*/
|
||||||
(void)get_dive_site_uuid_by_name(nds->name, &ods);
|
(void)get_dive_site_uuid_by_name(nds->name, &ods);
|
||||||
if (ods) {
|
if (ods) {
|
||||||
|
/* if the uuid's are the same, the new site is a duplicat and can be deleted */
|
||||||
if (nds->uuid != ods->uuid) {
|
if (nds->uuid != ods->uuid) {
|
||||||
delete_dive_site(nds->uuid);
|
delete_dive_site(nds->uuid);
|
||||||
dive->dive_site_uuid = ods->uuid;
|
dive->dive_site_uuid = ods->uuid;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
/* if we cant load the dive site details, delete the site we
|
||||||
|
* created in process_raw_buffer
|
||||||
|
*/
|
||||||
|
delete_dive_site(dive->dive_site_uuid);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* in this case we found a deleted file, so let's increment */
|
/* in this case we found a deleted file, so let's increment */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue