> I think the code there is currently actually only correct on 64 bit > platforms and wrong on 32 bit platforms: it seems that it should read an > int64 in little endian format and converts it on-the-fly to the native > endianess, but that currently only happens correctly on 64 bit platforms. I > was also wrong about what it does on 32 bit platforms, because that depends > on the used architecture. On PowerPC, it will indeed throw away the upper > 32 bits as I described above. On i386, it will however result in something > like "v shl ((8 *i) and 31)". I checked it: The old version and your code produce exactly the same value on 64bit and 32bit. There is no difference between both results.
> I don't think there is a quick fix. Someone who knows what is going on has > to go through it and properly fix it. Hacking the code you posted will only > result in hiding a bug, and you will probably still get more errors > elsewhere. The problem is that no Pascal developer knows this code. It was translated from Java code. Can you imagine another difference between 64bit and 32bit which may cause those error? The bitshifts result in the same value on 32bit and 64bit... Kind regards Matthias Klumpp _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal