diff --git a/pyopencl/cffi_cl.py b/pyopencl/cffi_cl.py index 8f8ce993535a7877bed7f9a619babfd049ac889b..12dd114cd5c23ad3ae26bbbe4a7177ac3cf63b19 100644 --- a/pyopencl/cffi_cl.py +++ b/pyopencl/cffi_cl.py @@ -358,11 +358,12 @@ class Kernel(_Common): def set_arg(self, arg_index, arg): if arg is None: _handle_error(_lib.kernel__set_arg_null(self.ptr, arg_index)) - elif isinstance(arg, MemoryObject): + elif isinstance(arg, MemoryObjectHolder): _handle_error(_lib.kernel__set_arg_mem(self.ptr, arg_index, arg.ptr)) elif isinstance(arg, Sampler): _handle_error(_lib.kernel__set_arg_sampler(self.ptr, arg_index, arg.ptr)) else: + # todo: how to handle args other than numpy arrays? c_buf, size = _c_buffer_from_obj(arg) _handle_error(_lib.kernel__set_arg_buf(self.ptr, arg_index, c_buf, size)) diff --git a/src/c_wrapper/wrap_cl.cpp b/src/c_wrapper/wrap_cl.cpp index 19bd9574295e042ce86ff2e8fba216a0408c5585..c427d3f1029bfed5a3b9c3c026cecb44c9281db7 100644 --- a/src/c_wrapper/wrap_cl.cpp +++ b/src/c_wrapper/wrap_cl.cpp @@ -2924,7 +2924,7 @@ void _free2(void **p, uint32_t size) { } ::error *kernel__set_arg_mem(void *ptr_kernel, cl_uint arg_index, void *ptr_mem) { - pyopencl::memory_object *mem = static_cast<pyopencl::memory_object*>(ptr_mem); + pyopencl::memory_object_holder *mem = static_cast<pyopencl::memory_object_holder*>(ptr_mem); C_HANDLE_ERROR(static_cast<pyopencl::kernel*>(ptr_kernel)->set_arg_mem(arg_index, *mem);); return 0; }