From d2fdd1fedf6b9dc785cf5025b548a989faed089a Mon Sep 17 00:00:00 2001 From: Eric Snow Date: Fri, 15 Mar 2019 17:47:43 -0600 Subject: bpo-36124: Add PyInterpreterState.dict. (gh-12132) --- Python/pystate.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'Python') diff --git a/Python/pystate.c b/Python/pystate.c index cdf5a698cb..6a2dc102ec 100644 --- a/Python/pystate.c +++ b/Python/pystate.c @@ -224,6 +224,7 @@ PyInterpreterState_Clear(PyInterpreterState *interp) Py_CLEAR(interp->builtins_copy); Py_CLEAR(interp->importlib); Py_CLEAR(interp->import_func); + Py_CLEAR(interp->dict); #ifdef HAVE_FORK Py_CLEAR(interp->before_forkers); Py_CLEAR(interp->after_forkers_parent); @@ -462,6 +463,19 @@ _PyInterpreterState_GetMainModule(PyInterpreterState *interp) return PyMapping_GetItemString(interp->modules, "__main__"); } +PyObject * +PyInterpreterState_GetDict(PyInterpreterState *interp) +{ + if (interp->dict == NULL) { + interp->dict = PyDict_New(); + if (interp->dict == NULL) { + PyErr_Clear(); + } + } + /* Returning NULL means no per-interpreter dict is available. */ + return interp->dict; +} + /* Default implementation for _PyThreadState_GetFrame */ static struct _frame * threadstate_getframe(PyThreadState *self) -- cgit v1.2.1