From e77c08c57ab966be9ede458a7c7e0ca232af4ebe Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Mon, 2 Dec 2013 00:06:13 -0600
Subject: [PATCH] Fix off-by-one scan size bug in ListOfListsBuilder

---
 pyopencl/algorithm.py | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/pyopencl/algorithm.py b/pyopencl/algorithm.py
index 01a02b14..23d336e6 100644
--- a/pyopencl/algorithm.py
+++ b/pyopencl/algorithm.py
@@ -1026,12 +1026,11 @@ class ListOfListsBuilder:
 
             info_record = result[name]
             starts_ary = info_record.starts
-            evt = scan_kernel(starts_ary, wait_for=[count_event])
+            evt = scan_kernel(starts_ary, wait_for=[count_event],
+                    size=n_objects)
 
-            # set first entry to zero
-            evt = cl.enqueue_copy(queue, starts_ary.data, index_dtype.type(0),
-                    wait_for=[evt])
-            scan_events.append(evt)
+            starts_ary.setitem(0, 0, queue=queue, wait_for=[evt])
+            scan_events.extend(starts_ary.events)
 
             # retrieve count
             info_record.count = int(starts_ary[-1].get())
-- 
GitLab