diff --git a/doc/_templates/layout.html b/doc/_templates/layout.html index 0fed238faf1fc27457ad8672017577f055e7edf0..400e7ec1d49677537aff6bf744e2803ef5c01e9e 100644 --- a/doc/_templates/layout.html +++ b/doc/_templates/layout.html @@ -1,2 +1,2 @@ {% extends "!layout.html" %} -{% set css_files = css_files + ['_static/akdoc.css']%} +{% set bootswatch_css_custom = ['_static/akdoc.css']%} diff --git a/pyopencl/compyte b/pyopencl/compyte index c5e80622ee2dfd129d56886098a5ad532c54cf09..2293b43ecfadfd4ea2adc9266c8ec18f2ae0ce11 160000 --- a/pyopencl/compyte +++ b/pyopencl/compyte @@ -1 +1 @@ -Subproject commit c5e80622ee2dfd129d56886098a5ad532c54cf09 +Subproject commit 2293b43ecfadfd4ea2adc9266c8ec18f2ae0ce11 diff --git a/src/wrapper/wrap_cl.hpp b/src/wrapper/wrap_cl.hpp index 5eb891645bca50485fe0a80a3c674daef2e35681..af524fd9b7bdb3d984352ce10c2fb63227ad1a88 100644 --- a/src/wrapper/wrap_cl.hpp +++ b/src/wrapper/wrap_cl.hpp @@ -2420,6 +2420,8 @@ namespace pyopencl std::auto_ptr<py_buffer_wrapper> retained_buf_obj; if (buffer.ptr() != Py_None) { + retained_buf_obj = std::auto_ptr<py_buffer_wrapper>(new py_buffer_wrapper); + int py_buf_flags = PyBUF_ANY_CONTIGUOUS; if ((flags & CL_MEM_USE_HOST_PTR) && ((flags & CL_MEM_READ_WRITE) @@ -2564,6 +2566,8 @@ namespace pyopencl std::auto_ptr<py_buffer_wrapper> retained_buf_obj; if (buffer.ptr() != Py_None) { + retained_buf_obj = std::auto_ptr<py_buffer_wrapper>(new py_buffer_wrapper); + int py_buf_flags = PyBUF_ANY_CONTIGUOUS; if ((flags & CL_MEM_USE_HOST_PTR) && ((flags & CL_MEM_READ_WRITE) @@ -3586,7 +3590,16 @@ namespace pyopencl #ifdef PYOPENCL_USE_NEW_BUFFER_INTERFACE py_buffer_wrapper buf_wrapper; - buf_wrapper.get(py_buffer.ptr(), PyBUF_ANY_CONTIGUOUS); + try + { + buf_wrapper.get(py_buffer.ptr(), PyBUF_ANY_CONTIGUOUS); + } + catch (py::error_already_set) + { + PyErr_Clear(); + throw error("Kernel.set_arg", CL_INVALID_VALUE, + "invalid kernel argument"); + } buf = buf_wrapper.m_buf.buf; len = buf_wrapper.m_buf.len; @@ -3889,7 +3902,7 @@ namespace pyopencl class gl_buffer : public memory_object { public: - gl_buffer(cl_mem mem, bool retain, py::object *hostbuf=0) + gl_buffer(cl_mem mem, bool retain, hostbuf_t hostbuf=hostbuf_t()) : memory_object(mem, retain, hostbuf) { } }; @@ -3900,7 +3913,7 @@ namespace pyopencl class gl_renderbuffer : public memory_object { public: - gl_renderbuffer(cl_mem mem, bool retain, py::object *hostbuf=0) + gl_renderbuffer(cl_mem mem, bool retain, hostbuf_t hostbuf=hostbuf_t()) : memory_object(mem, retain, hostbuf) { } }; @@ -3911,7 +3924,7 @@ namespace pyopencl class gl_texture : public image { public: - gl_texture(cl_mem mem, bool retain, py::object *hostbuf=0) + gl_texture(cl_mem mem, bool retain, hostbuf_t hostbuf=hostbuf_t()) : image(mem, retain, hostbuf) { }