| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
There was a problem hiding this comment.
@vstinner
Please take a look
I locally tested with _csv module on subinterpreter and module test
And there was no leak.
(But import csv with subinterpreter still has leaks but not related to this PR)
Sorry, something went wrong.
|
FYI, macOS CI issue is not related to this PR |
Sorry, something went wrong.
There was a problem hiding this comment.
Thanks all of your reviews are applied and no memory leak was found!
Sorry, something went wrong.
There was a problem hiding this comment.
I'm not sure that it's possible to convert static types to heap types if they have Py_TPFLAGS_BASETYPE, since currently there is no way to retrieve the module from such type.
Sorry, something went wrong.
| &strict)) | ||
| return NULL; | ||
|
|
||
| _csvstate *state = PyType_GetModuleState(type); |
There was a problem hiding this comment.
PyType_GetModuleState() is not safe if the type has Py_TPFLAGS_BASETYPE flag, which is the case here.
Is there a way to get the defining type in tp_new?
Sorry, something went wrong.
| PyErr_Format(_csvstate_global->error_obj, "field larger than field limit (%ld)", | ||
| _csvstate_global->field_limit); | ||
| PyTypeObject *reader_type = Py_TYPE(self); | ||
| _csvstate *state = PyType_GetModuleState(reader_type); |
There was a problem hiding this comment.
The Reader type has Py_TPFLAGS_BASETYPE: PyType_GetModuleState() is unsafe here.
Sorry, something went wrong.
| return NULL; | ||
| } | ||
| self->dialect = (DialectObj *)_call_dialect(dialect, keyword_args); | ||
| _csvstate *state = get_csv_state(module); |
There was a problem hiding this comment.
state can be moved at the beginning of the function, to avoid calling get_csv_state() twice.
Sorry, something went wrong.
|
When you're done making the requested changes, leave the comment: I have made the requested changes; please review again. |
Sorry, something went wrong.
|
I understand that this PR (if merged) would fix https://bugs.python.org/issue14935 |
Sorry, something went wrong.
|
The issue is now closed via #23224. |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
https://bugs.python.org/issue40077