summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2015-02-12 18:55:56 -0800
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-02-12 21:11:51 -0800
commit4c87ccf952de33a0e62a4fbaf56457ce7359ed84 (patch)
tree582b2103133667994ba67dc1c22f9aa1f77dd47a
parent32da12664dd1055befdb7385176ff9eb8a3b9379 (diff)
downloadsubsurface-4c87ccf952de33a0e62a4fbaf56457ce7359ed84.tar.gz
Switch from locations to dive sites in liquivision code
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--liquivision.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/liquivision.c b/liquivision.c
index a42c35aab..7126c9b79 100644
--- a/liquivision.c
+++ b/liquivision.c
@@ -121,21 +121,24 @@ static void parse_dives (int log_version, const unsigned char *buf, unsigned int
// Dive location, assemble Location and Place
unsigned int len, place_len;
+ char *location;
len = array_uint32_le(buf + ptr);
ptr += 4;
place_len = array_uint32_le(buf + ptr + len);
if (len && place_len) {
- dive->location = malloc(len + place_len + 4);
- memset(dive->location, 0, len + place_len + 4);
- memcpy(dive->location, buf + ptr, len);
- memcpy(dive->location + len, ", ", 2);
- memcpy(dive->location + len + 2, buf + ptr + len + 4, place_len);
+ location = malloc(len + place_len + 4);
+ memset(location, 0, len + place_len + 4);
+ memcpy(location, buf + ptr, len);
+ memcpy(location + len, ", ", 2);
+ memcpy(location + len + 2, buf + ptr + len + 4, place_len);
} else if (len) {
- dive->location = strndup(buf + ptr, len);
+ location = strndup(buf + ptr, len);
} else if (place_len) {
- dive->location = strndup(buf + ptr + len + 4, place_len);
+ location = strndup(buf + ptr + len + 4, place_len);
}
+ dive->dive_site_uuid = create_dive_site(location);
+ free(location);
ptr += len + 4 + place_len;