]> granicus.if.org Git - python/commitdiff
#4930: Slightly cleaner (and faster) code in type creation:
authorAmaury Forgeot d'Arc <amauryfa@gmail.com>
Sat, 17 Jan 2009 17:11:50 +0000 (17:11 +0000)
committerAmaury Forgeot d'Arc <amauryfa@gmail.com>
Sat, 17 Jan 2009 17:11:50 +0000 (17:11 +0000)
compare slots by address, not by name.

Objects/typeobject.c

index 8242242d1976c62627619493ff46e35b33f524b9..5e9073d92371361f8b36e40803f7156efb9e14a4 100644 (file)
@@ -6114,7 +6114,7 @@ update_one_slot(PyTypeObject *type, slotdef *p)
                else if (Py_TYPE(descr) == &PyCFunction_Type &&
                         PyCFunction_GET_FUNCTION(descr) ==
                         (PyCFunction)tp_new_wrapper &&
-                        strcmp(p->name, "__new__") == 0)
+                        ptr == (void**)&type->tp_new)
                {
                        /* The __new__ wrapper is not a wrapper descriptor,
                           so must be special-cased differently.
@@ -6134,7 +6134,7 @@ update_one_slot(PyTypeObject *type, slotdef *p)
                           point out a bug in this reasoning a beer. */
                }
                else if (descr == Py_None &&
-                        strcmp(p->name, "__hash__") == 0) {
+                        ptr == (void**)&type->tp_hash) {
                        /* We specifically allow __hash__ to be set to None
                           to prevent inheritance of the default
                           implementation from object.__hash__ */