OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 781 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
792 ptr = partitionCookieFreePointerAdjust(ptr); | 792 ptr = partitionCookieFreePointerAdjust(ptr); |
793 ASSERT(partitionPointerIsValid(ptr)); | 793 ASSERT(partitionPointerIsValid(ptr)); |
794 PartitionPage* page = partitionPointerToPage(ptr); | 794 PartitionPage* page = partitionPointerToPage(ptr); |
795 partitionFreeWithPage(ptr, page); | 795 partitionFreeWithPage(ptr, page); |
796 #endif | 796 #endif |
797 } | 797 } |
798 | 798 |
799 ALWAYS_INLINE PartitionBucket* partitionGenericSizeToBucket( | 799 ALWAYS_INLINE PartitionBucket* partitionGenericSizeToBucket( |
800 PartitionRootGeneric* root, | 800 PartitionRootGeneric* root, |
801 size_t size) { | 801 size_t size) { |
802 size_t order = kBitsPerSizet - countLeadingZerosSizet(size); | 802 size_t order = kBitsPerSizet - CountLeadingZeroBitsSizeT(size); |
803 // The order index is simply the next few bits after the most significant bit. | 803 // The order index is simply the next few bits after the most significant bit. |
804 size_t orderIndex = (size >> root->orderIndexShifts[order]) & | 804 size_t orderIndex = (size >> root->orderIndexShifts[order]) & |
805 (kGenericNumBucketsPerOrder - 1); | 805 (kGenericNumBucketsPerOrder - 1); |
806 // And if the remaining bits are non-zero we must bump the bucket up. | 806 // And if the remaining bits are non-zero we must bump the bucket up. |
807 size_t subOrderIndex = size & root->orderSubIndexMasks[order]; | 807 size_t subOrderIndex = size & root->orderSubIndexMasks[order]; |
808 PartitionBucket* bucket = | 808 PartitionBucket* bucket = |
809 root->bucketLookups[(order << kGenericNumBucketsPerOrderBits) + | 809 root->bucketLookups[(order << kGenericNumBucketsPerOrderBits) + |
810 orderIndex + !!subOrderIndex]; | 810 orderIndex + !!subOrderIndex]; |
811 ASSERT(!bucket->slotSize || bucket->slotSize >= size); | 811 ASSERT(!bucket->slotSize || bucket->slotSize >= size); |
812 ASSERT(!(bucket->slotSize % kGenericSmallestBucket)); | 812 ASSERT(!(bucket->slotSize % kGenericSmallestBucket)); |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
948 using WTF::partitionAlloc; | 948 using WTF::partitionAlloc; |
949 using WTF::partitionFree; | 949 using WTF::partitionFree; |
950 using WTF::partitionAllocGeneric; | 950 using WTF::partitionAllocGeneric; |
951 using WTF::partitionFreeGeneric; | 951 using WTF::partitionFreeGeneric; |
952 using WTF::partitionReallocGeneric; | 952 using WTF::partitionReallocGeneric; |
953 using WTF::partitionAllocActualSize; | 953 using WTF::partitionAllocActualSize; |
954 using WTF::partitionAllocSupportsGetSize; | 954 using WTF::partitionAllocSupportsGetSize; |
955 using WTF::partitionAllocGetSize; | 955 using WTF::partitionAllocGetSize; |
956 | 956 |
957 #endif // WTF_PartitionAlloc_h | 957 #endif // WTF_PartitionAlloc_h |
OLD | NEW |