+ /* + * Compute targetRecOff. It should typically be greater than short + * page-header since a valid record can't , but can also be zero when + * caller has supplied a page-aligned address or when we are skipping + * multi-page continuation record. It doesn't matter though because + * ReadPageInternal() will read at least short page-header worth of + * data + */ This needs some polishing, there is an unfinished sentence here.
+ targetRecOff = tmpRecPtr % XLOG_BLCKSZ; targetRecOff, pageHeaderSize and targetPagePtr could be declared inside directly the new while loop.
Thanks Michael for reviewing the patch. I've fixed these issues and new version is attached.