Skip to content

Commit 104dcc2

Browse files
Replace few new occurrences of PySys_GetObject().
1 parent dc26ec2 commit 104dcc2

File tree

4 files changed

+15
-20
lines changed

4 files changed

+15
-20
lines changed

Objects/moduleobject.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1001,13 +1001,18 @@ _Py_module_getattro_impl(PyModuleObject *m, PyObject *name, int suppress)
10011001
}
10021002
int is_possibly_shadowing_stdlib = 0;
10031003
if (is_possibly_shadowing) {
1004-
PyObject *stdlib_modules = PySys_GetObject("stdlib_module_names");
1004+
PyObject *stdlib_modules;
1005+
if (PySys_GetOptionalAttrString("stdlib_module_names", &stdlib_modules) < 0) {
1006+
goto done;
1007+
}
10051008
if (stdlib_modules && PyAnySet_Check(stdlib_modules)) {
10061009
is_possibly_shadowing_stdlib = PySet_Contains(stdlib_modules, mod_name);
10071010
if (is_possibly_shadowing_stdlib < 0) {
1011+
Py_DECREF(stdlib_modules);
10081012
goto done;
10091013
}
10101014
}
1015+
Py_XDECREF(stdlib_modules);
10111016
}
10121017

10131018
if (is_possibly_shadowing_stdlib) {

Python/ceval.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2765,13 +2765,18 @@ _PyEval_ImportFrom(PyThreadState *tstate, PyObject *v, PyObject *name)
27652765
}
27662766
int is_possibly_shadowing_stdlib = 0;
27672767
if (is_possibly_shadowing) {
2768-
PyObject *stdlib_modules = PySys_GetObject("stdlib_module_names");
2768+
PyObject *stdlib_modules;
2769+
if (PySys_GetOptionalAttrString("stdlib_module_names", &stdlib_modules) < 0) {
2770+
goto done;
2771+
}
27692772
if (stdlib_modules && PyAnySet_Check(stdlib_modules)) {
27702773
is_possibly_shadowing_stdlib = PySet_Contains(stdlib_modules, mod_name_or_unknown);
27712774
if (is_possibly_shadowing_stdlib < 0) {
2775+
Py_DECREF(stdlib_modules);
27722776
goto done;
27732777
}
27742778
}
2779+
Py_XDECREF(stdlib_modules);
27752780
}
27762781

27772782
if (origin == NULL && PyModule_Check(v)) {

Python/initconfig.c

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4091,22 +4091,10 @@ _PyConfig_CreateXOptionsDict(const PyConfig *config)
40914091
}
40924092

40934093

4094-
static PyObject*
4095-
config_get_sys(const char *name)
4096-
{
4097-
PyObject *value = PySys_GetObject(name);
4098-
if (value == NULL) {
4099-
PyErr_Format(PyExc_RuntimeError, "lost sys.%s", name);
4100-
return NULL;
4101-
}
4102-
return Py_NewRef(value);
4103-
}
4104-
4105-
41064094
static int
41074095
config_get_sys_write_bytecode(const PyConfig *config, int *value)
41084096
{
4109-
PyObject *attr = config_get_sys("dont_write_bytecode");
4097+
PyObject *attr = PySys_GetAttrString("dont_write_bytecode");
41104098
if (attr == NULL) {
41114099
return -1;
41124100
}
@@ -4127,7 +4115,7 @@ config_get(const PyConfig *config, const PyConfigSpec *spec,
41274115
{
41284116
if (use_sys) {
41294117
if (spec->sys.attr != NULL) {
4130-
return config_get_sys(spec->sys.attr);
4118+
return PySys_GetAttrString(spec->sys.attr);
41314119
}
41324120

41334121
if (strcmp(spec->name, "write_bytecode") == 0) {

Python/sysmodule.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3230,11 +3230,8 @@ sys_set_flag(PyObject *flags, Py_ssize_t pos, PyObject *value)
32303230
int
32313231
_PySys_SetFlagObj(Py_ssize_t pos, PyObject *value)
32323232
{
3233-
PyObject *flags = Py_XNewRef(PySys_GetObject("flags"));
3233+
PyObject *flags = PySys_GetAttrString("flags");
32343234
if (flags == NULL) {
3235-
if (!PyErr_Occurred()) {
3236-
PyErr_SetString(PyExc_RuntimeError, "lost sys.flags");
3237-
}
32383235
return -1;
32393236
}
32403237

0 commit comments

Comments
 (0)