Seems to me that in libImaging, Access.c:add_item should really read
static ImagingAccess
add_item(const char* mode)
{
UINT32 i = hash(mode);
/* printf("hash %s => %d\n", mode, i); */
if (access_table[i].mode && (strcmp(mode, access_table[i].mode) != 0)) {
fprintf(stderr, "AccessInit: hash collision: %d for both %s and %s\n",
i, mode, access_table[i].mode);
exit(1);
}
access_table[i].mode = mode;
return &access_table[i];
}
Currently, it reads:
static ImagingAccess
add_item(const char* mode)
{
UINT32 i = hash(mode);
/* printf("hash %s => %d\n", mode, i); */
if (access_table[i].mode) {
fprintf(stderr, "AccessInit: hash collision: %d for both %s and %s\n",
i, mode, access_table[i].mode);
exit(1);
}
access_table[i].mode = mode;
return &access_table[i];
}
And there's a number of Google hits for "AccessInit: hash collision: 3
for both 1 and 1", starting about the release of 1.1.7.
Bill
_______________________________________________
Image-SIG maillist - [email protected]
http://mail.python.org/mailman/listinfo/image-sig