[Python-checkins] bpo-45061: Detect refcount bug on empty string singleton (GH-28504)
Marc-Andre Lemburg
mal at egenix.com
Wed Sep 22 05:26:13 EDT 2021
On 22.09.2021 11:24, Victor Stinner wrote:
> Hi,
>
> I'm no longer sure why I did this change. So I just reverted it:
> https://github.com/python/cpython/pull/28516/files
Great :-) Thanks, Victor !
> Victor
>
> On Wed, Sep 22, 2021 at 9:44 AM Marc-Andre Lemburg <mal at egenix.com> wrote:
>>
>> On 21.09.2021 23:43, vstinner wrote:
>>> bpo-45061: Detect refcount bug on empty string singleton (GH-28504)
>>>
>>> Detect refcount bugs in C extensions when the empty Unicode string
>>> singleton is destroyed by mistake.
>>>
>>> * Move forward declarations to the top of unicodeobject.c.
>>> * Simplifiy unicode_is_singleton().
>>>
>>> @@ -1982,11 +1994,8 @@ unicode_is_singleton(PyObject *unicode)
>>> if (unicode == state->empty_string) {
>>> return 1;
>>> }
>>> - PyASCIIObject *ascii = (PyASCIIObject *)unicode;
>>> - if (ascii->state.kind != PyUnicode_WCHAR_KIND && ascii->length == 1)
>>> - {
>>> - Py_UCS4 ch = PyUnicode_READ_CHAR(unicode, 0);
>>> - if (ch < 256 && state->latin1[ch] == unicode) {
>>> + for (Py_ssize_t i = 0; i < 256; i++) {
>>> + if (unicode == state->latin1[i]) {
>>> return 1;
>>> }
>>> }
>>
>> Why are you replacing a single pointer comparison with a loop over
>> 256 comparisons ?
>>
>> That doesn't strike me as a simplification. It's just takes longer.
>>
>> --
>> Marc-Andre Lemburg
>> eGenix.com
>>
>> Professional Python Services directly from the Experts (#1, Sep 22 2021)
>>>>> Python Projects, Coaching and Support ... https://www.egenix.com/
>>>>> Python Product Development ... https://consulting.egenix.com/
>> ________________________________________________________________________
>>
>> ::: We implement business ideas - efficiently in both time and costs :::
>>
>> eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48
>> D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
>> Registered at Amtsgericht Duesseldorf: HRB 46611
>> https://www.egenix.com/company/contact/
>> https://www.malemburg.com/
>>
>
>
--
Marc-Andre Lemburg
eGenix.com
Professional Python Services directly from the Experts (#1, Sep 22 2021)
>>> Python Projects, Coaching and Support ... https://www.egenix.com/
>>> Python Product Development ... https://consulting.egenix.com/
________________________________________________________________________
::: We implement business ideas - efficiently in both time and costs :::
eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48
D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
Registered at Amtsgericht Duesseldorf: HRB 46611
https://www.egenix.com/company/contact/
https://www.malemburg.com/
More information about the Python-checkins
mailing list