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 936 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
947 ASSERT(!partitionPageGetRawSize(page)); | 947 ASSERT(!partitionPageGetRawSize(page)); |
948 | 948 |
949 partitionRegisterEmptyPage(page); | 949 partitionRegisterEmptyPage(page); |
950 } else { | 950 } else { |
951 ASSERT(!partitionBucketIsDirectMapped(bucket)); | 951 ASSERT(!partitionBucketIsDirectMapped(bucket)); |
952 // Ensure that the page is full. That's the only valid case if we | 952 // Ensure that the page is full. That's the only valid case if we |
953 // arrive here. | 953 // arrive here. |
954 ASSERT(page->numAllocatedSlots < 0); | 954 ASSERT(page->numAllocatedSlots < 0); |
955 // A transition of numAllocatedSlots from 0 to -1 is not legal, and | 955 // A transition of numAllocatedSlots from 0 to -1 is not legal, and |
956 // likely indicates a double-free. | 956 // likely indicates a double-free. |
957 RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(page->numAllocatedSlots != -1); | 957 SECURITY_CHECK(page->numAllocatedSlots != -1); |
958 page->numAllocatedSlots = -page->numAllocatedSlots - 2; | 958 page->numAllocatedSlots = -page->numAllocatedSlots - 2; |
959 ASSERT(page->numAllocatedSlots == partitionBucketSlots(bucket) - 1); | 959 ASSERT(page->numAllocatedSlots == partitionBucketSlots(bucket) - 1); |
960 // Fully used page became partially used. It must be put back on the | 960 // Fully used page became partially used. It must be put back on the |
961 // non-full page list. Also make it the current page to increase the | 961 // non-full page list. Also make it the current page to increase the |
962 // chances of it being filled up again. The old current page will be | 962 // chances of it being filled up again. The old current page will be |
963 // the next page. | 963 // the next page. |
964 ASSERT(!page->nextPage); | 964 ASSERT(!page->nextPage); |
965 if (LIKELY(bucket->activePagesHead != &PartitionRootGeneric::gSeedPage)) | 965 if (LIKELY(bucket->activePagesHead != &PartitionRootGeneric::gSeedPage)) |
966 page->nextPage = bucket->activePagesHead; | 966 page->nextPage = bucket->activePagesHead; |
967 bucket->activePagesHead = page; | 967 bucket->activePagesHead = page; |
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1402 partitionStats.totalDiscardableBytes += memoryStats[i].discardableBy
tes; | 1402 partitionStats.totalDiscardableBytes += memoryStats[i].discardableBy
tes; |
1403 if (!isLightDump) | 1403 if (!isLightDump) |
1404 partitionStatsDumper->partitionsDumpBucketStats(partitionName, &
memoryStats[i]); | 1404 partitionStatsDumper->partitionsDumpBucketStats(partitionName, &
memoryStats[i]); |
1405 } | 1405 } |
1406 } | 1406 } |
1407 partitionStatsDumper->partitionDumpTotals(partitionName, &partitionStats); | 1407 partitionStatsDumper->partitionDumpTotals(partitionName, &partitionStats); |
1408 } | 1408 } |
1409 | 1409 |
1410 } // namespace WTF | 1410 } // namespace WTF |
1411 | 1411 |
OLD | NEW |