• Guido van Rossum's avatar
    Tim pointed out a remaining vulnerability in popitem(): the · e04eaec5
    Guido van Rossum yazdı
    PyTuple_New() could *conceivably* clear the dict, so move the test for
    an empty dict after the tuple allocation.  It means that we waste time
    allocating and deallocating a 2-tuple when the dict is empty, but who
    cares.  It also means that when the dict is empty *and* there's no
    memory to allocate a 2-tuple, we raise MemoryError, not KeyError --
    but that may actually a good idea: if there's no room for a lousy
    2-tuple, what are the chances that there's room for a KeyError
    instance?
    e04eaec5
dictobject.c 32 KB