static sys::MemoryBlock trimBlockToPageSize(sys::MemoryBlock M) { static const size_t PageSize = sys::Process::getPageSize(); size_t StartOverlap = (PageSize - ((uintptr_t)M.base() % PageSize)) % PageSize; size_t TrimmedSize = M.size(); TrimmedSize -= StartOverlap; TrimmedSize -= TrimmedSize % PageSize; sys::MemoryBlock Trimmed((void*)((uintptr_t)M.base() + StartOverlap), TrimmedSize); assert(((uintptr_t)Trimmed.base() % PageSize) == 0); assert((Trimmed.size() % PageSize) == 0); assert(M.base() <= Trimmed.base() && Trimmed.size() <= M.size()); return Trimmed; }
bool StringLatin1::IsEmpty() const { if (Trimmed().length() == 0) return true; return false; }