From 66e3f6f45df5d6136bba40f4612bc1f2c8f1fbb8 Mon Sep 17 00:00:00 2001
From: Manuel Pitz <manuel.pitz@eonerc.rwth-aachen.de>
Date: Wed, 21 Oct 2020 20:57:57 +0200
Subject: [PATCH] hooks: update sample signal descriptors in
 hook_list_process()

---
 lib/hook_list.cpp     | 4 ++++
 lib/hooks/average.cpp | 1 -
 lib/hooks/cast.cpp    | 3 ---
 lib/hooks/dp.cpp      | 2 --
 4 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/lib/hook_list.cpp b/lib/hook_list.cpp
index 1d7aba314..b1cd544fa 100644
--- a/lib/hook_list.cpp
+++ b/lib/hook_list.cpp
@@ -24,6 +24,7 @@
 #include <villas/hook.hpp>
 #include <villas/hook_list.hpp>
 #include <villas/list.h>
+#include <villas/sample.h>
 #include <villas/log.h>
 
 using namespace villas;
@@ -129,6 +130,8 @@ skip_add:
 		h->prepare(sigs);
 
 		sigs = h->getSignals();
+
+		signal_list_dump(sigs);
 	}
 }
 
@@ -146,6 +149,7 @@ int hook_list_process(vlist *hs, sample *smps[], unsigned cnt)
 			Hook *h = (Hook *) vlist_at(hs, i);
 
 			auto ret = h->process(smp);
+			smp->signals = h->getSignals();
 			switch (ret) {
 				case Hook::Reason::ERROR:
 					return -1;
diff --git a/lib/hooks/average.cpp b/lib/hooks/average.cpp
index b5353d714..c89cac123 100644
--- a/lib/hooks/average.cpp
+++ b/lib/hooks/average.cpp
@@ -172,7 +172,6 @@ public:
 			return Reason::ERROR;
 
 		sample_data_insert(smp, (union signal_data *) &avg, offset, 1);
-		smp->signals = &signals;
 
 		return Reason::OK;
 	}
diff --git a/lib/hooks/cast.cpp b/lib/hooks/cast.cpp
index be261f51f..200122792 100644
--- a/lib/hooks/cast.cpp
+++ b/lib/hooks/cast.cpp
@@ -161,9 +161,6 @@ public:
 
 		signal_data_cast(&smp->data[signal_index], orig_sig, new_sig);
 
-		/* Replace signal descriptors of sample */
-		smp->signals = &signals;
-
 		return Reason::OK;
 	}
 };
diff --git a/lib/hooks/dp.cpp b/lib/hooks/dp.cpp
index 56d729659..b89c1b87b 100644
--- a/lib/hooks/dp.cpp
+++ b/lib/hooks/dp.cpp
@@ -318,8 +318,6 @@ public:
 			sample_data_insert(smp, (union signal_data *) coeffs, offset, fharmonics_len);
 		}
 
-		smp->signals = &signals;
-
 		time += timestep;
 		steps++;