classification
Title: const char* for PyObject_CallMethod and PyObject_CallFunction
Type: behavior Stage: resolved
Components: Interpreter Core Versions: Python 3.4
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: serhiy.storchaka Nosy List: Trundle, amaury.forgeotdarc, aronacher, christian.heimes, lars, loewis, neXyon, pitrou, python-dev, serhiy.storchaka
Priority: normal Keywords: patch

Created on 2010-07-24 09:53 by neXyon, last changed 2013-06-24 08:32 by serhiy.storchaka. This issue is now closed.

Files
File name Uploaded Description Edit
patch.diff neXyon, 2010-07-24 10:02 patch
constness.patch lars, 2013-01-09 15:46 Patch to add const to a few API arguments review
constness.patch lars, 2013-01-09 16:01 review
Messages (15)
msg111437 - (view) Author: Jörg Müller (neXyon) Date: 2010-07-24 09:53
Patch attached
msg111439 - (view) Author: Jörg Müller (neXyon) Date: 2010-07-24 10:02
I've merged the patch with the changes from Armin in issue9368.
msg117887 - (view) Author: Amaury Forgeot d'Arc (amaury.forgeotdarc) * (Python committer) Date: 2010-10-02 17:05
Martin, what do you think about this kind of changes? Are there possible regressions or incompatibilities?
msg117888 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2010-10-02 17:09
AFAICT, they are compatible, so +1.

The typical proposition of an incompatible change either proposes to use const char* as the return type, or has multi-level pointers that are proposed to be constified.
msg117889 - (view) Author: Amaury Forgeot d'Arc (amaury.forgeotdarc) * (Python committer) Date: 2010-10-02 17:14
Thanks for the confirmation!
msg179451 - (view) Author: Lars (lars) Date: 2013-01-09 15:27
Any reason why this issue is still open? I just got a lot of compiler warnings when building Numpy, so this isn't just relevant to C++ programmers.

(Btw., I did RTFM: the issue's Resolution is "accepted" but that option is not documented.)
msg179453 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2013-01-09 15:31
Let's try this again for 3.4
msg179457 - (view) Author: Lars (lars) Date: 2013-01-09 15:46
Redid the patch.
msg179462 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2013-01-09 15:55
Docs update needed.

Perhaps some other functions which accepts char* (i.e. PyObject_CallMethodObjArgs or PyDict_GetItemString) should be fixed.
msg179463 - (view) Author: Lars (lars) Date: 2013-01-09 16:01
Oops, forgot to save changes to Doc/c-api/object.rst.

PyObject_CallMethodObjArgs takes a PyObject*, mustn't that be non-const for reference counting to work?

PyDict_GetItemString already has const, just not in refcounts.dat. Fixed.
msg179493 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2013-01-09 22:13
> PyObject_CallMethodObjArgs takes a PyObject*, mustn't that be non-const for reference counting to work?

Then refcounts.dat wrong.

> PyDict_GetItemString already has const, just not in refcounts.dat. Fixed.

There are a lot of char* arguments in refcounts.dat. If refcounts.dat differs from actual function signature, this is a bug, and fix must be applied to other versions too. If they conform, perhaps this argument can be enhanced to "const char*" in 3.4. Therefore two issues are needed, one for the new feature, and one for the bugfixing.
msg182191 - (view) Author: Lars (lars) Date: 2013-02-15 23:43
I'm sorry, I really don't understand this refcounts.dat file and I'm not going to hack it further. Does the patch as it currently stands solve the issue with CallMethod and CallFunction, or not? (It has the changes to the docs.)
msg190284 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2013-05-29 10:11
Looks good to me.
msg190314 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2013-05-29 15:36
Jörg, Lars, can you please submit a contributor form?

http://python.org/psf/contrib/contrib-form/
http://python.org/psf/contrib/
msg190315 - (view) Author: Roundup Robot (python-dev) Date: 2013-05-29 15:51
New changeset 0a45896a7cde by Serhiy Storchaka in branch 'default':
Issue #9369: The types of `char*` arguments of PyObject_CallFunction() and
http://hg.python.org/cpython/rev/0a45896a7cde
History
Date User Action Args
2013-06-24 08:32:19serhiy.storchakasetstatus: open -> closed
2013-05-29 15:52:16serhiy.storchakasetresolution: accepted -> fixed
stage: commit review -> resolved
2013-05-29 15:51:18python-devsetnosy: + python-dev
messages: + msg190315
2013-05-29 15:36:32serhiy.storchakasetmessages: + msg190314
2013-05-29 11:13:14serhiy.storchakasetassignee: serhiy.storchaka
2013-05-29 10:11:58pitrousetnosy: + pitrou
messages: + msg190284
2013-05-28 19:50:25serhiy.storchakalinkissue1772673 dependencies
2013-02-15 23:43:37larssetmessages: + msg182191
2013-01-09 22:13:59serhiy.storchakasetmessages: + msg179493
2013-01-09 16:01:17larssetfiles: + constness.patch

messages: + msg179463
2013-01-09 15:55:52serhiy.storchakasetnosy: + serhiy.storchaka
messages: + msg179462
2013-01-09 15:46:33larssetfiles: + constness.patch

messages: + msg179457
2013-01-09 15:31:24christian.heimessetnosy: + christian.heimes

messages: + msg179453
versions: + Python 3.4, - Python 3.2
2013-01-09 15:27:28larssetnosy: + lars
messages: + msg179451
2010-10-02 23:25:19Trundlesetnosy: + Trundle
2010-10-02 17:14:35amaury.forgeotdarcsetresolution: accepted
messages: + msg117889
2010-10-02 17:09:35loewissetmessages: + msg117888
2010-10-02 17:05:06amaury.forgeotdarcsetnosy: + amaury.forgeotdarc, loewis
messages: + msg117887
2010-07-24 11:17:49eric.araujosetnosy: + aronacher

stage: commit review
2010-07-24 11:16:57eric.araujolinkissue9368 superseder
2010-07-24 10:02:48neXyonsetfiles: - patch.diff
2010-07-24 10:02:19neXyonsetfiles: + patch.diff
type: enhancement -> behavior
messages: + msg111439
2010-07-24 09:53:20neXyoncreate