diff options
Diffstat (limited to 'prog/alloc.go')
| -rw-r--r-- | prog/alloc.go | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/prog/alloc.go b/prog/alloc.go index a4b7b7f1f..0af8c5bde 100644 --- a/prog/alloc.go +++ b/prog/alloc.go @@ -151,15 +151,9 @@ func (va *vmaAlloc) alloc(r *randGen, size uint64) uint64 { } else { page = va.used[r.rand(len(va.used))] if size > 1 && r.bin() { - off := r.rand(int(size)) - if off > page { - off = page - } - page -= off - } - if page+size > va.numPages { - page = va.numPages - size + page -= min(r.rand(int(size)), page) } + page = min(page, va.numPages-size) } if page >= va.numPages || size > va.numPages || page+size > va.numPages { panic(fmt.Sprintf("vmaAlloc: bad page=%v size=%v numPages=%v", page, size, va.numPages)) |
