Port SetAttrString/HasAttrString to SetAttrId/GetAttrId.
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 @@
         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;