Neal Norwitz wrote:
In Include/ucnhash.h I notice some integers and wonder if those should be Py_ssize_t. It looks like they are just names so they should be pretty short.
Right: int size is below 100; the name length of a Unicode character is below 40 (I believe). OTOH, changing them to Py_ssize_t wouldn't hurt, either.
235: assert(length<INT_MAX); unicode->length = (int)length;
Right: I just changed it. It may date back to a version of the patch where I only changed the signatures of the functions, but not the object layout.
376, 404: int i;
1366: (seems like this could be a 64-bit value) int nneeded;
Right; also, the safe downcast can go away.
(i stopped at this point, there are probably more)
I looked through the entire file, and fixed all I could find.
Modules/unicodedata.c (lots of ints, not sure if they are a problem)
Most of them are not, since most functions deal only with Unicode characters, character names, and character numbers (which are below 2**21).
494: isize = PyUnicode_GET_SIZE(input);
This is a problem, though; I fixed it.