summaryrefslogtreecommitdiffstats
path: root/divelist.c
diff options
context:
space:
mode:
authorGravatar Martin Gysel <me@bearsh.org>2013-12-07 13:25:18 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2013-12-07 07:28:18 -0800
commitc1a9e7c996fd24453087885f37aafc8c24c58c24 (patch)
treefa411bca600e5ec370921d9d2fe8b0acfbf6546b /divelist.c
parentd9ca999a17a45b5c993ed1a693c4c4e386393ec0 (diff)
downloadsubsurface-c1a9e7c996fd24453087885f37aafc8c24c58c24.tar.gz
amount_selected should never be decremented if already 0
this is probably more a workaround than a proper fix to a problem which I think only happens if started with no dive loaded and then create one. in that case, deselect_dive is called after saving the dive but probalby before it was added to the dive list properly resulting in an underflow of amount_selected. Signed-off-by: Martin Gysel <me@bearsh.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'divelist.c')
-rw-r--r--divelist.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/divelist.c b/divelist.c
index 36f43e4fc..18435ca29 100644
--- a/divelist.c
+++ b/divelist.c
@@ -820,7 +820,8 @@ void deselect_dive(int idx)
struct dive *dive = get_dive(idx);
if (dive && dive->selected) {
dive->selected = 0;
- amount_selected--;
+ if (amount_selected)
+ amount_selected--;
if (selected_dive == idx && amount_selected > 0) {
/* pick a different dive as selected */
while (--selected_dive >= 0) {