diff --git a/paddle/fluid/pybind/op_function_generator.cc b/paddle/fluid/pybind/op_function_generator.cc index 619f14c30f1b71409aba740405caf9e5079161ff..b2205391a253c35f1c1e2852ddfe1a28666066b9 100644 --- a/paddle/fluid/pybind/op_function_generator.cc +++ b/paddle/fluid/pybind/op_function_generator.cc @@ -268,7 +268,7 @@ static PyObject * %s(PyObject *self, PyObject *args, PyObject *kwargs) imperative::GetCurrentTracer()->TraceOp("%s", ins, outs, attrs, {%s}); PyEval_RestoreThread(tstate); tstate = nullptr; - return %s; + %s } catch(...) { if (tstate) { @@ -488,13 +488,13 @@ std::string GenerateOpFunctionsBody( viwe_input_name, viwe_output_name); } if (outs_num == 0) { - return_str = "Py_None"; + return_str = "Py_INCREF(Py_None);\n return Py_None;"; } else if (outs_num == 1) { - return_str = "MakeReturnPyObject(" + return_str + ")"; + return_str = "return MakeReturnPyObject(" + return_str + ");"; } else { - return_str = "MakeReturnPyObject(" + + return_str = "return MakeReturnPyObject(" + paddle::string::Sprintf(RETURN_TUPLE_TEMPLATE, return_str) + - ")"; + ");"; } std::string function_args = ""; if (input_args == "") {