cpython/Modules
Eddie Elizondo ff023ed36e bpo-37879: Suppress subtype_dealloc decref when base type is a C heap type (GH-15323)
The instance destructor for a type is responsible for preparing
an instance for deallocation by decrementing the reference counts
of its referents.

If an instance belongs to a heap type, the type object of an instance
has its reference count decremented while for static types, which
are permanently allocated, the type object is unaffected by the
instance destructor.

Previously, the default instance destructor searched the class
hierarchy for an inherited instance destructor and, if present,
would invoke it.

Then, if the instance type is a heap type, it would decrement the
reference count of that heap type.  However, this could result in the
premature destruction of a type because the inherited instance
destructor should have already decremented the reference count
of the type object.

This change avoids the premature destruction of the type object
by suppressing the decrement of its reference count when an
inherited, non-default instance destructor has been invoked.

Finally, an assertion on the Py_SIZE of a type was deleted.  Heap
types have a non zero size, making this into an incorrect assertion.

https://github.com/python/cpython/pull/15323
2019-09-11 10:17:13 +01:00
..
_blake2 bpo-37034: Display argument name on errors with keyword arguments with Argument Clinic. (GH-13593) 2019-08-29 17:49:08 +03:00
_ctypes Fix calling order of PyEval_InitThreads. (GH-4602) 2019-09-10 11:29:56 +01:00
_decimal Revert mode change that loses information in directory listings on Linux. (#15366) 2019-08-21 23:00:04 +02:00
_io bpo-15999: Clean up of handling boolean arguments. (GH-15610) 2019-09-01 12:16:51 +03:00
_multiprocessing Remove some unused defines in multiprocessing.h. (GH-15661) 2019-09-07 10:44:36 +03:00
_sha3 bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464) 2019-05-30 19:13:39 -07:00
_sqlite closes bpo-37347: Fix refcount problem in sqlite3. (GH-14268) 2019-07-12 20:15:48 -07:00
_ssl bpo-34271: Fix compatibility with 1.0.2 (GH-13728) 2019-06-03 20:40:15 +02:00
_xxtestfuzz Fix typos in docs, comments and test assert messages (#14872) 2019-07-21 16:12:33 -04:00
cjkcodecs bpo-37034: Display argument name on errors with keyword arguments with Argument Clinic. (GH-13593) 2019-08-29 17:49:08 +03:00
clinic bpo-36543: Remove old-deprecated ElementTree features. (GH-12707) 2019-09-01 11:18:35 +03:00
expat Fix typos mostly in comments, docs and test names (GH-15209) 2019-08-30 16:21:19 -04:00
README
Setup bpo-37798: Add C fastpath for statistics.NormalDist.inv_cdf() (GH-15266) 2019-08-23 15:20:30 -07:00
_abc.c bpo-37547: add _PyObject_CallMethodOneArg (GH-14685) 2019-07-11 17:59:05 +09:00
_asynciomodule.c bpo-37648: Fixed minor inconsistency in some __contains__. (GH-14904) 2019-08-04 14:12:48 +03:00
_bisectmodule.c
_bz2module.c bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464) 2019-05-30 19:13:39 -07:00
_codecsmodule.c
_collectionsmodule.c bpo-37337: Add _PyObject_CallMethodNoArgs() (GH-14267) 2019-07-08 17:19:25 +09:00
_contextvarsmodule.c
_cryptmodule.c
_csv.c bpo-37994: Fix silencing all errors if an attribute lookup fails. (GH-15630) 2019-09-01 12:03:39 +03:00
_curses_panel.c bpo-35810: Incref heap-allocated types in PyObject_Init (GH-11661) 2019-03-27 12:52:18 +01:00
_cursesmodule.c bpo-37738: Fix curses addch(str, color_pair) (GH-15071) 2019-08-14 12:31:43 +02:00
_datetimemodule.c bpo-37994: Fix silencing all errors if an attribute lookup fails. (GH-15630) 2019-09-01 12:03:39 +03:00
_dbmmodule.c bpo-37337: Add _PyObject_CallMethodNoArgs() (GH-14267) 2019-07-08 17:19:25 +09:00
_elementtree.c bpo-36543: Remove old-deprecated ElementTree features. (GH-12707) 2019-09-01 11:18:35 +03:00
_functoolsmodule.c bpo-37358: Use vectorcall for functools.partial (GH-14284) 2019-07-13 07:39:18 -07:00
_gdbmmodule.c bpo-37337: Add _PyObject_CallMethodNoArgs() (GH-14267) 2019-07-08 17:19:25 +09:00
_hashopenssl.c bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464) 2019-05-30 19:13:39 -07:00
_heapqmodule.c
_json.c bpo-37587: optimize json.loads (GH-15134) 2019-08-08 17:57:10 +09:00
_localemodule.c
_lsprof.c bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464) 2019-05-30 19:13:39 -07:00
_lzmamodule.c bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464) 2019-05-30 19:13:39 -07:00
_math.c
_math.h
_opcode.c
_operator.c bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464) 2019-05-30 19:13:39 -07:00
_pickle.c bpo-37994: Fix silencing all errors if an attribute lookup fails. (GH-15630) 2019-09-01 12:03:39 +03:00
_posixsubprocess.c bpo-38069: Convert _posixsubprocess to PEP-384 (GH-15780) 2019-09-10 04:01:20 -07:00
_queuemodule.c bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464) 2019-05-30 19:13:39 -07:00
_randommodule.c bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464) 2019-05-30 19:13:39 -07:00
_scproxy.c
_sre.c bpo-37483: add _PyObject_CallOneArg() function (#14558) 2019-07-04 19:31:34 +09:00
_ssl.c bpo-35941: Fix performance regression in new code (GH-12610) 2019-09-09 09:06:55 -07:00
_ssl_data.h
_stat.c bpo-37834: Normalise handling of reparse points on Windows (GH-15231) 2019-08-21 15:27:33 -07:00
_statisticsmodule.c bpo-37798: Fix _statistics module doc (GH-15546) 2019-09-03 12:21:45 +03:00
_struct.c bpo-37752: Delete redundant Py_CHARMASK in normalizestring() (GH-15095) 2019-09-10 17:04:08 +01:00
_testbuffer.c bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464) 2019-05-30 19:13:39 -07:00
_testcapimodule.c bpo-37879: Suppress subtype_dealloc decref when base type is a C heap type (GH-15323) 2019-09-11 10:17:13 +01:00
_testimportmultiple.c
_testinternalcapi.c bpo-36763: Implement the PEP 587 (GH-13592) 2019-05-27 16:39:22 +02:00
_testmultiphase.c bpo-32388: Remove cross-version binary compatibility requirement in tp_flags (GH-4944) 2019-05-29 22:12:38 +02:00
_threadmodule.c bpo-37878: Remove PyThreadState_DeleteCurrent() function (GH-15315) 2019-09-05 18:06:49 +02:00
_tkinter.c bpo-37752: Delete redundant Py_CHARMASK in normalizestring() (GH-15095) 2019-09-10 17:04:08 +01:00
_tracemalloc.c bpo-37878: Remove PyThreadState_DeleteCurrent() function (GH-15315) 2019-09-05 18:06:49 +02:00
_uuidmodule.c bpo-32627: Fix compile error when conflicting `_uuid` headers included (GH-11751) 2019-06-24 13:59:50 -04:00
_weakref.c
_winapi.c bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464) 2019-05-30 19:13:39 -07:00
_xxsubinterpretersmodule.c bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464) 2019-05-30 19:13:39 -07:00
addrinfo.h
arraymodule.c Remove redundant check from arraymodule b_getitem (GH-14676) 2019-07-11 14:57:42 -07:00
atexitmodule.c
audioop.c
binascii.c bpo-34749: Improved performance of binascii.a2b_base64(). (GH-9444) 2019-07-14 05:15:32 -07:00
cmathmodule.c bpo-36908: 'This module is always available' isn't helpful. (#13297) 2019-05-17 15:29:13 +05:30
config.c.in
errnomodule.c
faulthandler.c bpo-37933: Fix faulthandler.cancel_dump_traceback_later() (GH-15440) 2019-08-29 18:30:04 +02:00
fcntlmodule.c closes bpo-37964: add F_GETPATH command to fcntl (GH-15550) 2019-08-28 18:56:17 -07:00
gc_weakref.txt
gcmodule.c bpo-38070: visit_decref() calls _PyObject_IsFreed() (GH-15782) 2019-09-09 17:44:59 +02:00
getaddrinfo.c
getbuildinfo.c
getnameinfo.c
getpath.c bpo-37649: Fix exec_prefix check (GH-14897) 2019-09-09 09:05:21 -07:00
grpmodule.c bpo-38072: PEP-384 grpmodule (GH-15788) 2019-09-10 03:30:36 -07:00
hashlib.h
hashtable.c bpo-36594: Fix incorrect use of %p in format strings (GH-12769) 2019-05-06 12:56:50 -04:00
hashtable.h
itertoolsmodule.c bpo-34410: Fix a crash in the tee iterator when re-enter it. (GH-15625) 2019-09-09 11:47:14 +03:00
ld_so_aix.in
main.c bpo-15999: Clean up of handling boolean arguments. (GH-15610) 2019-09-01 12:16:51 +03:00
makesetup
makexp_aix
mathmodule.c bpo-37691: Let math.dist() accept sequences and iterables for coordinates (GH-14975) 2019-07-27 14:04:29 -07:00
md5module.c bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464) 2019-05-30 19:13:39 -07:00
mmapmodule.c bpo-37337: Add _PyObject_CallMethodNoArgs() (GH-14267) 2019-07-08 17:19:25 +09:00
nismodule.c
ossaudiodev.c Remove a dead comment from ossaudiodev.c (#15346) 2019-08-20 12:20:47 -07:00
overlapped.c bpo-37445: Include FORMAT_MESSAGE_IGNORE_INSERTS in FormatMessageW() calls (GH-14462) 2019-09-09 02:20:38 -07:00
parsermodule.c bpo-15999: Clean up of handling boolean arguments. (GH-15610) 2019-09-01 12:16:51 +03:00
posixmodule.c bpo-36279: Ensure os.wait3() rusage is initialized (GH-15111) 2019-09-09 08:48:32 -07:00
posixmodule.h
pwdmodule.c bpo-38073: Make pwd module PEP-384 compatible (GH-15790) 2019-09-10 05:59:43 -07:00
pyexpat.c bpo-37994: Fix silencing all errors if an attribute lookup fails. (GH-15630) 2019-09-01 12:03:39 +03:00
readline.c bpo-37194: Add a new public PyObject_CallNoArgs() function (GH-13890) 2019-06-17 14:27:23 +02:00
resource.c
rotatingtree.c
rotatingtree.h
selectmodule.c bpo-37337: Add _PyObject_CallMethodNoArgs() (GH-14267) 2019-07-08 17:19:25 +09:00
sha1module.c bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464) 2019-05-30 19:13:39 -07:00
sha256module.c bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464) 2019-05-30 19:13:39 -07:00
sha512module.c bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464) 2019-05-30 19:13:39 -07:00
signalmodule.c bpo-38037: Fix reference counters in signal module (GH-15753) 2019-09-09 15:46:26 +02:00
socketmodule.c bpo-15999: Always pass bool instead of int to socket.setblocking(). (GH-15621) 2019-09-01 12:12:52 +03:00
socketmodule.h Unmark files as executable that can't actually be executed. (GH-15353) 2019-08-20 21:53:59 -07:00
spwdmodule.c
sre.h
sre_constants.h
sre_lib.h
symtablemodule.c bpo-37253: Add _PyCompilerFlags_INIT macro (GH-14018) 2019-06-13 02:16:41 +02:00
syslogmodule.c
termios.c bpo-38071: Make termios PEP-384 compatible (GH-15785) 2019-09-10 03:33:30 -07:00
testcapi_long.h
timemodule.c bpo-36205: Fix the rusage implementation of time.process_time() (GH-15538) 2019-08-27 00:13:12 -04:00
tkappinit.c
tkinter.h
unicodedata.c bpo-37752: Delete redundant Py_CHARMASK in normalizestring() (GH-15095) 2019-09-10 17:04:08 +01:00
unicodedata_db.h closes bpo-36861: Update Unicode database to 12.1.0. (GH-13214) 2019-05-08 20:59:35 -07:00
unicodename_db.h closes bpo-36861: Update Unicode database to 12.1.0. (GH-13214) 2019-05-08 20:59:35 -07:00
winreparse.h bpo-31512: Add non-elevated symlink support for Windows (GH-3652) 2019-04-09 11:19:46 -07:00
xxlimited.c bpo-32388: Remove cross-version binary compatibility requirement in tp_flags (GH-4944) 2019-05-29 22:12:38 +02:00
xxmodule.c bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464) 2019-05-30 19:13:39 -07:00
xxsubtype.c bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464) 2019-05-30 19:13:39 -07:00
zlibmodule.c bpo-38074: Make zlib extension module PEP-384 compatible (GH-15792) 2019-09-10 03:27:03 -07:00

README

Source files for standard library extension modules,
and former extension modules that are now builtin modules.