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 WildCard65
Recipients WildCard65
Date 2020-06-25.16:35:27
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1593102927.54.0.130776638406.issue41117@roundup.psfhosted.org>
In-reply-to
Content
When the GC module goes to collect objects (most notably, during Python shutdown), it makes a call to subtract_refs on the GC container.

During this invocation, it creates a local variable "op" who's value is the result of 'FROM_GC(gc)', but when it goes to use the obtained 'traverse' method, it calls FROM_GC(gc) instead of using 'op'.

This, unfortunately, makes it rather difficult to debug "Access Violations" for extension modules for when 'traverse' is 'NULL' as inspecting the variable 'op' in the chosen debugger (for my case: Visual Studio on Windows) is impossible.

This can potentially introduce a micro optimization in the overall runtime of the GC module as it no longer has to invoke the addition instruction (if it does) to construct the first parameter of the 'traverse' call.
History
Date User Action Args
2020-06-25 16:35:27WildCard65setrecipients: + WildCard65
2020-06-25 16:35:27WildCard65setmessageid: <1593102927.54.0.130776638406.issue41117@roundup.psfhosted.org>
2020-06-25 16:35:27WildCard65linkissue41117 messages
2020-06-25 16:35:27WildCard65create