<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/cpython-git.git/Objects/object.c, branch fix-misc-acks</title>
<subtitle>github.com: python/cpython.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/'/>
<entry>
<title>bpo-36745: Fix a possible reference leak in PyObject_SetAttr() (GH-12993)</title>
<updated>2019-04-28T13:17:40+00:00</updated>
<author>
<name>Miss Islington (bot)</name>
<email>31488909+miss-islington@users.noreply.github.com</email>
</author>
<published>2019-04-28T13:17:40+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/commit/?id=896c6357f3267fe5dc5a33979f8cf46b0a74cfee'/>
<id>896c6357f3267fe5dc5a33979f8cf46b0a74cfee</id>
<content type='text'>
https://bugs.python.org/issue36745
(cherry picked from commit e0dcb85b7d64153d1741698c04a6736c9669603a)

Co-authored-by: Zackery Spytz &lt;zspytz@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://bugs.python.org/issue36745
(cherry picked from commit e0dcb85b7d64153d1741698c04a6736c9669603a)

Co-authored-by: Zackery Spytz &lt;zspytz@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[3.7] bpo-36389: _PyObject_IsFreed() now also detects uninitialized memory (GH-12770) (GH-12788)</title>
<updated>2019-04-11T20:30:31+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>vstinner@redhat.com</email>
</author>
<published>2019-04-11T20:30:31+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/commit/?id=9e23f0a27cb8bf6e4ea1d2aef36a91502282bbc9'/>
<id>9e23f0a27cb8bf6e4ea1d2aef36a91502282bbc9</id>
<content type='text'>
* bpo-36389: _PyObject_IsFreed() now also detects uninitialized memory (GH-12770)

Replace _PyMem_IsFreed() function with _PyMem_IsPtrFreed() inline
function. The function is now way more efficient, it became a simple
comparison on integers, rather than a short loop. It detects also
uninitialized bytes and "forbidden bytes" filled by debug hooks
on memory allocators.

Add unit tests on _PyObject_IsFreed().

(cherry picked from commit 2b00db68554422ec37faba2a80179a0172df6349)

* bpo-36389: Change PyMem_SetupDebugHooks() constants (GH-12782)

Modify CLEANBYTE, DEADDYTE and FORBIDDENBYTE constants: use 0xCD,
0xDD and 0xFD, rather than 0xCB, 0xBB and 0xFB, to use the same byte
patterns than Windows CRT debug malloc() and free().

(cherry picked from commit 4c409beb4c360a73d054f37807d3daad58d1b567)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* bpo-36389: _PyObject_IsFreed() now also detects uninitialized memory (GH-12770)

Replace _PyMem_IsFreed() function with _PyMem_IsPtrFreed() inline
function. The function is now way more efficient, it became a simple
comparison on integers, rather than a short loop. It detects also
uninitialized bytes and "forbidden bytes" filled by debug hooks
on memory allocators.

Add unit tests on _PyObject_IsFreed().

(cherry picked from commit 2b00db68554422ec37faba2a80179a0172df6349)

* bpo-36389: Change PyMem_SetupDebugHooks() constants (GH-12782)

Modify CLEANBYTE, DEADDYTE and FORBIDDENBYTE constants: use 0xCD,
0xDD and 0xFD, rather than 0xCB, 0xBB and 0xFB, to use the same byte
patterns than Windows CRT debug malloc() and free().

(cherry picked from commit 4c409beb4c360a73d054f37807d3daad58d1b567)
</pre>
</div>
</content>
</entry>
<entry>
<title>[3.7] bpo-9263: _PyObject_Dump() detects freed memory (GH-10061) (GH-10662)</title>
<updated>2018-11-22T16:15:37+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>vstinner@redhat.com</email>
</author>
<published>2018-11-22T16:15:37+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/commit/?id=95036ea25d47f0081bda2ba96ea327f3375cb6a4'/>
<id>95036ea25d47f0081bda2ba96ea327f3375cb6a4</id>
<content type='text'>
* bpo-9263: _PyObject_Dump() detects freed memory (GH-10061)

_PyObject_Dump() now uses an heuristic to check if the object memory
has been freed: log "&lt;freed object&gt;" in that case.

The heuristic rely on the debug hooks on Python memory allocators
which fills the memory with DEADBYTE (0xDB) when memory is
deallocated. Use PYTHONMALLOC=debug to always enable these debug
hooks.

(cherry picked from commit 82af0b63b07aa8d92b50098e382b458143cfc677)

