From 4387327f4c2ce91ecefa7fc45c7b5412aad67d07 Mon Sep 17 00:00:00 2001 From: Jed Barber Date: Mon, 30 Jan 2017 15:56:45 +1100 Subject: Fixed off-by-2 bug with constructing SenateCounter object --- src/Storage.hs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/Storage.hs') diff --git a/src/Storage.hs b/src/Storage.hs index 295273b..be9b8af 100644 --- a/src/Storage.hs +++ b/src/Storage.hs @@ -28,7 +28,9 @@ data Store = Store createStore :: Int -> Int -> IO Store createStore maxCapacity ballotSize = do v <- Vec.replicate (maxCapacity * ballotSize) 0 - return (Store v ballotSize) + return (Store + { getPointer = v + , getBallotSize = ballotSize }) @@ -42,7 +44,9 @@ setPref prefStore ballot (position,rank) = do setPrefs :: Store -> Int -> [Preference] -> IO () -setPrefs prefStore ballot prefList = +setPrefs prefStore ballot prefList = do + let blank = take (getBallotSize prefStore) (zip [1..] (cycle [0])) + mapM_ (setPref prefStore ballot) blank mapM_ (setPref prefStore ballot) prefList -- cgit