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 2012年05月07日 23:24 by larry, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| larry.prune.skipitem.1.diff | larry, 2012年05月09日 06:36 | review | ||
| Messages (6) | |||
|---|---|---|---|
| msg160179 - (view) | Author: Larry Hastings (larry) * (Python committer) | Date: 2012年05月07日 23:24 | |
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? |
|||
| msg160247 - (view) | Author: Antoine Pitrou (pitrou) * (Python committer) | Date: 2012年05月09日 06:29 | |
I'm not sure what you're proposing to fix. It seems to save at most a couple of lines of (obvious) code? At least Py_ssize_t *could* have a different width from "PyObject *". |
|||
| msg160248 - (view) | Author: Larry Hastings (larry) * (Python committer) | Date: 2012年05月09日 06:36 | |
> I'm not sure what you're proposing to fix. It seems to save at > most a couple of lines of (obvious) code? Well, I *did* specify low priority. Attached is the patch for what I had in mind. > At least Py_ssize_t *could* have a different width from "PyObject *". Not "Py_ssize_t", "Py_ssize_t *". |
|||
| msg160249 - (view) | Author: Antoine Pitrou (pitrou) * (Python committer) | Date: 2012年05月09日 06:44 | |
> > At least Py_ssize_t *could* have a different width from "PyObject *". > > Not "Py_ssize_t", "Py_ssize_t *". Ah, fair enough then. Looks ok to me. |
|||
| msg160250 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2012年05月09日 06:52 | |
New changeset 8ab37fa24e58 by Larry Hastings in branch 'default': Issue #14746: Remove redundant paragraphs from skipitem() in Python/getargs.c. http://hg.python.org/cpython/rev/8ab37fa24e58 |
|||
| msg160251 - (view) | Author: Larry Hastings (larry) * (Python committer) | Date: 2012年05月09日 06:53 | |
Thanks for the double-check. I should have more confidence! |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:30 | admin | set | github: 58951 |
| 2012年05月09日 06:53:15 | larry | set | status: open -> closed resolution: fixed messages: + msg160251 stage: needs patch -> resolved |
| 2012年05月09日 06:52:26 | python-dev | set | nosy:
+ python-dev messages: + msg160250 |
| 2012年05月09日 06:44:42 | pitrou | set | messages: + msg160249 |
| 2012年05月09日 06:36:30 | larry | set | files:
+ larry.prune.skipitem.1.diff keywords: + patch messages: + msg160248 |
| 2012年05月09日 06:29:22 | pitrou | set | nosy:
+ mark.dickinson, pitrou messages: + msg160247 |
| 2012年05月07日 23:24:51 | larry | create | |