]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Simplify the code of get_attrib_from_keywords somewhat.
authorEli Bendersky <eliben@gmail.com>
Mon, 22 Apr 2013 12:52:16 +0000 (05:52 -0700)
committerEli Bendersky <eliben@gmail.com>
Mon, 22 Apr 2013 12:52:16 +0000 (05:52 -0700)
Modules/_elementtree.c

index b05a39ff68cf835a50d7565bbade20b82324c763..5a1ed8c284d230329fa522d1e654ebfd942993e4 100644 (file)
@@ -278,29 +278,25 @@ element_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
 static PyObject*
 get_attrib_from_keywords(PyObject *kwds)
 {
-    PyObject *attrib_str = PyUnicode_FromString("attrib");
-    PyObject *attrib = PyDict_GetItem(kwds, attrib_str);
+    const char* ATTRIB_KEY = "attrib";
+    PyObject *attrib = PyDict_GetItemString(kwds, ATTRIB_KEY);
 
     if (attrib) {
         /* If attrib was found in kwds, copy its value and remove it from
          * kwds
          */
         if (!PyDict_Check(attrib)) {
-            Py_DECREF(attrib_str);
             PyErr_Format(PyExc_TypeError, "attrib must be dict, not %.100s",
                          Py_TYPE(attrib)->tp_name);
             return NULL;
         }
         attrib = PyDict_Copy(attrib);
-        PyDict_DelItem(kwds, attrib_str);
+        PyDict_DelItemString(kwds, ATTRIB_KEY);
     } else {
         attrib = PyDict_New();
     }
-
-    Py_DECREF(attrib_str);
-
-    if (attrib)
-        PyDict_Update(attrib, kwds);
+    assert(attrib);
+    PyDict_Update(attrib, kwds);
     return attrib;
 }