From 976a8a3962119138d35a82c59fbc3ab7fef820b6 Mon Sep 17 00:00:00 2001
From: Yichao Yu <yyc1992@gmail.com>
Date: Fri, 23 May 2014 12:38:59 -0400
Subject: [PATCH] clean up

---
 src/c_wrapper/utils.h     | 41 +++++-----------------------
 src/c_wrapper/wrap_cl.cpp | 56 +++++----------------------------------
 2 files changed, 14 insertions(+), 83 deletions(-)

diff --git a/src/c_wrapper/utils.h b/src/c_wrapper/utils.h
index 8b687b65..78e651c4 100644
--- a/src/c_wrapper/utils.h
+++ b/src/c_wrapper/utils.h
@@ -67,30 +67,6 @@ public:
     }
 };
 
-template<>
-class pyopencl_buf<void> : public std::unique_ptr<void, _D<void> > {
-    size_t m_len;
-public:
-    pyopencl_buf(size_t len) :
-        std::unique_ptr<void, _D<void> >((len ? malloc(len) : NULL)),
-        m_len(len)
-    {
-    }
-    inline size_t
-    len() const
-    {
-        return m_len;
-    }
-    inline void
-    resize(size_t len)
-    {
-        if (len == m_len)
-            return;
-        m_len = len;
-        this->reset(realloc(this->release(), len));
-    }
-};
-
 namespace pyopencl {
 
 template<typename T>
@@ -100,21 +76,18 @@ cast_bool(const T &v)
     return v ? CL_TRUE : CL_FALSE;
 }
 
-class noncopyable {
-    // non-copyable
+struct clbase {
 private:
-    noncopyable(noncopyable const &) = delete;
-    noncopyable &operator=(noncopyable const &) = delete;
+    // non-copyable
+    clbase(const clbase&) = delete;
+    clbase &operator=(const clbase&) = delete;
+    bool operator==(clbase const &other) const = delete;
+    bool operator!=(clbase const &other) const = delete;
 public:
-    noncopyable() = default;
-};
-
-struct clbase : public noncopyable {
+    clbase() = default;
     virtual ~clbase() = default;
     virtual intptr_t intptr() const = 0;
     virtual generic_info get_info(cl_uint) const = 0;
-    bool operator==(clbase const &other) const = delete;
-    bool operator!=(clbase const &other) const = delete;
 };
 
 template<typename CLType>
diff --git a/src/c_wrapper/wrap_cl.cpp b/src/c_wrapper/wrap_cl.cpp
index 5021f5a1..9dbc39b4 100644
--- a/src/c_wrapper/wrap_cl.cpp
+++ b/src/c_wrapper/wrap_cl.cpp
@@ -2,7 +2,6 @@
 #include "utils.h"
 
 #include <stdlib.h>
-#include <vector>
 
 // {{{ extension function pointers
 
@@ -112,15 +111,14 @@ inline pyopencl_buf<cl_device_id>
 platform::get_devices(cl_device_type devtype)
 {
     cl_uint num_devices = 0;
-    print_call_trace("clGetDeviceIDs");
-    cl_int status_code;
-    status_code = clGetDeviceIDs(data(), devtype, 0, 0, &num_devices);
-    if (status_code == CL_DEVICE_NOT_FOUND) {
+    try {
+        pyopencl_call_guarded(clGetDeviceIDs,
+                              data(), devtype, 0, NULL, &num_devices);
+    } catch (const pyopencl::error &e) {
+        if (e.code() != CL_DEVICE_NOT_FOUND)
+            throw e;
         num_devices = 0;
-    } else if (status_code != CL_SUCCESS) {
-        throw pyopencl::error("clGetDeviceIDs", status_code);
     }
-
     pyopencl_buf<cl_device_id> devices(num_devices);
     if (num_devices == 0)
         return devices;
@@ -617,11 +615,6 @@ public:
             pyopencl_call_guarded(clRetainCommandQueue, q);
         }
     }
-    command_queue(command_queue const &src)
-        : clobj(src.data())
-    {
-        pyopencl_call_guarded(clRetainCommandQueue, data());
-    }
     command_queue(const context *ctx, const device *py_dev=0,
                   cl_command_queue_properties props=0)
         : clobj(create_command_queue(ctx, py_dev, props))
@@ -697,10 +690,6 @@ public:
             pyopencl_call_guarded(clRetainEvent, event);
         }
     }
-    event(event const &src) : clobj(src.data())
-    {
-        pyopencl_call_guarded(clRetainEvent, data());
-    }
     ~event()
     {
         pyopencl_call_guarded_cleanup(clReleaseEvent, data());
@@ -836,17 +825,6 @@ public:
             m_hostbuf = hostbuf;
         }
     }
-    memory_object(memory_object const &src)
-        : m_valid(true), memory_object_holder(src.data()),
-          m_hostbuf(src.m_hostbuf)
-    {
-        pyopencl_call_guarded(clRetainMemObject, data());
-    }
-    memory_object(memory_object_holder const &src)
-        : m_valid(true), memory_object_holder(src.data())
-    {
-        pyopencl_call_guarded(clRetainMemObject, data());
-    }
     void
     release()
     {
@@ -1799,21 +1777,7 @@ create_program_with_binary(context *ctx, cl_uint num_devices,
 
 // }}}
 
-
-  // {{{ kernel
-
-class local_memory {
-private:
-    size_t m_size;
-public:
-    local_memory(size_t size) : m_size(size)
-    {}
-    size_t
-    size() const
-    {
-        return m_size;
-    }
-};
+// {{{ kernel
 
 class kernel : public clobj<cl_kernel> {
 private:
@@ -1850,12 +1814,6 @@ public:
                               sizeof(cl_mem), &mem->data());
     }
     void
-    set_arg_local(cl_uint arg_index, const local_memory *loc)
-    {
-        pyopencl_call_guarded(clSetKernelArg, data(), arg_index,
-                              loc->size(), NULL);
-    }
-    void
     set_arg_sampler(cl_uint arg_index, const sampler *smp)
     {
         pyopencl_call_guarded(clSetKernelArg, data(), arg_index,
-- 
GitLab