bmalloc: stress_aligned test fails if you increase smallMax
authorggaren@apple.com <ggaren@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 8 Apr 2016 20:59:51 +0000 (20:59 +0000)
committerggaren@apple.com <ggaren@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 8 Apr 2016 20:59:51 +0000 (20:59 +0000)
commit6f995882924b313b9937f90cd5193359ff6a14c5
treed105e5fea869d8857668486f47b4561946027408
parent3f49ec2245908f4f17f2aa7a5d093ffe41e08fdb
bmalloc: stress_aligned test fails if you increase smallMax
https://bugs.webkit.org/show_bug.cgi?id=156414

Reviewed by Oliver Hunt.

When size exceeds alignment and is a multiple of alignment and is not
a power of two, such as 24kB with 8kB alignment, the small allocator
did not always guarantee alignment. Let's fix that.

* bmalloc/Algorithm.h:
(bmalloc::divideRoundingUp): Math is hard.

* bmalloc/Allocator.cpp:
(bmalloc::Allocator::allocate): Align to the page size unconditionally.
Even if the page size is not a power of two, it might be a multiple of
a power of two, and we want alignment to that smaller power of two to
be guaranteed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@199246 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/bmalloc/ChangeLog
Source/bmalloc/bmalloc/Algorithm.h
Source/bmalloc/bmalloc/VMHeap.cpp