diff Python/_warnings.c @ 72926:db4aa878cea2

Port SetAttrString/HasAttrString to SetAttrId/GetAttrId.
author Martin v. Löwis <martin@v.loewis.de>
date Fri, 14 Oct 2011 15:16:45 +0200
parents 7109f31300fb
children 6ae8c68eb0c1
line wrap: on
line diff
--- a/Python/_warnings.c	Fri Oct 14 10:20:37 2011 +0200
+++ b/Python/_warnings.c	Fri Oct 14 15:16:45 2011 +0200
@@ -654,8 +654,9 @@
         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 @@
         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 @@
             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 @@
         }
 
         /* 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;