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 - Image-SIG@python.org http://mail.python.org/mailman/listinfo/image-sig