diff --git a/include/pybind11/detail/function_record_pyobject.h b/include/pybind11/detail/function_record_pyobject.h index 13895b96f2..82a574270d 100644 --- a/include/pybind11/detail/function_record_pyobject.h +++ b/include/pybind11/detail/function_record_pyobject.h @@ -13,6 +13,7 @@ #include "common.h" #include +#include PYBIND11_NAMESPACE_BEGIN(PYBIND11_NAMESPACE) PYBIND11_NAMESPACE_BEGIN(detail) @@ -188,9 +189,11 @@ inline PyObject *reduce_ex_impl(PyObject *self, PyObject *, PyObject *) { && PyModule_Check(rec->scope.ptr()) != 0) { object scope_module = get_scope_module(rec->scope); if (scope_module) { - return make_tuple(reinterpret_borrow(PyEval_GetBuiltins())["eval"], - make_tuple(str("__import__('importlib').import_module('") - + scope_module + str("')"))) + auto builtins = reinterpret_borrow(PyEval_GetBuiltins()); + auto builtins_eval = builtins["eval"]; + auto reconstruct_args = make_tuple(str("__import__('importlib').import_module('") + + scope_module + str("')")); + return make_tuple(std::move(builtins_eval), std::move(reconstruct_args)) .release() .ptr(); }