Lines Matching refs:allocator
10 // Specialized memory allocator for ThreadSanitizer, MemorySanitizer, etc.
39 // This class also gives a hint to a thread-caching allocator about the amount
196 // Memory allocator statistics
285 // SizeClassAllocator64 -- allocator for 64-bit address space.
440 // The allocator must be locked when calling this function.
589 // SizeClassAllocator32 -- allocator for 32-bit address space.
590 // This allocator can theoretically be used on 64-bit arch, but there it is less
601 // 0 size class means the region is not used by the allocator.
731 // The allocator must be locked when calling this function.
827 typedef SizeClassAllocator Allocator;
836 void Destroy(SizeClassAllocator *allocator, AllocatorGlobalStats *s) {
837 Drain(allocator);
842 void *Allocate(SizeClassAllocator *allocator, uptr class_id) {
848 Refill(allocator, class_id);
854 void Deallocate(SizeClassAllocator *allocator, uptr class_id, void *p) {
857 // If the first allocator call on a new thread is a deallocation, then
864 Drain(allocator, class_id);
868 void Drain(SizeClassAllocator *allocator) {
872 Drain(allocator, class_id);
896 NOINLINE void Refill(SizeClassAllocator *allocator, uptr class_id) {
899 Batch *b = allocator->AllocateBatch(&stats_, this, class_id);
905 Deallocate(allocator, SizeClassMap::ClassID(sizeof(Batch)), b);
908 NOINLINE void Drain(SizeClassAllocator *allocator, uptr class_id) {
913 b = (Batch*)Allocate(allocator, SizeClassMap::ClassID(sizeof(Batch)));
924 allocator->DeallocateBatch(&stats_, class_id, b);
929 // The main purpose of this allocator is to cover large and rare allocation
1046 // Must be called with the allocator locked.
1111 // The allocator must be locked when calling this function.
1154 // This class implements a complete memory allocator by using two
1240 // Must be called with the allocator locked.
1293 // The allocator must be locked when calling this function.