Prevent the wraparound problem with memory mapped files larger than 2GB

As both pages and pageSize are ints, their product is also an int. This is a problem if the size is above 2GB, as you will use a negative offset in the map function.