On 2014-11-20, at 7:45 AM, Staffan Friberg <staffan.frib...@oracle.com> wrote:
> Hi, > > Anyone who can be the second Reviewer? > > Thanks, > Staffan I can review, but I am not a Reviewer. CRC32C.java: 56 /** 57 * CRC-32C Polynom 58 */ “Polynomial”, perhaps? You did test this on both big- and little-endian boxes, right? It looks right to me, but this stuff is brain-hurty on mirror-image dyslexia and fenceposts. It might not hurt to mention that byteTable is for byte-at-a-time calculations and is always the same, whereas the other 8 tables are for bulk operations and will have contents dependent on the endianness of the platform. It would be a good idea to mention that the high-order terms of polynomials are stored in the low-order bits of the integers in the tables. You could get the bit reversal out of the init code if you bit-reversed CRC32C_POLY instead and wrote it 78 int r = index; // High-order polynomial term stored in LSB of r. 79 for (int i = 0; i < Byte.SIZE; i++) { 80 if ((r & 1) != 0) { 81 r = (r >>> 1) ^ REVERSED_CRC32C_POLY; 82 } else { 83 r >>>= 1; 84 } 85 } 86 byteTables[0][index] = r; at least, it seems that way to me. David