From 688412ff7de452f81b420808b04a65024802c876 Mon Sep 17 00:00:00 2001
From: Anders Blomdell <anders.blomdell@control.lth.se>
Date: Fri, 28 Jun 2013 19:46:34 +0200
Subject: [PATCH] Call handler only when reader is without errors.

---
 lib/c/labcomm_decoder.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/lib/c/labcomm_decoder.c b/lib/c/labcomm_decoder.c
index bdf5f43..7d657d7 100644
--- a/lib/c/labcomm_decoder.c
+++ b/lib/c/labcomm_decoder.c
@@ -259,11 +259,13 @@ static void call_handler(void *value, void *context)
 {
   struct call_handler_context *wrap = context;
 
-  labcomm_reader_start(wrap->reader, wrap->reader->action_context,
-		       wrap->local_index, wrap->remote_index, wrap->signature,
-		       value);
-  wrap->handler(value, wrap->context);
-  labcomm_reader_end(wrap->reader, wrap->reader->action_context);
+  if (wrap->reader->error >= 0) {
+    labcomm_reader_start(wrap->reader, wrap->reader->action_context,
+			 wrap->local_index, wrap->remote_index, wrap->signature,
+			 value);
+    wrap->handler(value, wrap->context);
+    labcomm_reader_end(wrap->reader, wrap->reader->action_context);
+  }
 }
 
 static void reader_alloc(struct labcomm_decoder *d)
-- 
GitLab