summaryrefslogtreecommitdiff
path: root/lib/scudo/scudo_allocator_combined.h
diff options
context:
space:
mode:
authorKostya Kortchinsky <kostyak@google.com>2017-06-29 16:45:20 +0000
committerKostya Kortchinsky <kostyak@google.com>2017-06-29 16:45:20 +0000
commit5d77c239d28020aa3c2e243e009e20e35c98f86e (patch)
tree6d20d9f6162f661eefafe8a6a2bded4c891a5952 /lib/scudo/scudo_allocator_combined.h
parenta05e4630f35a14d8db97417cdb6b959f2781b4f9 (diff)
[scudo] Change aligned alloc functions to be more compliant & perf changes
Summary: 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. Reviewers: alekseyshl Reviewed By: alekseyshl Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D34782 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@306698 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/scudo/scudo_allocator_combined.h')
-rw-r--r--lib/scudo/scudo_allocator_combined.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/scudo/scudo_allocator_combined.h b/lib/scudo/scudo_allocator_combined.h
index 21c45897b..818272868 100644
--- a/lib/scudo/scudo_allocator_combined.h
+++ b/lib/scudo/scudo_allocator_combined.h
@@ -45,7 +45,7 @@ class ScudoCombinedAllocator {
uptr GetActuallyAllocatedSize(void *Ptr, bool FromPrimary) {
if (FromPrimary)
- return Primary.GetActuallyAllocatedSize(Ptr);
+ return PrimaryAllocator::ClassIdToSize(Primary.GetSizeClass(Ptr));
return Secondary.GetActuallyAllocatedSize(Ptr);
}