* bpo-9263: Fix _PyObject_Dump() for freed object (#10661)

If _PyObject_Dump() detects that the object is freed, don't try to
dump it (exit immediately).

Enhance also _PyObject_IsFreed(): it now detects if the pointer
itself looks like freed memory.

(cherry picked from commit 2cf5d32fd9e61488e8b0be55a2e92a752ba8b06b)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* bpo-9263: _PyObject_Dump() detects freed memory (GH-10061)

_PyObject_Dump() now uses an heuristic to check if the object memory
has been freed: log "&lt;freed object&gt;" in that case.

The heuristic rely on the debug hooks on Python memory allocators
which fills the memory with DEADBYTE (0xDB) when memory is
deallocated. Use PYTHONMALLOC=debug to always enable these debug
hooks.

(cherry picked from commit 82af0b63b07aa8d92b50098e382b458143cfc677)

* bpo-9263: Fix _PyObject_Dump() for freed object (#10661)

If _PyObject_Dump() detects that the object is freed, don't try to
dump it (exit immediately).

Enhance also _PyObject_IsFreed(): it now detects if the pointer
itself looks like freed memory.

(cherry picked from commit 2cf5d32fd9e61488e8b0be55a2e92a752ba8b06b)
</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-34910: Ensure that PyObject_Print() always returns -1 on error. (GH-9733)</title>
<updated>2018-10-06T07:07:12+00:00</updated>
<author>
<name>Miss Islington (bot)</name>
<email>31488909+miss-islington@users.noreply.github.com</email>
</author>
<published>2018-10-06T07:07:12+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/commit/?id=49fb49d6f57661f2a7601f1d759163866f707fed'/>
<id>49fb49d6f57661f2a7601f1d759163866f707fed</id>
<content type='text'>
(cherry picked from commit ae62f015240c9162773341a9922794e6b960779d)

Co-authored-by: Zackery Spytz &lt;zspytz@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(cherry picked from commit ae62f015240c9162773341a9922794e6b960779d)

Co-authored-by: Zackery Spytz &lt;zspytz@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>closes bpo-32898: Fix debug build crash with COUNT_ALLOCS (GH-5800)</title>
<updated>2018-02-22T05:44:08+00:00</updated>
<author>
<name>Miss Islington (bot)</name>
<email>31488909+miss-islington@users.noreply.github.com</email>
</author>
<published>2018-02-22T05:44:08+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/commit/?id=bc2e1104693fd471b96ecac5b2ab4cffa09830ab'/>
<id>bc2e1104693fd471b96ecac5b2ab4cffa09830ab</id>
<content type='text'>
(cherry picked from commit 745dc65b17b3936e3f9f4099f735f174d30c4e0c)

Co-authored-by: Eddie Elizondo &lt;eduardo.elizondorueda@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(cherry picked from commit 745dc65b17b3936e3f9f4099f735f174d30c4e0c)

Co-authored-by: Eddie Elizondo &lt;eduardo.elizondorueda@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-32571: Fix reading uninitialized memory (GH-5332)</title>
<updated>2018-01-26T07:22:51+00:00</updated>
<author>
<name>INADA Naoki</name>
<email>methane@users.noreply.github.com</email>
</author>
<published>2018-01-26T07:22:51+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/commit/?id=e76daebc0c8afa3981a4c5a8b54537f756e805de'/>
<id>e76daebc0c8afa3981a4c5a8b54537f756e805de</id>
<content type='text'>
Reported by Coverity Scan.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reported by Coverity Scan.</pre>
</div>
</content>
</entry>
<entry>
<title> bpo-32571: Avoid raising unneeded AttributeError and silencing it in C code (GH-5222)</title>
<updated>2018-01-25T08:49:40+00:00</updated>
<author>
<name>Serhiy Storchaka</name>
<email>storchaka@gmail.com</email>
</author>
<published>2018-01-25T08:49:40+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/commit/?id=f320be77ffb73e3b9e7fc98c37b8df3975d84b40'/>
<id>f320be77ffb73e3b9e7fc98c37b8df3975d84b40</id>
<content type='text'>
Add two new private APIs: _PyObject_LookupAttr() and _PyObject_LookupAttrId()</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add two new private APIs: _PyObject_LookupAttr() and _PyObject_LookupAttrId()</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-32436: Implement PEP 567 (#5027)</title>
<updated>2018-01-23T00:11:18+00:00</updated>
<author>
<name>Yury Selivanov</name>
<email>yury@magic.io</email>
</author>
<published>2018-01-23T00:11:18+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/commit/?id=f23746a934177c48eff754411aba54c31d6be2f0'/>
<id>f23746a934177c48eff754411aba54c31d6be2f0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-32544: Speed up hasattr() and getattr() (GH-5173)</title>
<updated>2018-01-16T11:52:41+00:00</updated>
<author>
<name>INADA Naoki</name>
<email>methane@users.noreply.github.com</email>
</author>
<published>2018-01-16T11:52:41+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/commit/?id=378edee0a3b913d60653dc17dfe61d83405a8135'/>
<id>378edee0a3b913d60653dc17dfe61d83405a8135</id>
<content type='text'>
AttributeError was raised always when attribute is not found.
This commit skip raising AttributeError when `tp_getattro` is `PyObject_GenericGetAttr`.
It makes hasattr() and getattr() about 4x faster when attribute is not found.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
AttributeError was raised always when attribute is not found.
This commit skip raising AttributeError when `tp_getattro` is `PyObject_GenericGetAttr`.
It makes hasattr() and getattr() about 4x faster when attribute is not found.</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-32137: The repr of deeply nested dict now raises a RecursionError (#4570)</title>
<updated>2017-12-03T20:12:11+00:00</updated>
<author>
<name>Serhiy Storchaka</name>
<email>storchaka@gmail.com</email>
</author>
<published>2017-12-03T20:12:11+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/commit/?id=1fb72d2ad243c965d4432b4e93884064001a2607'/>
<id>1fb72d2ad243c965d4432b4e93884064001a2607</id>
<content type='text'>
instead of crashing due to a stack overflow.

This perhaps will fix similar problems in other extension types.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
instead of crashing due to a stack overflow.

This perhaps will fix similar problems in other extension types.</pre>
</div>
</content>
</entry>
</feed>
