This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2010年11月26日 08:07 by kristjan.jonsson, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| #10538.patch | kristjan.jonsson, 2012年03月22日 16:02 | |||
| Messages (8) | |||
|---|---|---|---|
| msg122445 - (view) | Author: Kristján Valur Jónsson (kristjan.jonsson) * (Python committer) | Date: 2010年11月26日 08:07 | |
The new "s*" code for PyArg_ParseTuple is used to fill a Py_buffer object from the arguments. This object must be relased using PyBuffer_Release() after use. However, if the object in the tuple does not support the new buffer interface, the old buffer interface is queried and the Py_buffer object is manually filled in. For this case, the source object is _not_ increfed and buffer.obj remains set to 0. This causes different semantics in the function for objects that are passed in: If the Py_buffer interface is supported directly, then it is safe for the function to store this and release this at a later time. If it isn't supported, then no extra reference to the object is got and the function cannot safely keep the Py_buffer object around. The Fix is as follows: Change line 1402 of getargs.c from: PyBuffer_FillInfo(view, NULL, buf, count, 1, 0); to PyBuffer_FillInfo(view, arg, buf, count, 1, 0); |
|||
| msg124098 - (view) | Author: Kristján Valur Jónsson (kristjan.jonsson) * (Python committer) | Date: 2010年12月16日 01:06 | |
Well, I can submit a patch if anyone is interested. I came across this when writing asynchronous network code. By hanging onto the Py_buffer, I should have access to the data during the network call. But it only worked for "true" Py_buffer objects and not the others. |
|||
| msg156582 - (view) | Author: Kristján Valur Jónsson (kristjan.jonsson) * (Python committer) | Date: 2012年03月22日 16:02 | |
Adding a patch here. |
|||
| msg156587 - (view) | Author: Antoine Pitrou (pitrou) * (Python committer) | Date: 2012年03月22日 16:18 | |
Looks good to me. |
|||
| msg156591 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2012年03月22日 16:37 | |
New changeset 17c671529f7e by Kristján Valur Jónsson in branch '2.7': Issue #10538. Put a reference to the source object in the Py_buffer when http://hg.python.org/cpython/rev/17c671529f7e |
|||
| msg156597 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2012年03月22日 17:28 | |
You should mention your change in Misc/NEWS. |
|||
| msg156614 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2012年03月22日 20:20 | |
New changeset 8efe88c0f14e by krisvale in branch '2.7': Issue #10538 - Update Misc/NEWS http://hg.python.org/cpython/rev/8efe88c0f14e |
|||
| msg156617 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2012年03月22日 20:34 | |
Thanks :-) |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:09 | admin | set | github: 54747 |
| 2012年03月22日 20:34:01 | vstinner | set | messages: + msg156617 |
| 2012年03月22日 20:20:21 | python-dev | set | messages: + msg156614 |
| 2012年03月22日 17:28:47 | vstinner | set | messages: + msg156597 |
| 2012年03月22日 16:38:31 | kristjan.jonsson | set | status: open -> closed resolution: fixed |
| 2012年03月22日 16:37:33 | python-dev | set | nosy:
+ python-dev messages: + msg156591 |
| 2012年03月22日 16:18:25 | pitrou | set | messages: + msg156587 |
| 2012年03月22日 16:02:21 | kristjan.jonsson | set | files:
+ #10538.patch keywords: + patch messages: + msg156582 |
| 2012年03月20日 09:24:06 | skrah | set | nosy:
+ skrah |
| 2010年12月16日 01:06:42 | kristjan.jonsson | set | nosy:
pitrou, kristjan.jonsson, vstinner messages: + msg124098 |
| 2010年12月15日 20:40:12 | pitrou | set | assignee: pitrou -> nosy: pitrou, kristjan.jonsson, vstinner |
| 2010年11月26日 14:18:11 | pitrou | set | nosy:
+ vstinner |
| 2010年11月26日 11:34:42 | georg.brandl | set | assignee: pitrou nosy: + pitrou |
| 2010年11月26日 08:07:59 | kristjan.jonsson | set | versions: - Python 3.2 |
| 2010年11月26日 08:07:31 | kristjan.jonsson | create | |