[Python-checkins] cpython: sprinkle some _PyId goodness around moduleobject.c

benjamin.peterson python-checkins at python.org
Fri Apr 25 01:39:26 CEST 2014


http://hg.python.org/cpython/rev/c8d8a6cc5586
changeset:   90455:c8d8a6cc5586
user:        Benjamin Peterson <benjamin at python.org>
date:        Thu Apr 24 19:39:18 2014 -0400
summary:
  sprinkle some _PyId goodness around moduleobject.c

files:
  Objects/moduleobject.c |  28 +++++++++++++++++++---------
  1 files changed, 19 insertions(+), 9 deletions(-)


diff --git a/Objects/moduleobject.c b/Objects/moduleobject.c
--- a/Objects/moduleobject.c
+++ b/Objects/moduleobject.c
@@ -32,20 +32,26 @@
 module_init_dict(PyModuleObject *mod, PyObject *md_dict,
                  PyObject *name, PyObject *doc)
 {
+    _Py_IDENTIFIER(__name__);
+    _Py_IDENTIFIER(__doc__);
+    _Py_IDENTIFIER(__package__);
+    _Py_IDENTIFIER(__loader__);
+    _Py_IDENTIFIER(__spec__);
+    
     if (md_dict == NULL)
         return -1;
     if (doc == NULL)
         doc = Py_None;
 
-    if (PyDict_SetItemString(md_dict, "__name__", name) != 0)
+    if (_PyDict_SetItemId(md_dict, &PyId___name__, name) != 0)
         return -1;
-    if (PyDict_SetItemString(md_dict, "__doc__", doc) != 0)
+    if (_PyDict_SetItemId(md_dict, &PyId___doc__, doc) != 0)
         return -1;
-    if (PyDict_SetItemString(md_dict, "__package__", Py_None) != 0)
+    if (_PyDict_SetItemId(md_dict, &PyId___package__, Py_None) != 0)
         return -1;
-    if (PyDict_SetItemString(md_dict, "__loader__", Py_None) != 0)
+    if (_PyDict_SetItemId(md_dict, &PyId___loader__, Py_None) != 0)
         return -1;
-    if (PyDict_SetItemString(md_dict, "__spec__", Py_None) != 0)
+    if (_PyDict_SetItemId(md_dict, &PyId___spec__, Py_None) != 0)
         return -1;
     if (PyUnicode_CheckExact(name)) {
         Py_INCREF(name);
@@ -184,8 +190,9 @@
         Py_DECREF(n);
     }
     if (module->m_doc != NULL) {
+        _Py_IDENTIFIER(__doc__);
         v = PyUnicode_FromString(module->m_doc);
-        if (v == NULL || PyDict_SetItemString(d, "__doc__", v) != 0) {
+        if (v == NULL || _PyDict_SetItemId(d, &PyId___doc__, v) != 0) {
             Py_XDECREF(v);
             Py_DECREF(m);
             return NULL;
@@ -214,6 +221,7 @@
 PyObject*
 PyModule_GetNameObject(PyObject *m)
 {
+    _Py_IDENTIFIER(__name__);
     PyObject *d;
     PyObject *name;
     if (!PyModule_Check(m)) {
@@ -222,7 +230,7 @@
     }
     d = ((PyModuleObject *)m)->md_dict;
     if (d == NULL ||
-        (name = PyDict_GetItemString(d, "__name__")) == NULL ||
+        (name = _PyDict_GetItemId(d, &PyId___name__)) == NULL ||
         !PyUnicode_Check(name))
     {
         PyErr_SetString(PyExc_SystemError, "nameless module");
@@ -245,6 +253,7 @@
 PyObject*
 PyModule_GetFilenameObject(PyObject *m)
 {
+    _Py_IDENTIFIER(__file__);
     PyObject *d;
     PyObject *fileobj;
     if (!PyModule_Check(m)) {
@@ -253,7 +262,7 @@
     }
     d = ((PyModuleObject *)m)->md_dict;
     if (d == NULL ||
-        (fileobj = PyDict_GetItemString(d, "__file__")) == NULL ||
+        (fileobj = _PyDict_GetItemId(d, &PyId___file__)) == NULL ||
         !PyUnicode_Check(fileobj))
     {
         PyErr_SetString(PyExc_SystemError, "module filename missing");
@@ -420,7 +429,8 @@
         return attr;
     PyErr_Clear();
     if (m->md_dict) {
-        mod_name = PyDict_GetItemString(m->md_dict, "__name__");
+        _Py_IDENTIFIER(__name__);
+        mod_name = _PyDict_GetItemId(m->md_dict, &PyId___name__);
         if (mod_name) {
             PyErr_Format(PyExc_AttributeError,
                         "module '%U' has no attribute '%U'", mod_name, name);

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list