Issue #19512: Add _PySys_GetObjectId() and _PySys_SetObjectId() functions
This commit is contained in:
parent
b44562b6b9
commit
d67bd45537
|
@ -8,7 +8,10 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
PyAPI_FUNC(PyObject *) PySys_GetObject(const char *);
|
||||
PyAPI_FUNC(PyObject *) _PySys_GetObjectId(_Py_Identifier *key);
|
||||
PyAPI_FUNC(int) PySys_SetObject(const char *, PyObject *);
|
||||
PyAPI_FUNC(int) _PySys_SetObjectId(_Py_Identifier *key, PyObject *);
|
||||
|
||||
PyAPI_FUNC(void) PySys_SetArgv(int, wchar_t **);
|
||||
PyAPI_FUNC(void) PySys_SetArgvEx(int, wchar_t **, int);
|
||||
PyAPI_FUNC(void) PySys_SetPath(const wchar_t *);
|
||||
|
|
|
@ -41,6 +41,16 @@ extern const char *PyWin_DLLVersionString;
|
|||
#include <langinfo.h>
|
||||
#endif
|
||||
|
||||
PyObject *
|
||||
_PySys_GetObjectId(_Py_Identifier *key)
|
||||
{
|
||||
PyThreadState *tstate = PyThreadState_GET();
|
||||
PyObject *sd = tstate->interp->sysdict;
|
||||
if (sd == NULL)
|
||||
return NULL;
|
||||
return _PyDict_GetItemId(sd, key);
|
||||
}
|
||||
|
||||
PyObject *
|
||||
PySys_GetObject(const char *name)
|
||||
{
|
||||
|
@ -51,6 +61,21 @@ PySys_GetObject(const char *name)
|
|||
return PyDict_GetItemString(sd, name);
|
||||
}
|
||||
|
||||
int
|
||||
_PySys_SetObjectId(_Py_Identifier *key, PyObject *v)
|
||||
{
|
||||
PyThreadState *tstate = PyThreadState_GET();
|
||||
PyObject *sd = tstate->interp->sysdict;
|
||||
if (v == NULL) {
|
||||
if (_PyDict_GetItemId(sd, key) == NULL)
|
||||
return 0;
|
||||
else
|
||||
return _PyDict_DelItemId(sd, key);
|
||||
}
|
||||
else
|
||||
return _PyDict_SetItemId(sd, key, v);
|
||||
}
|
||||
|
||||
int
|
||||
PySys_SetObject(const char *name, PyObject *v)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue