From cb1591db394e641e56890281e4e7a190524b4a2b Mon Sep 17 00:00:00 2001
From: Sam Yates <halfflat@gmail.com>
Date: Fri, 2 Sep 2016 19:25:44 +0200
Subject: [PATCH] Bugfix: partition in serial gathered vector

---
 src/communication/gathered_vector.hpp      | 2 +-
 src/communication/serial_global_policy.hpp | 6 +++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/communication/gathered_vector.hpp b/src/communication/gathered_vector.hpp
index cf48192f..ceb5c16c 100644
--- a/src/communication/gathered_vector.hpp
+++ b/src/communication/gathered_vector.hpp
@@ -20,7 +20,7 @@ public:
         partition_(std::move(p))
     {
         EXPECTS(std::is_sorted(partition_.begin(), partition_.end()));
-        EXPECTS(std::size_t(partition_.back()) == v.size());
+        EXPECTS(std::size_t(partition_.back()) == values_.size());
     }
 
     /// the partition of distribution
diff --git a/src/communication/serial_global_policy.hpp b/src/communication/serial_global_policy.hpp
index 73d7b96b..486266ca 100644
--- a/src/communication/serial_global_policy.hpp
+++ b/src/communication/serial_global_policy.hpp
@@ -15,7 +15,11 @@ struct serial_global_policy {
     template <typename Spike>
     static gathered_vector<Spike>
     gather_spikes(const std::vector<Spike>& local_spikes) {
-        return gathered_vector<Spike>(std::vector<Spike>(local_spikes), {0u, 1u});
+        using count_type = typename gathered_vector<Spike>::count_type;
+        return gathered_vector<Spike>(
+            std::vector<Spike>(local_spikes),
+            {0u, static_cast<count_type>(local_spikes.size())}
+        );
     }
 
     static int id() {
-- 
GitLab