We were not following the man documented behaviors for invalid arguments to
memalign and associated functions. Using CHECK for those was a bit extreme,
so we relax the behavior to return null pointers as expected when this happens.
Adapt the associated test.
I am using this change also to change a few more minor performance improvements:
- mark as UNLIKELY a bunch of unlikely conditions;
- the current CHECK in __sanitizer::RoundUpTo is redundant for us in *all* calls. So I am introducing our own version without said CHECK.
- change our combined allocator GetActuallyAllocatedSize. We already know if the pointer is from the Primary or Secondary, so the PointerIsMine check is redundant as well, and costly for the 32-bit Primary. So we get the size by directly using the available Primary functions.
Finally, change a int to uptr to avoid a warning/error when compiling on
Android.
Please add a comment why you have your own RoundUpTo, otherwise someone later will "improve" the code back.