The whole family of index<blah>OffForeignPtr# primops has been broken
for some time now. This commit fixes them.
I'm tempted to get rid of them altogether, since arguably the
withForeignPtr interface subsumes all this. But if you want to index
off a ForeignPtr in pure code, you have to use unsafePerformIO, which
is hard to optimise away (GHC doesn't do it), so these primops still
have their uses.
doIndexOffForeignObjOp maybe_post_read_cast rep res addr idx
- = mkBasicIndexedRead fixedHdrSize maybe_post_read_cast rep res addr idx
+ = mkBasicIndexedRead 0 maybe_post_read_cast rep res (mkDerefOff WordRep addr fixedHdrSize) idx
doIndexOffAddrOp maybe_post_read_cast rep res addr idx
= mkBasicIndexedRead 0 maybe_post_read_cast rep res addr idx