Home | History | Annotate | Download | only in sanitizer_common

Lines Matching refs:class_id

31 // Classes 1 - 16 correspond to sizes 16 to 256 (size = class_id * 16).
120 static uptr Size(uptr class_id) {
121 if (class_id <= kMidClass)
122 return kMinSize * class_id;
123 class_id -= kMidClass;
124 uptr t = kMidSize << (class_id >> S);
125 return t + (t >> S) * (class_id & M);
139 static uptr MaxCached(uptr class_id) {
140 if (class_id == 0) return 0;
141 uptr n = (1UL << kMaxBytesCachedLog) / Size(class_id);
165 static bool SizeClassRequiresSeparateTransferBatch(uptr class_id) {
166 return Size(class_id) < sizeof(TransferBatch) -
167 sizeof(uptr) * (kMaxNumCached - MaxCached(class_id));
346 uptr class_id) {
347 CHECK_LT(class_id, kNumClasses);
348 RegionInfo *region = GetRegionInfo(class_id);
351 b = PopulateFreeList(stat, c, class_id, region);
356 NOINLINE void DeallocateBatch(AllocatorStats *stat, uptr class_id, Batch *b) {
357 RegionInfo *region = GetRegionInfo(class_id);
372 uptr class_id = GetSizeClass(p);
373 uptr size = SizeClassMap::Size(class_id);
379 if (class_id >= kNumClasses) return nullptr;
380 RegionInfo *region = GetRegionInfo(class_id);
394 uptr class_id = GetSizeClass(p);
395 uptr size = SizeClassMap::Size(class_id);
397 return reinterpret_cast<void*>(kSpaceBeg + (kRegionSize * (class_id + 1)) -
417 for (uptr class_id = 1; class_id < kNumClasses; class_id++) {
418 RegionInfo *region = GetRegionInfo(class_id);
426 for (uptr class_id = 1; class_id < kNumClasses; class_id++) {
427 RegionInfo *region = GetRegionInfo(class_id);
430 class_id,
431 SizeClassMap::Size(class_id),
455 for (uptr class_id = 1; class_id < kNumClasses; class_id++) {
456 RegionInfo *region = GetRegionInfo(class_id);
457 uptr chunk_size = SizeClassMap::Size(class_id);
458 uptr region_beg = kSpaceBeg + class_id * kRegionSize;
502 RegionInfo *GetRegionInfo(uptr class_id) {
503 CHECK_LT(class_id, kNumClasses);
505 return &regions[class_id];
518 uptr class_id, RegionInfo *region) {
523 uptr size = SizeClassMap::Size(class_id);
524 uptr count = size < kPopulateSize ? SizeClassMap::MaxCached(class_id) : 1;
527 uptr region_beg = kSpaceBeg + kRegionSize * class_id;
559 if (SizeClassMap::SizeClassRequiresSeparateTransferBatch(class_id))
731 uptr class_id) {
732 CHECK_LT(class_id, kNumClasses);
733 SizeClassInfo *sci = GetSizeClassInfo(class_id);
736 PopulateFreeList(stat, c, sci, class_id);
743 NOINLINE void DeallocateBatch(AllocatorStats *stat, uptr class_id, Batch *b) {
744 CHECK_LT(class_id, kNumClasses);
745 SizeClassInfo *sci = GetSizeClassInfo(class_id);
854 uptr AllocateRegion(AllocatorStats *stat, uptr class_id) {
855 CHECK_LT(class_id, kNumClasses);
861 possible_regions.set(ComputeRegionId(res), static_cast<u8>(class_id));
865 SizeClassInfo *GetSizeClassInfo(uptr class_id) {
866 CHECK_LT(class_id, kNumClasses);
867 return &size_class_info_array[class_id];
871 SizeClassInfo *sci, uptr class_id) {
872 uptr size = SizeClassMap::Size(class_id);
873 uptr reg = AllocateRegion(stat, class_id);
875 uptr max_count = SizeClassMap::MaxCached(class_id);
879 if (SizeClassMap::SizeClassRequiresSeparateTransferBatch(class_id))
922 void *Allocate(SizeClassAllocator *allocator, uptr class_id) {
923 CHECK_NE(class_id, 0UL);
924 CHECK_LT(class_id, kNumClasses);
925 stats_.Add(AllocatorStatAllocated, SizeClassMap::Size(class_id));
926 PerClass *c = &per_class_[class_id];
928 Refill(allocator, class_id);
934 void Deallocate(SizeClassAllocator *allocator, uptr class_id, void *p) {
935 CHECK_NE(class_id, 0UL);
936 CHECK_LT(class_id, kNumClasses);
940 stats_.Sub(AllocatorStatAllocated, SizeClassMap::Size(class_id));
941 PerClass *c = &per_class_[class_id];
944 Drain(allocator, class_id);
949 for (uptr class_id = 0; class_id < kNumClasses; class_id++) {
950 PerClass *c = &per_class_[class_id];
952 Drain(allocator, class_id);
976 NOINLINE void Refill(SizeClassAllocator *allocator, uptr class_id) {
978 class_id];
979 Batch *b = allocator->AllocateBatch(&stats_, this, class_id);
984 if (SizeClassMap::SizeClassRequiresSeparateTransferBatch(class_id))
988 NOINLINE void Drain(SizeClassAllocator *allocator, uptr class_id) {
990 PerClass *c = &per_class_[class_id];
992 if (SizeClassMap::SizeClassRequiresSeparateTransferBatch(class_id))
1004 allocator->DeallocateBatch(&stats_, class_id, b);