提交 991c794d authored 作者: Hengjean's avatar Hengjean

Corrected bugs. Set Shape check_input to false.

上级 25dec06f
......@@ -213,7 +213,7 @@ class Shape(gof.Op):
# the output variable is %(oname)s.
c_code_and_version = {}
check_input = True
check_input = False
def __hash__(self):
return hash(type(self))
......
......@@ -341,10 +341,10 @@ def get_c_extract(r, name, sub):
def get_c_extract_out(r, name, sub):
"""Wrapper around c_extract_out that initializes py_name from storage."""
if r.owner:
c_extract = r.type.c_extract(name, sub,
c_extract = r.type.c_extract_out(name, sub,
getattr(r.owner.op, 'check_input', True))
else:
c_extract = r.type.c_extract(name, sub, True)
c_extract = r.type.c_extract_out(name, sub, True)
pre = """
py_%(name)s = PyList_GET_ITEM(storage_%(name)s, 0);
......
......@@ -137,7 +137,7 @@ class CLinkerType(CLinkerObject):
"""
raise MethodNotDefined("c_extract", type(self), self.__class__.__name__)
def c_extract_out(self, name, sub):
def c_extract_out(self, name, sub, check_input=True):
"""Optional: C code to extract a PyObject * instance.
Unlike c_extract, c_extract_out has to accept Py_None,
......@@ -155,7 +155,7 @@ class CLinkerType(CLinkerObject):
""" % dict(
name=name,
c_init_code=self.c_init(name, sub),
c_extract_code=self.c_extract(name, sub))
c_extract_code=self.c_extract(name, sub, check_input))
def c_cleanup(self, name, sub):
"""Optional: Return c code to clean up after `c_extract`.
......
......@@ -494,7 +494,7 @@ class TensorType(Type):
else:
check = """
type_num_%(name)s = PyArray_TYPE((PyArrayObject*) py_%(name)s);
"""
""" % dict(sub, name=name, type_num=self.dtype_specs()[2])
return check + """
%(name)s = (PyArrayObject*)(py_%(name)s);
Py_XINCREF(%(name)s);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论