提交 9e84325c authored 作者: Frederic's avatar Frederic

MakeVector.c_code() reuse previous output.

This also fix a memory leak when Theano gc is disabled.
上级 69544d41
...@@ -594,7 +594,10 @@ class MakeVector(T.Op): ...@@ -594,7 +594,10 @@ class MakeVector(T.Op):
ret = """ ret = """
npy_intp dims[1]; npy_intp dims[1];
dims[0] = %(out_shape)s; dims[0] = %(out_shape)s;
if(!%(out)s || PyArray_DIMS(%(out)s)[0] == %(out_shape)s){
Py_XDECREF(%(out)s);
%(out)s = (PyArrayObject*)PyArray_EMPTY(1, dims, %(out_dtype)s, 0); %(out)s = (PyArrayObject*)PyArray_EMPTY(1, dims, %(out_dtype)s, 0);
}
""" % locals() """ % locals()
for idx, i in enumerate(inp): for idx, i in enumerate(inp):
ret += """ ret += """
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论