| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
Some tp_dealloc methods of GC types didn't call PyObject_GC_UnTrack().
There was a problem hiding this comment.
LGTM (besides two details).
But this touches delicate things, and I think this PR needs a review of yet one core developer.
Sorry, something went wrong.
| static void | ||
| lru_cache_dealloc(lru_cache_object *obj) | ||
| { | ||
| _PyObject_GC_UNTRACK(obj); |
There was a problem hiding this comment.
_PyObject_GC_UNTRACK() shouldn't be used in types that can be subclassed because it can't be called repeatedly. Otherwise the subclass's destructor would need to call _PyObject_GC_TRACK() before calling parent's destructor:
static void
lru_cache_subclass_dealloc(lru_cache_subclass_object *obj)
{
_PyObject_GC_UNTRACK(obj);
Py_XDECREF(obj->foo);
Py_XDECREF(obj->bar);
_PyObject_GC_TRACK(obj);
lru_cache_dealloc((lru_cache_object *)obj);
}
This looks too fragile.
Sorry, something went wrong.
| lru_cache_dealloc(lru_cache_object *obj) | ||
| { | ||
| _PyObject_GC_UNTRACK(obj); | ||
| lru_list_elem *list = lru_cache_unlink_list(obj); |
There was a problem hiding this comment.
Declaration after code is C99 syntax. The code will need rewriting for backporting to 2.7.
Sorry, something went wrong.
| static void | ||
| ast_dealloc(AST_object *self) | ||
| { | ||
| _PyObject_GC_UNTRACK(self); |
There was a problem hiding this comment.
The same as for lru_cache. _ast.AST is subclassable.
Sorry, something went wrong.
There was a problem hiding this comment.
lgtm. This suggests that we need a systematic way to deal with this problem, though.
Sorry, something went wrong.
There was a problem hiding this comment.
I suggest to add a comment explaining why an explicit Untrack is required.
Sorry, something went wrong.
|
A Python core developer has requested some changes be made to your pull request before we can consider merging it. If you could please address their requests along with any other requests in other reviews from core developers that would be appreciated. Once you have made the requested changes, please leave a comment on this pull request containing the phrase I didn't expect the Spanish Inquisition!. I will then notify any core developers who have left a review that you're ready for them to take another look at this pull request. |
Sorry, something went wrong.
There was a problem hiding this comment.
SSL and elementtree changes LGTM
Sorry, something went wrong.
(cherry picked from commit a6296d3)
|
GH-3195 is a backport of this pull request to the 3.6 branch. |
Sorry, something went wrong.
(cherry picked from commit a6296d3)
see the following sites for details: * https://bugs.python.org/issue31095 * python/cpython#2974 Fixes #35.
see the following sites for details:
* https://bugs.python.org/issue31095
* python/cpython#2974
see the following sites for details:
* https://bugs.python.org/issue31095
* python/cpython#2974
see the following sites for details:
* https://bugs.python.org/issue31095
* python/cpython#2974
|
Thanks @methane for the PR 🌮🎉.. I'm working now to backport this PR to: 2.7. |
Sorry, something went wrong.
|
Sorry, @methane, I could not cleanly backport this to 2.7 due to a conflict. |
Sorry, something went wrong.
|
The commit 4cde4bd is the backport to Python 2.7. |
Sorry, something went wrong.
call PyObject_GC_UnTrack() in tp_dealloc() see the following sites for details: * https://bugs.python.org/issue31095 * python/cpython#2974
call PyObject_GC_UnTrack() in tp_dealloc() see the following sites for details: * https://bugs.python.org/issue31095 * python/cpython#2974
call PyObject_GC_UnTrack() in tp_dealloc() see the following sites for details: * https://bugs.python.org/issue31095 * python/cpython#2974
call PyObject_GC_UnTrack() in tp_dealloc()
see the following sites for details:
* https://bugs.python.org/issue31095
* python/cpython#2974
call PyObject_GC_UnTrack() in tp_dealloc()
see the following sites for details:
* https://bugs.python.org/issue31095
* python/cpython#2974
see the following sites for details:
* https://bugs.python.org/issue31095
* python/cpython#2974
see the following sites for details:
* https://bugs.python.org/issue31095
* python/cpython#2974
| Back | FazBrowse Home | New Git URL |
Some tp_dealloc methods of GC types didn't call PyObject_GC_UnTrack().
https://bugs.python.org/issue31095