[Mesa-dev] [PATCH 1/5] clover: Have compat::string allocate its own memory.

Tom Stellard thomas.stellard at amd.com
Wed Jun 25 07:32:09 PDT 2014


From: Francisco Jerez <currojerez at riseup.net>

---
 src/gallium/state_trackers/clover/api/kernel.cpp  | 4 +++-
 src/gallium/state_trackers/clover/util/compat.hpp | 8 ++++----
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/gallium/state_trackers/clover/api/kernel.cpp b/src/gallium/state_trackers/clover/api/kernel.cpp
index 96cf302..05cc392 100644
--- a/src/gallium/state_trackers/clover/api/kernel.cpp
+++ b/src/gallium/state_trackers/clover/api/kernel.cpp
@@ -58,7 +58,9 @@ clCreateKernelsInProgram(cl_program d_prog, cl_uint count,
 
    if (rd_kerns)
       copy(map([&](const module::symbol &sym) {
-               return desc(new kernel(prog, compat::string(sym.name),
+               return desc(new kernel(prog,
+                                      std::string(sym.name.begin(),
+                                                  sym.name.end()),
                                       range(sym.args)));
             }, syms),
          rd_kerns);
diff --git a/src/gallium/state_trackers/clover/util/compat.hpp b/src/gallium/state_trackers/clover/util/compat.hpp
index e68d9df..28601e8 100644
--- a/src/gallium/state_trackers/clover/util/compat.hpp
+++ b/src/gallium/state_trackers/clover/util/compat.hpp
@@ -72,7 +72,7 @@ namespace clover {
          vector(const vector &v) : p(alloc(v.n, v.p, v.n)), n(v.n) {
          }
 
-         vector(iterator p, size_type n) : p(alloc(n, p, n)), n(n) {
+         vector(const_iterator p, size_type n) : p(alloc(n, p, n)), n(n) {
          }
 
          template<typename C>
@@ -263,13 +263,13 @@ namespace clover {
          size_t offset;
       };
 
-      class string : public vector_ref<const char> {
+      class string : public vector<char> {
       public:
-         string(const char *p) : vector_ref(p, std::strlen(p)) {
+         string(const char *p) : vector(p, std::strlen(p)) {
          }
 
          template<typename C>
-         string(const C &v) : vector_ref(v) {
+         string(const C &v) : vector(v) {
          }
 
          operator std::string() const {
-- 
1.8.1.5



More information about the mesa-dev mailing list