It looks like prefetchRecordPages() can read one byte past the end of a matching document:
// hit the last page, in case we missed it above
_dummy_char += *(result.objdata() + result.objsize());
I think one byte past the end of a document might not be in mapped memory, since I don't think the file, extent, or record structures have footers.