提交 4fda9384 authored 作者: Frederic Bastien's avatar Frederic Bastien

fix new commit on variable length array fix for windows.

上级 8576a61d
...@@ -879,12 +879,14 @@ CudaNdarray_TakeFrom(CudaNdarray * self, PyObject *args){ ...@@ -879,12 +879,14 @@ CudaNdarray_TakeFrom(CudaNdarray * self, PyObject *args){
if (! clipmode){ if (! clipmode){
Py_DECREF(indices_obj); Py_DECREF(indices_obj);
Py_DECREF(out); Py_DECREF(out);
free(dims);
return NULL; return NULL;
} }
if (strcmp(clipmode, "raise") != 0) { if (strcmp(clipmode, "raise") != 0) {
PyErr_SetString(PyExc_NotImplementedError,"CudaNdarray_TakeFrom: only the raise mode is currently supported"); PyErr_SetString(PyExc_NotImplementedError,"CudaNdarray_TakeFrom: only the raise mode is currently supported");
Py_DECREF(indices_obj); Py_DECREF(indices_obj);
Py_DECREF(out); Py_DECREF(out);
free(dims);
return NULL; return NULL;
} }
Py_DECREF(clipmode_obj); Py_DECREF(clipmode_obj);
...@@ -903,6 +905,7 @@ CudaNdarray_TakeFrom(CudaNdarray * self, PyObject *args){ ...@@ -903,6 +905,7 @@ CudaNdarray_TakeFrom(CudaNdarray * self, PyObject *args){
if (!err_var) { // PyErr set by device_malloc if (!err_var) { // PyErr set by device_malloc
Py_DECREF(indices_obj); Py_DECREF(indices_obj);
Py_DECREF(out); Py_DECREF(out);
free(dims);
return NULL; return NULL;
} }
cudaError_t err = cudaMemset((void*)err_var, 0, sizeof(int)); cudaError_t err = cudaMemset((void*)err_var, 0, sizeof(int));
...@@ -912,10 +915,11 @@ CudaNdarray_TakeFrom(CudaNdarray * self, PyObject *args){ ...@@ -912,10 +915,11 @@ CudaNdarray_TakeFrom(CudaNdarray * self, PyObject *args){
cudaGetErrorString(err)); cudaGetErrorString(err));
Py_DECREF(indices_obj); Py_DECREF(indices_obj);
Py_DECREF(out); Py_DECREF(out);
free(dims);
return NULL; return NULL;
} }
} }
free(dims);
dim3 n_blocks(std::min(CudaNdarray_HOST_DIMS(out)[0],65535),1,1); dim3 n_blocks(std::min(CudaNdarray_HOST_DIMS(out)[0],65535),1,1);
switch (self->nd) { switch (self->nd) {
case 1: case 1:
...@@ -998,6 +1002,7 @@ CudaNdarray_TakeFrom(CudaNdarray * self, PyObject *args){ ...@@ -998,6 +1002,7 @@ CudaNdarray_TakeFrom(CudaNdarray * self, PyObject *args){
" dimensions are currently supported"); " dimensions are currently supported");
} }
free(dims);
CNDA_THREAD_SYNC; CNDA_THREAD_SYNC;
cudaError_t err = cudaGetLastError(); cudaError_t err = cudaGetLastError();
if (cudaSuccess != err) { if (cudaSuccess != err) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论