summaryrefslogtreecommitdiffstats
path: root/Modules/_testmultiphase.c
Commit message (Collapse)AuthorAgeFilesLines
* bpo-32388: Remove cross-version binary compatibility requirement in tp_flags ↵Antoine Pitrou2019-05-291-1/+1
| | | | | | | | (GH-4944) It is now allowed to add new fields at the end of the PyTypeObject struct without having to allocate a dedicated compatibility flag in tp_flags. This will reduce the risk of running out of bits in the 32-bit tp_flags value.
* bpo-35459: Use PyDict_GetItemWithError() instead of PyDict_GetItem(). (GH-11112)Serhiy Storchaka2019-02-251-2/+5
|
* bpo-34720: Fix test_importlib.test_bad_traverse for AIX (GH-9391)Michael Felt2019-02-171-0/+8
| | | | | | Fix Modules/_testmultiphase.c so that it exits with non-zero status on AIX just as other systems do (non zero exit status, e.g. as result of a segmentation fault) when a NULL pointer is accessed for data. https://bugs.python.org/issue34720
* Make two PyModuleDef_Slot symbols static in _testmultiphase. (GH-8147)Benjamin Peterson2018-07-071-2/+2
|
* bpo-33644: Fix signatures of tp_finalize handlers in testing code. (GH-7111)Serhiy Storchaka2018-05-261-2/+1
|
* bpo-32374: m_traverse may be called with m_state=NULL (GH-5140)Marcel Plch2018-03-171-3/+49
| | | | | Multi-phase initialized modules allow m_traverse to be called while the module is still being initialized, so module authors may need to account for that.
* Issue #28999: Use Py_RETURN_NONE, Py_RETURN_TRUE and Py_RETURN_FALSE whereverSerhiy Storchaka2017-01-231-2/+1
| | | | possible. Patch is writen with Coccinelle.
* Merge #27782 fix from 3.5Nick Coghlan2016-08-211-1/+32
|\
| * Issue #27782: Fix m_methods handling in multiphase initNick Coghlan2016-08-211-1/+32
| | | | | | | | | | | | | | | | Multi-phase extension module import now correctly allows the ``m_methods`` field to be used to add module level functions to instances of non-module types returned from ``Py_create_mod``. Patch by Xiang Zhang.
* | Issue #25923: Added more const qualifiers to signatures of static and ↵Serhiy Storchaka2015-12-251-1/+1
|/ | | | private functions.
* Close #24748: Restore imp.load_dynamic compatibilityNick Coghlan2015-09-051-0/+10
| | | | | | | | To resolve a compatibility problem found with py2exe and pywin32, imp.load_dynamic() once again ignores previously loaded modules to support Python modules replacing themselves with extension modules. Patch by Petr Viktorin.
* Issue #24373: Eliminate PEP 489 test refleaksNick Coghlan2015-06-041-6/+14
| | | | | | | _testmultiphase and xxlimited now use tp_traverse and tp_finalize to avoid reference leaks encountered when combining tp_dealloc with PyType_FromSpec (see issue #16690 for details)
* fix importing one char extension modules (closes #24328)Benjamin Peterson2015-05-291-0/+8
|
* Issue #24268: Address some PEP 489 refleaksNick Coghlan2015-05-231-0/+1
| | | | | | | | - missing DECREF in PyModule_FromDefAndSpec2 - missing DECREF in PyType_FromSpecAndBases2 - missing DECREF in _testmultiphase module Patch by Petr Viktorin
* PEP 489: Multi-phase extension module initializationNick Coghlan2015-05-231-0/+567
Known limitations of the current implementation: - documentation changes are incomplete - there's a reference leak I haven't tracked down yet The leak is most visible by running: ./python -m test -R3:3 test_importlib However, you can also see it by running: ./python -X showrefcount Importing the array or _testmultiphase modules, and then deleting them from both sys.modules and the local namespace shows significant increases in the total number of active references each cycle. By contrast, with _testcapi (which continues to use single-phase initialisation) the global refcounts stabilise after a couple of cycles.