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 bpo-33012: Fix invalid function cast warnings with gcc 8. (GH-6749) 2018-11-27 13:27:31 +02:00
_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 bpo-36297: remove "unicode_internal" codec (GH-12342) 2019-03-18 15:44:11 +09:00
_collectionsmodule.c bpo-37337: Add _PyObject_CallMethodNoArgs() (GH-14267) 2019-07-08 17:19:25 +09:00
_contextvarsmodule.c bpo-34762: Fix contextvars C API to use PyObject* pointer types. (GH-9473) 2018-09-21 15:33:56 -04:00
_cryptmodule.c bpo-28503: Use crypt_r() when available instead of crypt() (GH-11373) 2018-12-30 15:42:32 -08:00
_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 bpo-34797: Convert heapq to the argument clinic (GH-9560) 2018-09-28 12:39:43 -07:00
_json.c bpo-37587: optimize json.loads (GH-15134) 2019-08-08 17:57:10 +09:00
_localemodule.c bpo-36254: Fix invalid uses of %d in format strings in C. (GH-12264) 2019-03-13 22:59:55 +02:00
_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 Issue #28256: Cleanup _math.c 2016-10-18 16:29:27 +02:00
_math.h Issue #28256: Cleanup _math.c 2016-10-18 16:29:27 +02:00
_opcode.c bpo-32455: Add jump parameter to dis.stack_effect(). (GH-6610) 2018-09-18 09:54:26 +03:00
_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 closes bpo-31903: Release the GIL when calling into SystemConfiguration (GH-4178) 2018-09-11 16:14:00 -07:00
_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 bpo-32150: Expand tabs to spaces in C files. (#4583) 2017-11-28 17:56:10 +02:00
_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 replace PY_LONG_LONG with long long 2016-09-06 10:46:49 -07:00
arraymodule.c Remove redundant check from arraymodule b_getitem (GH-14676) 2019-07-11 14:57:42 -07:00
atexitmodule.c bpo-33012: Fix invalid function cast warnings with gcc 8. (GH-6749) 2018-11-27 13:27:31 +02:00
audioop.c bpo-33781: audioop: enhance rounding double as int (GH-7447) 2018-06-06 15:50:50 +02:00
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 rename _imp initialization function to follow conventions (#5432) 2018-01-29 11:33:57 -08:00
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 bpo-32241: Add the const qualifire to declarations of umodifiable strings. (#4748) 2017-12-12 13:55:04 +02:00
getbuildinfo.c bpo-27593: Get SCM build info from git instead of hg. (#446) 2017-03-04 00:19:55 -05:00
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 bpo-31370: Remove support for threads-less builds (#3385) 2017-09-07 18:56:24 +02:00
hashtable.c bpo-36594: Fix incorrect use of %p in format strings (GH-12769) 2019-05-06 12:56:50 -04:00
hashtable.h Issue #28126: Replace Py_MEMCPY with memcpy(). Visual Studio can properly optimize memcpy(). 2016-09-13 20:22:02 +02:00
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 Issue #10656: Fix out-of-tree building on AIX 2016-11-20 07:56:37 +00:00
main.c bpo-15999: Clean up of handling boolean arguments. (GH-15610) 2019-09-01 12:16:51 +03:00
makesetup closes bpo-34212: Build core extension modules with Py_BUILD_CORE_BUILTIN. (GH-8712) 2018-11-26 20:21:31 -06:00
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 bpo-35356: Fix a possible reference leak in nis.maps(). (GH-10808) 2018-11-30 09:40:16 +02:00
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 bpo-33441: Make the sigset_t converter available in other modules. (GH-6720) 2018-05-08 07:48:50 +03:00
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 bpo-34674: Assume unistd.h exists on Unix. (GH-9290) 2018-09-13 21:57:31 -07:00
rotatingtree.c
rotatingtree.h bpo-32150: Expand tabs to spaces in C files. (#4583) 2017-11-28 17:56:10 +02:00
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 [security] bpo-13617: Reject embedded null characters in wchar* strings. (#2302) 2017-06-28 08:30:06 +03:00
sre.h bpo-25054, bpo-1647489: Added support of splitting on zerowidth patterns. (#4471) 2017-12-04 14:29:05 +02:00
sre_constants.h bpo-31690: Allow the inline flags "a", "L", and "u" to be used as group flags for RE. (#3885) 2017-10-24 23:31:42 +03:00
sre_lib.h bpo-34294: re module, fix wrong capturing groups in rare cases. (GH-11546) 2019-02-18 15:26:37 +02:00
symtablemodule.c bpo-37253: Add _PyCompilerFlags_INIT macro (GH-14018) 2019-06-13 02:16:41 +02:00
syslogmodule.c bpo-33012: Fix invalid function cast warnings with gcc 8. (GH-6749) 2018-11-27 13:27:31 +02:00
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.