summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dive.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/dive.c b/dive.c
index 4cb9672ed..1dd943e48 100644
--- a/dive.c
+++ b/dive.c
@@ -51,10 +51,23 @@ void add_event(struct divecomputer *dc, int time, int type, int flags, int value
remember_event(name);
}
+static int same_event(struct event *a, struct event *b)
+{
+ if (a->time.seconds != b->time.seconds)
+ return 0;
+ if (a->type != b->type)
+ return 0;
+ if (a->flags != b->flags)
+ return 0;
+ if (a->value != b->value)
+ return 0;
+ return !strcmp(a->name, b->name);
+}
+
void remove_event(struct event* event)
{
struct event **ep = &current_dc->events;
- while (ep && *ep != event)
+ while (ep && !same_event(*ep, event))
ep = &(*ep)->next;
if (ep) {
*ep = event->next;
@@ -1886,19 +1899,6 @@ static void free_pic(struct picture *picture)
}
}
-static int same_event(struct event *a, struct event *b)
-{
- if (a->time.seconds != b->time.seconds)
- return 0;
- if (a->type != b->type)
- return 0;
- if (a->flags != b->flags)
- return 0;
- if (a->value != b->value)
- return 0;
- return !strcmp(a->name, b->name);
-}
-
static int same_sample(struct sample *a, struct sample *b)
{
if (a->time.seconds != b->time.seconds)