提交 6cc74022 authored 作者: James Bergstra's avatar James Bergstra

CLinker - no outputs or updates with error on play

上级 8bfbbedf
...@@ -778,6 +778,8 @@ CLazyLinker_call(PyObject *_self, PyObject *args, PyObject *kwds) ...@@ -778,6 +778,8 @@ CLazyLinker_call(PyObject *_self, PyObject *args, PyObject *kwds)
err = lazy_rec_eval(self, self->output_vars[i], one, zero); err = lazy_rec_eval(self, self->output_vars[i], one, zero);
} }
if (!err)
{
// save references to outputs prior to updating storage containers // save references to outputs prior to updating storage containers
if ((call_i + 1) == n_calls) if ((call_i + 1) == n_calls)
{ {
...@@ -798,10 +800,9 @@ CLazyLinker_call(PyObject *_self, PyObject *args, PyObject *kwds) ...@@ -798,10 +800,9 @@ CLazyLinker_call(PyObject *_self, PyObject *args, PyObject *kwds)
Py_ssize_t dst = self->update_storage[2*i]; Py_ssize_t dst = self->update_storage[2*i];
Py_ssize_t src = self->update_storage[2*i+1]; Py_ssize_t src = self->update_storage[2*i+1];
PyObject* tmp = PyList_GetItem(self->var_value_cells[src], 0); PyObject* tmp = PyList_GetItem(self->var_value_cells[src], 0);
Py_INCREF(Py_None);
Py_INCREF(tmp); Py_INCREF(tmp);
PyList_SetItem(self->var_value_cells[dst], 0, tmp); PyList_SetItem(self->var_value_cells[dst], 0, tmp);
PyList_SetItem(self->var_value_cells[src], 0, Py_None); }
} }
} }
Py_DECREF(one); Py_DECREF(one);
...@@ -885,7 +886,7 @@ static PyTypeObject lazylinker_ext_CLazyLinkerType = { ...@@ -885,7 +886,7 @@ static PyTypeObject lazylinker_ext_CLazyLinkerType = {
static PyObject * get_version(PyObject *dummy, PyObject *args) static PyObject * get_version(PyObject *dummy, PyObject *args)
{ {
PyObject *result = PyFloat_FromDouble(0.11); PyObject *result = PyFloat_FromDouble(0.12);
return result; return result;
} }
......
...@@ -13,7 +13,7 @@ if config.compiledir not in sys.path: ...@@ -13,7 +13,7 @@ if config.compiledir not in sys.path:
sys.path.append(config.compiledir) sys.path.append(config.compiledir)
force_compile = False force_compile = False
version = 0.11 # must match constant returned in function get_version() version = 0.12 # must match constant returned in function get_version()
try: try:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论