提交 e812c43a authored 作者: Arnaud Bergeron's avatar Arnaud Bergeron

Destroy the tensor/filter descriptors on error in c_make_*().

上级 edfb8105
...@@ -63,7 +63,11 @@ static int c_make_tensorNd(PyGpuArrayObject *var, cudnnTensorDescriptor_t *desc) ...@@ -63,7 +63,11 @@ static int c_make_tensorNd(PyGpuArrayObject *var, cudnnTensorDescriptor_t *desc)
cudnnGetErrorString(err)); cudnnGetErrorString(err));
return -1; return -1;
} }
return c_set_tensorNd(var, *desc); if (c_set_tensorNd(var, *desc) != 0) {
cudnnDestroyTensorDescriptor(*desc);
return -1;
}
return 0;
} }
static int static int
...@@ -135,7 +139,11 @@ static int c_make_filter(PyGpuArrayObject *var, cudnnFilterDescriptor_t *desc) { ...@@ -135,7 +139,11 @@ static int c_make_filter(PyGpuArrayObject *var, cudnnFilterDescriptor_t *desc) {
cudnnGetErrorString(err)); cudnnGetErrorString(err));
return -1; return -1;
} }
return c_set_filter(var, *desc); if (c_set_filter(var, *desc) != 0) {
cudnnDestroyFilterDescriptor(*desc);
return -1;
}
return 0;
} }
#section init_code #section init_code
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论