Mesa (master): clover: Fix the const variant of adaptor_range:: end to deal with mismatching range sizes.

Francisco Jerez currojerez at kemper.freedesktop.org
Tue Nov 12 19:52:24 UTC 2013


Module: Mesa
Branch: master
Commit: 99d447cc5dafa3a36b970068961989cced62e3b6
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=99d447cc5dafa3a36b970068961989cced62e3b6

Author: Francisco Jerez <currojerez at riseup.net>
Date:   Tue Nov 12 11:14:20 2013 -0800

clover: Fix the const variant of adaptor_range::end to deal with mismatching range sizes.

Fixes infinite loop in find_grid_optimal_factor() in cases where the
user specifies a grid size with less dimensions than the device
supports.

Reported-by: Tom Stellard <thomas.stellard at amd.com>
Cc: "10.0" <mesa-stable at lists.freedesktop.org>

---

 src/gallium/state_trackers/clover/util/range.hpp |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/gallium/state_trackers/clover/util/range.hpp b/src/gallium/state_trackers/clover/util/range.hpp
index cefa5b5..afa5f77 100644
--- a/src/gallium/state_trackers/clover/util/range.hpp
+++ b/src/gallium/state_trackers/clover/util/range.hpp
@@ -269,7 +269,8 @@ namespace clover {
 
       typename super::const_iterator
       end() const {
-         return { f, tuple::map(ends(), os) };
+         return { f, tuple::map(advances_by(size()),
+                                tuple::map(begins(), os)) };
       }
 
       typename super::size_type




More information about the mesa-commit mailing list