New submission from Larry Hastings <[email protected]>:
There's code like this in skipitem() in Python/getargs.c:
case 'b': /* byte -- very short int */
/* ... a zillion more case statements here ... */
case 'C': /* unicode char */
case 'p': /* boolean predicate */
{
(void) va_arg(*p_va, void *);
break;
}
case 'n': /* Py_ssize_t */
{
(void) va_arg(*p_va, Py_ssize_t *);
break;
}
/* ... a bunch of other stuff here ... */
case 'S': /* string object */
case 'Y': /* string object */
case 'U': /* unicode string object */
{
(void) va_arg(*p_va, PyObject **);
break;
}
I cannot for the life of me imagine a platform where the size of a "Py_ssize_t
*" or a "PyObject **" would be different from the size of a "void *". I've
programmed on platforms where code pointers and data pointers were different
sizes--but data pointers to different sizes of data? Never heard of it.
But I've been wrong before! So, rather than simply make the change, I'm
posting this bug just as a double check.
It's safe to fold 'n', 'S', 'Y', and 'U' into the initial paragraph of case
statements simply skipping a pointer... isn't it?
----------
assignee: larry
messages: 160179
nosy: larry
priority: low
severity: normal
stage: needs patch
status: open
title: Remove redundant paragraphs from getargs.c skipitem()
type: enhancement
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue14746>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com