From 6a082c42d3fec53155cb149692c624ac03c60dfa Mon Sep 17 00:00:00 2001 From: gibbed Date: Mon, 20 Jun 2016 12:02:48 -0500 Subject: [PATCH] Fixed top-down memory allocations when alignment > page size. --- src/xenia/memory.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/xenia/memory.cc b/src/xenia/memory.cc index 5dcf5bfa8..8c909e887 100644 --- a/src/xenia/memory.cc +++ b/src/xenia/memory.cc @@ -751,7 +751,8 @@ bool BaseHeap::AllocRange(uint32_t low_address, uint32_t high_address, uint32_t page_scan_stride = alignment / page_size_; high_page_number = high_page_number - (high_page_number % page_scan_stride); if (top_down) { - for (int64_t base_page_number = high_page_number - page_count; + for (int64_t base_page_number = + high_page_number - xe::round_up(page_count, page_scan_stride); base_page_number >= low_page_number; base_page_number -= page_scan_stride) { if (page_table_[base_page_number].state != 0) {