From bf373f508360a109e42f75b3eceab2277d1614e7 Mon Sep 17 00:00:00 2001 From: Olivier Verstraet Date: Tue, 2 May 2017 08:40:16 +0200 Subject: [PATCH] Fix calculation of how many samples profile are in datatrack dive log file --- core/datatrak.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/datatrak.c b/core/datatrak.c index 15559b043..eaf78b3b7 100644 --- a/core/datatrak.c +++ b/core/datatrak.c @@ -639,7 +639,9 @@ bool dt_dive_parser(FILE *archivo, struct dive *dt_dive) * 2bytes per sample plus another one each three samples. Also includes the * bytes jumped over (22) and the nitrox (2) or O2 (3). */ - int samplenum = is_O2 ? (profile_length - 25) * 3 / 8 : (profile_length - 24) * 3 / 7; + int numerator = is_O2 ? (profile_length - 25) * 3 : (profile_length - 24) * 3; + int denominator = is_O2 ? 8 : 7; + int samplenum = (numerator / denominator) + (((numerator % denominator) != 0) ? 1 : 0); dc->events = calloc(samplenum, sizeof(struct event)); dc->alloc_samples = samplenum;