summaryrefslogtreecommitdiffstats
path: root/core/divelist.c
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2019-02-28 22:45:17 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-04-12 18:19:07 +0300
commit37146c5742503becf75468fb07aab56011cb9101 (patch)
tree666e4d609b3d9b882082fcc258d6d153c6c68fa5 /core/divelist.c
parent926b6895bbce7cc539ca4d0c3a425876dfa33d6b (diff)
downloadsubsurface-37146c5742503becf75468fb07aab56011cb9101.tar.gz
Parser: parse into custom dive site table
To extend the undo system to dive sites, the importers and downloaders must not parse directly into the global dive site table. Instead, pass a dive_site_table argument to parse into. For now, always pass the global dive_site_table so that this commit should not cause any functional change. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'core/divelist.c')
-rw-r--r--core/divelist.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/core/divelist.c b/core/divelist.c
index 0b772f201..8e1ba1628 100644
--- a/core/divelist.c
+++ b/core/divelist.c
@@ -1365,7 +1365,7 @@ static void insert_dive(struct dive_table *table, struct dive *d)
}
/*
- * Clear a dive_table and a trip_table. Think about generating these with macros.
+ * Clear a dive_table, trip_table and dive_site_table. Think about generating these with macros.
*/
void clear_table(struct dive_table *table)
{
@@ -1381,6 +1381,13 @@ static void clear_trip_table(struct trip_table *table)
table->nr = 0;
}
+void clear_dive_site_table(struct dive_site_table *ds_table)
+{
+ for (int i = 0; i < ds_table->nr; i++)
+ free_dive_site(ds_table->dive_sites[i]);
+ ds_table->nr = 0;
+}
+
/*
* Try to merge a new dive into the dive at position idx. Return
* true on success. On success, the old dive will be added to the