Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: Source/platform/heap/Heap.cpp

Issue 730443002: Oilpan: We shouldn't calculate allocationSizeFromSize twice (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/platform/heap/Heap.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 683 matching lines...) Expand 10 before | Expand all | Expand 10 after
694 void ThreadHeap<Header>::updateRemainingAllocationSize() 694 void ThreadHeap<Header>::updateRemainingAllocationSize()
695 { 695 {
696 if (m_lastRemainingAllocationSize > remainingAllocationSize()) { 696 if (m_lastRemainingAllocationSize > remainingAllocationSize()) {
697 stats().increaseObjectSpace(m_lastRemainingAllocationSize - remainingAll ocationSize()); 697 stats().increaseObjectSpace(m_lastRemainingAllocationSize - remainingAll ocationSize());
698 m_lastRemainingAllocationSize = remainingAllocationSize(); 698 m_lastRemainingAllocationSize = remainingAllocationSize();
699 } 699 }
700 ASSERT(m_lastRemainingAllocationSize == remainingAllocationSize()); 700 ASSERT(m_lastRemainingAllocationSize == remainingAllocationSize());
701 } 701 }
702 702
703 template<typename Header> 703 template<typename Header>
704 Address ThreadHeap<Header>::outOfLineAllocate(size_t size, const GCInfo* gcInfo) 704 Address ThreadHeap<Header>::outOfLineAllocate(size_t payloadSize, size_t allocat ionSize, const GCInfo* gcInfo)
705 { 705 {
706 size_t allocationSize = allocationSizeFromSize(size);
707 ASSERT(allocationSize > remainingAllocationSize()); 706 ASSERT(allocationSize > remainingAllocationSize());
708 if (allocationSize > blinkPageSize / 2) 707 if (allocationSize > blinkPageSize / 2)
709 return allocateLargeObject(allocationSize, gcInfo); 708 return allocateLargeObject(allocationSize, gcInfo);
710 709
711 updateRemainingAllocationSize(); 710 updateRemainingAllocationSize();
712 if (threadState()->shouldGC()) { 711 if (threadState()->shouldGC()) {
713 if (threadState()->shouldForceConservativeGC()) 712 if (threadState()->shouldForceConservativeGC())
714 Heap::collectGarbage(ThreadState::HeapPointersOnStack); 713 Heap::collectGarbage(ThreadState::HeapPointersOnStack);
715 else 714 else
716 threadState()->setGCRequested(); 715 threadState()->setGCRequested();
717 } 716 }
718 if (remainingAllocationSize() > 0) { 717 if (remainingAllocationSize() > 0) {
719 m_freeList.addToFreeList(currentAllocationPoint(), remainingAllocationSi ze()); 718 m_freeList.addToFreeList(currentAllocationPoint(), remainingAllocationSi ze());
720 setAllocationPoint(0, 0); 719 setAllocationPoint(0, 0);
721 } 720 }
722 ensureCurrentAllocation(allocationSize, gcInfo); 721 ensureCurrentAllocation(allocationSize, gcInfo);
723 return allocate(size, gcInfo); 722 return allocate(payloadSize, gcInfo);
724 } 723 }
725 724
726 template<typename Header> 725 template<typename Header>
727 bool ThreadHeap<Header>::allocateFromFreeList(size_t minSize) 726 bool ThreadHeap<Header>::allocateFromFreeList(size_t minSize)
728 { 727 {
729 size_t bucketSize = 1 << m_freeList.m_biggestFreeListIndex; 728 size_t bucketSize = 1 << m_freeList.m_biggestFreeListIndex;
730 int i = m_freeList.m_biggestFreeListIndex; 729 int i = m_freeList.m_biggestFreeListIndex;
731 for (; i > 0; i--, bucketSize >>= 1) { 730 for (; i > 0; i--, bucketSize >>= 1) {
732 if (bucketSize < minSize) { 731 if (bucketSize < minSize) {
733 // A FreeListEntry for bucketSize might be larger than minSize. 732 // A FreeListEntry for bucketSize might be larger than minSize.
(...skipping 2234 matching lines...) Expand 10 before | Expand all | Expand 10 after
2968 CallbackStack* Heap::s_weakCallbackStack; 2967 CallbackStack* Heap::s_weakCallbackStack;
2969 CallbackStack* Heap::s_ephemeronStack; 2968 CallbackStack* Heap::s_ephemeronStack;
2970 HeapDoesNotContainCache* Heap::s_heapDoesNotContainCache; 2969 HeapDoesNotContainCache* Heap::s_heapDoesNotContainCache;
2971 bool Heap::s_shutdownCalled = false; 2970 bool Heap::s_shutdownCalled = false;
2972 bool Heap::s_lastGCWasConservative = false; 2971 bool Heap::s_lastGCWasConservative = false;
2973 FreePagePool* Heap::s_freePagePool; 2972 FreePagePool* Heap::s_freePagePool;
2974 OrphanedPagePool* Heap::s_orphanedPagePool; 2973 OrphanedPagePool* Heap::s_orphanedPagePool;
2975 Heap::RegionTree* Heap::s_regionTree = 0; 2974 Heap::RegionTree* Heap::s_regionTree = 0;
2976 2975
2977 } // namespace blink 2976 } // namespace blink
OLDNEW
« no previous file with comments | « Source/platform/heap/Heap.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698