This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Oren Milman
Recipients Oren Milman
Date 2017-08-12.10:37:01
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1502534222.01.0.165858988283.issue31187@psf.upfronthosting.co.za>
In-reply-to
Content
in Objects/object.c, Py_ReprEnter() does the following:
    - try to retrieve the Py_Repr list from the thread-state dict.
    - in case the list is not in the dict, add it to the dict as an empty list.
    - check whether the received object is in the Py_Repr list, even in case the
      list was just created, and guaranteed to be empty.


I propose to put this check inside an else clause, so that it wouldn't take
place in case the list is guaranteed to be empty, i.e.:
    list = _PyDict_GetItemId(dict, &PyId_Py_Repr);
    if (list == NULL) {
        list = PyList_New(0);
        ...
    }
    else {
        i = PyList_GET_SIZE(list);
        while (--i >= 0) {
            if (PyList_GET_ITEM(list, i) == obj)
                return 1;
        }
    }

I ran the test suite, and it seems that this change doesn't break anything, so
I would be happy to open a PR for it.
History
Date User Action Args
2017-08-12 10:37:02Oren Milmansetrecipients: + Oren Milman
2017-08-12 10:37:02Oren Milmansetmessageid: <1502534222.01.0.165858988283.issue31187@psf.upfronthosting.co.za>
2017-08-12 10:37:01Oren Milmanlinkissue31187 messages
2017-08-12 10:37:01Oren Milmancreate