• Neal Norwitz's avatar
    Variation of patch # 1624059 to speed up checking if an object is a subclass · ee3a1b52
    Neal Norwitz yazdı
    of some of the common builtin types.
    
    Use a bit in tp_flags for each common builtin type.  Check the bit
    to determine if any instance is a subclass of these common types.
    The check avoids a function call and O(n) search of the base classes.
    The check is done in the various Py*_Check macros rather than calling
    PyType_IsSubtype().
    
    All the bits are set in tp_flags when the type is declared
    in the Objects/*object.c files because PyType_Ready() is not called
    for all the types.  Should PyType_Ready() be called for all types?
    If so and the change is made, the changes to the Objects/*object.c files
    can be reverted (remove setting the tp_flags).  Objects/typeobject.c
    would also have to be modified to add conditions
    for Py*_CheckExact() in addition to each the PyType_IsSubtype check.
    ee3a1b52
listobject.c 69.4 KB