summaryrefslogtreecommitdiffstats
path: root/Python/_warnings.c
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2011-10-14 13:16:45 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2011-10-14 13:16:45 (GMT)
commit1c67dd9b154d57baf58ed081767e199af1e84923 (patch)
tree0d6c95e99785f9b8381c808a5cb433adf319eda5 /Python/_warnings.c
parentbd928fef428e48084ff29ece0e21d07ad86d0793 (diff)
downloadcpython-1c67dd9b154d57baf58ed081767e199af1e84923.zip
cpython-1c67dd9b154d57baf58ed081767e199af1e84923.tar.gz
cpython-1c67dd9b154d57baf58ed081767e199af1e84923.tar.bz2
Port SetAttrString/HasAttrString to SetAttrId/GetAttrId.
Diffstat (limited to 'Python/_warnings.c')
-rw-r--r--Python/_warnings.c32
1 files changed, 15 insertions, 17 deletions
diff --git a/Python/_warnings.c b/Python/_warnings.c
index 6fcc128..5846426 100644
--- a/Python/_warnings.c
+++ b/Python/_warnings.c
@@ -654,8 +654,9 @@ warnings_warn_explicit(PyObject *self, PyObject *args, PyObject *kwds)
return NULL;
if (module_globals) {
- static PyObject *get_source_name = NULL;
- static PyObject *splitlines_name = NULL;
+ _Py_IDENTIFIER(get_source);
+ _Py_IDENTIFIER(splitlines);
+ PyObject *tmp;
PyObject *loader;
PyObject *module_name;
PyObject *source;
@@ -663,16 +664,12 @@ warnings_warn_explicit(PyObject *self, PyObject *args, PyObject *kwds)
PyObject *source_line;
PyObject *returned;
- if (get_source_name == NULL) {
- get_source_name = PyUnicode_InternFromString("get_source");
- if (!get_source_name)
- return NULL;
- }
- if (splitlines_name == NULL) {
- splitlines_name = PyUnicode_InternFromString("splitlines");
- if (!splitlines_name)
- return NULL;
- }
+ if ((tmp = _PyUnicode_FromId(&PyId_get_source)) == NULL)
+ return NULL;
+ Py_DECREF(tmp);
+ if ((tmp = _PyUnicode_FromId(&PyId_splitlines)) == NULL)
+ return NULL;
+ Py_DECREF(tmp);
/* Check/get the requisite pieces needed for the loader. */
loader = PyDict_GetItemString(module_globals, "__loader__");
@@ -682,11 +679,11 @@ warnings_warn_explicit(PyObject *self, PyObject *args, PyObject *kwds)
goto standard_call;
/* Make sure the loader implements the optional get_source() method. */
- if (!PyObject_HasAttrString(loader, "get_source"))
+ if (!_PyObject_HasAttrId(loader, &PyId_get_source))
goto standard_call;
/* Call get_source() to get the source code. */
- source = PyObject_CallMethodObjArgs(loader, get_source_name,
- module_name, NULL);
+ source = PyObject_CallMethodObjArgs(loader, PyId_get_source.object,
+ module_name, NULL);
if (!source)
return NULL;
else if (source == Py_None) {
@@ -695,8 +692,9 @@ warnings_warn_explicit(PyObject *self, PyObject *args, PyObject *kwds)
}
/* Split the source into lines. */
- source_list = PyObject_CallMethodObjArgs(source, splitlines_name,
- NULL);
+ source_list = PyObject_CallMethodObjArgs(source,
+ PyId_splitlines.object,
+ NULL);
Py_DECREF(source);
if (!source_list)
return NULL;