[iOS] Hook up screen.{availHeight, availWidth, height, width}
[WebKit-https.git] / Source / bmalloc / ChangeLog
1 2014-04-14  Geoffrey Garen  <ggaren@apple.com>
2
3         MallocBench should scavenge explicitly instead of waiting
4         https://bugs.webkit.org/show_bug.cgi?id=131661
5
6         Reviewed by Andreas Kling.
7
8         Added explicit scavenge support to bmalloc. This isn't a memory win,
9         since bmalloc's per-thread cache is so small. But it makes testing
10         simpler.
11
12         * bmalloc/Allocator.cpp:
13         (bmalloc::Allocator::~Allocator):
14         (bmalloc::Allocator::scavenge):
15         * bmalloc/Allocator.h:
16         * bmalloc/Cache.cpp:
17         (bmalloc::Cache::operator new):
18         (bmalloc::Cache::operator delete):
19         (bmalloc::Cache::Cache):
20         (bmalloc::Cache::scavenge):
21         * bmalloc/Cache.h:
22         * bmalloc/Deallocator.cpp:
23         (bmalloc::Deallocator::~Deallocator):
24         (bmalloc::Deallocator::scavenge):
25         * bmalloc/Deallocator.h: Factored existing scavenging code into helper
26         functions, for reuse.
27
28         * bmalloc/Heap.cpp:
29         (bmalloc::sleep):
30         (bmalloc::Heap::concurrentScavenge):
31         (bmalloc::Heap::scavenge):
32         (bmalloc::Heap::scavengeSmallPages):
33         (bmalloc::Heap::scavengeMediumPages):
34         (bmalloc::Heap::scavengeLargeRanges):
35         * bmalloc/Heap.h: Made scavenge sleep duration a parameter. Forced
36         scavenging -- in response to a benchmark or a low memory warning --
37         wants to complete as soon as possible, so its sleep duration is 0.
38
39         * bmalloc/bmalloc.h:
40         (bmalloc::api::scavenge):
41         * bmalloc/mbmalloc.cpp: Exported the scavenge API for MallocBench's use.
42
43 2014-04-14  Geoffrey Garen  <ggaren@apple.com>
44
45         Use 4kB pages on Mac
46         https://bugs.webkit.org/show_bug.cgi?id=131658
47
48         Reviewed by Sam Weinig.
49
50         This reduces memory use a lot on Membuster:
51
52                                                                   base                      patch                                Δ
53                 Execution Time:
54                     reddit_memory_warning                         18ms                       17ms                   ^ 1.06x faster
55                     flickr_memory_warning                         34ms                       36ms                   ! 1.06x slower
56                     theverge_memory_warning                       39ms                       41ms                   ! 1.05x slower
57
58                     <geometric mean>                              29ms                       29ms                   ! 1.02x slower
59                     <arithmetic mean>                             30ms                       31ms                   ! 1.03x slower
60                     <harmonic mean>                               27ms                       27ms                    ^ 1.0x faster
61
62                 Peak Memory:
63                     reddit_memory_warning                     16,412kB                   16,436kB                    ! 1.0x bigger
64                     flickr_memory_warning                     30,120kB                   30,184kB                    ! 1.0x bigger
65                     theverge_memory_warning                   33,408kB                   33,420kB                    ! 1.0x bigger
66
67                     <geometric mean>                          25,466kB                   25,499kB                    ! 1.0x bigger
68                     <arithmetic mean>                         26,647kB                   26,680kB                    ! 1.0x bigger
69                     <harmonic mean>                           24,181kB                   24,214kB                    ! 1.0x bigger
70
71                 Memory at End:
72                     reddit_memory_warning                      2,404kB                    1,920kB                  ^ 1.25x smaller
73                     flickr_memory_warning                      3,764kB                    3,072kB                  ^ 1.23x smaller
74                     theverge_memory_warning                    3,648kB                    3,132kB                  ^ 1.16x smaller
75
76                     <geometric mean>                           3,208kB                    2,644kB                  ^ 1.21x smaller
77                     <arithmetic mean>                          3,272kB                    2,708kB                  ^ 1.21x smaller
78                     <harmonic mean>                            3,139kB                    2,574kB                  ^ 1.22x smaller
79
80
81         * bmalloc.xcodeproj/project.pbxproj:
82         * bmalloc/BPlatform.h: Added.
83         * bmalloc/VMAllocate.h: Only use 16kB pages on iOS because the page size
84         is 4kB on Mac.
85
86 2014-04-14  Alexey Proskuryakov  <ap@apple.com>
87
88         Fixed svn:ignore on bmalloc.xcodeproj, it had erroneous leading spaces.
89
90         * bmalloc.xcodeproj: Modified property svn:ignore.
91
92 2014-04-13  Geoffrey Garen  <ggaren@apple.com>
93
94         Fixed some mbmalloc exports
95         https://bugs.webkit.org/show_bug.cgi?id=131599
96
97         Reviewed by Ryosuke Niwa.
98
99         * bmalloc.xcodeproj/project.pbxproj: Made some headers a private part
100         of the project, so we can call them from API.
101
102         * bmalloc/mbmalloc.cpp: Marked the mbmalloc functions with default
103         visibility, so they show up as exported in the .dylib.
104
105 2014-04-09  Geoffrey Garen  <ggaren@apple.com>
106
107         Put bmalloc headers in the right place
108         https://bugs.webkit.org/show_bug.cgi?id=131464
109
110         Reviewed by Mark Rowe.
111
112         * Configurations/bmalloc.xcconfig: Set PRIVATE_HEADERS_FOLDER_PATH to
113         specify that we don't just want to dump all of our generically-named
114         headers into /usr/local/include.
115
116 2014-04-08  Geoffrey Garen  <ggaren@apple.com>
117
118         Made bmalloc more #include friendly
119         https://bugs.webkit.org/show_bug.cgi?id=131386
120
121         Reviewed by Andreas Kling.
122
123         Marked a bunch of headers private so they can be used from client code
124         that #includes bmalloc.h.
125
126         Renamed ASSERT macros to BASSERT. This matches their header, which already
127         had to be renamed, and fixes conflicts with WTF's ASSERT macros.
128
129         * bmalloc.xcodeproj/project.pbxproj:
130         * bmalloc/Allocator.cpp:
131         (bmalloc::Allocator::allocateSlowCase):
132         * bmalloc/AsyncTask.h:
133         (bmalloc::Function>::runSlowCase):
134         * bmalloc/BAssert.h:
135         * bmalloc/BoundaryTag.h:
136         (bmalloc::BoundaryTag::setSize):
137         * bmalloc/BoundaryTagInlines.h:
138         (bmalloc::validate):
139         (bmalloc::BoundaryTag::init):
140         (bmalloc::BoundaryTag::deallocate):
141         (bmalloc::BoundaryTag::splitLarge):
142         (bmalloc::BoundaryTag::allocate):
143         * bmalloc/Chunk.h:
144         * bmalloc/Deallocator.cpp:
145         (bmalloc::Deallocator::processObjectLog):
146         (bmalloc::Deallocator::deallocateSlowCase):
147         * bmalloc/Deallocator.h:
148         (bmalloc::Deallocator::deallocateFastCase):
149         * bmalloc/FixedVector.h:
150         (bmalloc::Capacity>::operator):
151         (bmalloc::Capacity>::push):
152         (bmalloc::Capacity>::pop):
153         (bmalloc::Capacity>::shrink):
154         * bmalloc/Heap.cpp:
155         (bmalloc::Heap::allocateLarge):
156         * bmalloc/LargeChunk.h:
157         (bmalloc::LargeChunk::get):
158         (bmalloc::LargeChunk::endTag):
159         * bmalloc/Line.h:
160         (bmalloc::Line<Traits>::concurrentRef):
161         (bmalloc::Line<Traits>::deref):
162         * bmalloc/MediumAllocator.h:
163         (bmalloc::MediumAllocator::allocate):
164         * bmalloc/ObjectType.h:
165         (bmalloc::isSmall):
166         * bmalloc/Page.h:
167         (bmalloc::Page<Traits>::ref):
168         (bmalloc::Page<Traits>::deref):
169         * bmalloc/PerThread.h:
170         (bmalloc::PerThread<T>::getSlowCase):
171         * bmalloc/SegregatedFreeList.cpp:
172         (bmalloc::SegregatedFreeList::SegregatedFreeList):
173         (bmalloc::SegregatedFreeList::insert):
174         * bmalloc/SmallAllocator.h:
175         (bmalloc::SmallAllocator::allocate):
176         (bmalloc::SmallAllocator::refill):
177         * bmalloc/Syscall.h:
178         * bmalloc/VMAllocate.h:
179         (bmalloc::vmValidate):
180         (bmalloc::vmAllocate):
181         (bmalloc::vmDeallocatePhysicalPagesSloppy):
182         * bmalloc/Vector.h:
183         (bmalloc::Vector<T>::operator):
184         (bmalloc::Vector<T>::pop):
185         (bmalloc::Vector<T>::shrink):
186         * bmalloc/XLargeChunk.h:
187         (bmalloc::XLargeChunk::range):
188         (bmalloc::XLargeChunk::size):
189
190 2014-04-08  Geoffrey Garen  <ggaren@apple.com>
191
192         Removed an unused file.
193
194         Unreviewed.
195
196         * bmalloc/AsyncTask.cpp: Removed.
197
198 2014-04-07  Geoffrey Garen  <ggaren@apple.com>
199
200         Build bmalloc on Mac
201         https://bugs.webkit.org/show_bug.cgi?id=131333
202
203         Reviewed by Mark Rowe.
204
205         * Makefile: Added. For make clients.
206
207         These files are required for building any project in WebKit. I copied
208         them from WTF:
209         * Configurations: Added.
210         * Configurations/Base.xcconfig: Added.
211         * Configurations/DebugRelease.xcconfig: Added.
212         * Configurations/bmalloc.xcconfig: Added.
213         * Configurations/iOS.xcconfig: Added.
214         * Configurations/mbmalloc.xcconfig: Added.
215
216         * bmalloc.xcodeproj/project.pbxproj: I removed per-project-file stuff
217         from here because everything is in .xcconfig files now.
218
219         I had to fix a bunch of minor warnings, since they're enabled in our
220         .xcconfig files:
221
222         * bmalloc/AsyncTask.h:
223         (bmalloc::Function>::AsyncTask):
224         * bmalloc/BAssert.h:
225         * bmalloc/BoundaryTagInlines.h:
226         (bmalloc::validate):
227         * bmalloc/Heap.cpp:
228         (bmalloc::Heap::Heap):
229         (bmalloc::Heap::allocateLarge):
230         (bmalloc::Heap::deallocateLarge):
231         * bmalloc/Mutex.h:
232         (bmalloc::Mutex::Mutex): Deleted.
233         * bmalloc/VMAllocate.h:
234         (bmalloc::vmValidate):
235         * bmalloc/mbmalloc.cpp:
236
237 2014-04-07  Geoffrey Garen  <ggaren@apple.com>
238
239         bmalloc: Fixed a leak in the per-thread cache
240         https://bugs.webkit.org/show_bug.cgi?id=131330
241
242         Reviewed by Andreas Kling.
243
244         Remember to deallocate our line caches upon thread exit.
245
246         * bmalloc/Deallocator.cpp:
247         (bmalloc::Deallocator::~Deallocator):
248
249 2014-04-07  Geoffrey Garen  <ggaren@apple.com>
250
251         bmalloc: rolled out the tryLock experiment
252         https://bugs.webkit.org/show_bug.cgi?id=131328
253
254         Reviewed by Andreas Kling.
255
256         It wasn't a speedup.
257
258         * bmalloc.xcodeproj/project.pbxproj:
259         * bmalloc/Allocator.cpp:
260         (bmalloc::Allocator::processSmallAllocatorLog):
261         (bmalloc::Allocator::processMediumAllocatorLog):
262         * bmalloc/Deallocator.cpp:
263         (bmalloc::Deallocator::processObjectLog):
264         (bmalloc::Deallocator::deallocateSlowCase):
265         (bmalloc::Deallocator::deallocateSmallLine):
266         (bmalloc::Deallocator::deallocateMediumLine):
267         * bmalloc/Deallocator.h:
268         (bmalloc::Deallocator::deallocateFastCase):
269         * bmalloc/Heap.h:
270         (bmalloc::Heap::deallocateSmallLine):
271         (bmalloc::Heap::deallocateMediumLine):
272         * bmalloc/Line.h:
273         (bmalloc::Line<Traits>::deref):
274         * bmalloc/Page.h:
275         (bmalloc::Page<Traits>::deref):
276
277 2014-04-07  Geoffrey Garen  <ggaren@apple.com>
278
279         bmalloc
280         https://bugs.webkit.org/show_bug.cgi?id=131170
281
282         Reviewed by Andreas Kling.
283
284         Initial commit.
285
286         * bmalloc: Added.
287         * bmalloc.xcodeproj: Added.
288         * bmalloc.xcodeproj/project.pbxproj: Added.
289         * bmalloc/Algorithm.h: Added.
290         (bmalloc::max):
291         (bmalloc::min):
292         (bmalloc::mask):
293         (bmalloc::test):
294         (bmalloc::roundUpToMultipleOf):
295         (bmalloc::roundDownToMultipleOf):
296         (bmalloc::sizeOf):
297         (bmalloc::bitCount):
298         (bmalloc::isPowerOfTwo):
299         * bmalloc/Allocator.cpp: Added.
300         (bmalloc::Allocator::Allocator):
301         (bmalloc::Allocator::~Allocator):
302         (bmalloc::Allocator::log):
303         (bmalloc::Allocator::processSmallAllocatorLog):
304         (bmalloc::Allocator::processMediumAllocatorLog):
305         (bmalloc::Allocator::allocateLarge):
306         (bmalloc::Allocator::allocateXLarge):
307         (bmalloc::Allocator::allocateMedium):
308         (bmalloc::Allocator::allocateSlowCase):
309         * bmalloc/Allocator.h: Added.
310         (bmalloc::Allocator::smallAllocatorFor):
311         (bmalloc::Allocator::allocateFastCase):
312         (bmalloc::Allocator::allocate):
313         * bmalloc/AsyncTask.cpp: Added.
314         (bmalloc::AsyncTask<Function>::runSlowCase):
315         (bmalloc::AsyncTask<Function>::pthreadEntryPoint):
316         (bmalloc::AsyncTask<Function>::entryPoint):
317         * bmalloc/AsyncTask.h: Added.
318         (bmalloc::Function>::AsyncTask):
319         (bmalloc::Function>::join):
320         (bmalloc::Function>::run):
321         (bmalloc::Function>::runSlowCase):
322         (bmalloc::Function>::pthreadEntryPoint):
323         (bmalloc::Function>::entryPoint):
324         * bmalloc/BAssert.h: Added.
325         * bmalloc/BeginTag.h: Added.
326         (bmalloc::BeginTag::isInFreeList):
327         * bmalloc/BoundaryTag.h: Added.
328         (bmalloc::BoundaryTag::isXLarge):
329         (bmalloc::BoundaryTag::setXLarge):
330         (bmalloc::BoundaryTag::isFree):
331         (bmalloc::BoundaryTag::setFree):
332         (bmalloc::BoundaryTag::isEnd):
333         (bmalloc::BoundaryTag::setEnd):
334         (bmalloc::BoundaryTag::hasPhysicalPages):
335         (bmalloc::BoundaryTag::setHasPhysicalPages):
336         (bmalloc::BoundaryTag::isNull):
337         (bmalloc::BoundaryTag::clear):
338         (bmalloc::BoundaryTag::size):
339         (bmalloc::BoundaryTag::setSize):
340         (bmalloc::BoundaryTag::prev):
341         (bmalloc::BoundaryTag::next):
342         * bmalloc/BoundaryTagInlines.h: Added.
343         (bmalloc::validate):
344         (bmalloc::validatePrev):
345         (bmalloc::validateNext):
346         (bmalloc::BoundaryTag::init):
347         (bmalloc::BoundaryTag::mergeLargeLeft):
348         (bmalloc::BoundaryTag::mergeLargeRight):
349         (bmalloc::BoundaryTag::mergeLarge):
350         (bmalloc::BoundaryTag::deallocate):
351         (bmalloc::BoundaryTag::splitLarge):
352         (bmalloc::BoundaryTag::allocate):
353         * bmalloc/Cache.cpp: Added.
354         (bmalloc::Cache::operator new):
355         (bmalloc::Cache::operator delete):
356         (bmalloc::Cache::Cache):
357         (bmalloc::Cache::allocateSlowCase):
358         (bmalloc::Cache::allocateSlowCaseNullCache):
359         (bmalloc::Cache::deallocateSlowCase):
360         (bmalloc::Cache::deallocateSlowCaseNullCache):
361         * bmalloc/Cache.h: Added.
362         (bmalloc::Cache::allocator):
363         (bmalloc::Cache::deallocator):
364         (bmalloc::Cache::allocateFastCase):
365         (bmalloc::Cache::deallocateFastCase):
366         (bmalloc::Cache::allocate):
367         (bmalloc::Cache::deallocate):
368         * bmalloc/Chunk.h: Added.
369         (bmalloc::Chunk::begin):
370         (bmalloc::Chunk::end):
371         (bmalloc::Chunk::lines):
372         (bmalloc::Chunk::pages):
373         * bmalloc/Deallocator.cpp: Added.
374         (bmalloc::Deallocator::Deallocator):
375         (bmalloc::Deallocator::~Deallocator):
376         (bmalloc::Deallocator::deallocateLarge):
377         (bmalloc::Deallocator::deallocateXLarge):
378         (bmalloc::Deallocator::processObjectLog):
379         (bmalloc::Deallocator::deallocateSlowCase):
380         (bmalloc::Deallocator::deallocateSmallLine):
381         (bmalloc::Deallocator::allocateSmallLine):
382         (bmalloc::Deallocator::deallocateMediumLine):
383         (bmalloc::Deallocator::allocateMediumLine):
384         * bmalloc/Deallocator.h: Added.
385         (bmalloc::Deallocator::deallocateFastCase):
386         (bmalloc::Deallocator::deallocate):
387         * bmalloc/EndTag.h: Added.
388         (bmalloc::EndTag::operator=):
389         * bmalloc/FixedVector.h: Added.
390         (bmalloc::FixedVector::begin):
391         (bmalloc::FixedVector::end):
392         (bmalloc::FixedVector::size):
393         (bmalloc::FixedVector::capacity):
394         (bmalloc::FixedVector::clear):
395         (bmalloc::FixedVector::isEmpty):
396         (bmalloc::Capacity>::FixedVector):
397         (bmalloc::Capacity>::operator):
398         (bmalloc::Capacity>::push):
399         (bmalloc::Capacity>::pop):
400         (bmalloc::Capacity>::shrink):
401         * bmalloc/Heap.cpp: Added.
402         (bmalloc::sleep):
403         (bmalloc::Heap::Heap):
404         (bmalloc::Heap::concurrentScavenge):
405         (bmalloc::Heap::scavengeSmallPages):
406         (bmalloc::Heap::scavengeMediumPages):
407         (bmalloc::Heap::scavengeLargeRanges):
408         (bmalloc::Heap::allocateSmallLineSlowCase):
409         (bmalloc::Heap::allocateMediumLineSlowCase):
410         (bmalloc::Heap::allocateXLarge):
411         (bmalloc::Heap::deallocateXLarge):
412         (bmalloc::Heap::allocateLarge):
413         (bmalloc::Heap::deallocateLarge):
414         * bmalloc/Heap.h: Added.
415         (bmalloc::Heap::deallocateSmallLine):
416         (bmalloc::Heap::allocateSmallLine):
417         (bmalloc::Heap::deallocateMediumLine):
418         (bmalloc::Heap::allocateMediumLine):
419         * bmalloc/Inline.h: Added.
420         * bmalloc/LargeChunk.h: Added.
421         (bmalloc::LargeChunk::begin):
422         (bmalloc::LargeChunk::end):
423         (bmalloc::LargeChunk::create):
424         (bmalloc::LargeChunk::get):
425         (bmalloc::LargeChunk::beginTag):
426         (bmalloc::LargeChunk::endTag):
427         * bmalloc/Line.h: Added.
428         (bmalloc::Line<Traits>::begin):
429         (bmalloc::Line<Traits>::end):
430         (bmalloc::Line<Traits>::concurrentRef):
431         (bmalloc::Line<Traits>::deref):
432         * bmalloc/MediumAllocator.h: Added.
433         (bmalloc::MediumAllocator::isNull):
434         (bmalloc::MediumAllocator::MediumAllocator):
435         (bmalloc::MediumAllocator::line):
436         (bmalloc::MediumAllocator::allocate):
437         (bmalloc::MediumAllocator::derefCount):
438         (bmalloc::MediumAllocator::refill):
439         * bmalloc/MediumChunk.h: Added.
440         * bmalloc/MediumLine.h: Added.
441         * bmalloc/MediumPage.h: Added.
442         * bmalloc/MediumTraits.h: Added.
443         * bmalloc/Mutex.cpp: Added.
444         (bmalloc::Mutex::lockSlowCase):
445         * bmalloc/Mutex.h: Added.
446         (bmalloc::Mutex::Mutex):
447         (bmalloc::Mutex::try_lock):
448         (bmalloc::Mutex::lock):
449         (bmalloc::Mutex::unlock):
450         * bmalloc/ObjectType.cpp: Added.
451         (bmalloc::objectType):
452         * bmalloc/ObjectType.h: Added.
453         (bmalloc::isSmallOrMedium):
454         (bmalloc::isSmall):
455         * bmalloc/Page.h: Added.
456         (bmalloc::Page<Traits>::ref):
457         (bmalloc::Page<Traits>::deref):
458         (bmalloc::Page<Traits>::refCount):
459         * bmalloc/PerProcess.h: Added.
460         (bmalloc::PerProcess::mutex):
461         (bmalloc::PerProcess<T>::getFastCase):
462         (bmalloc::PerProcess<T>::get):
463         (bmalloc::PerProcess<T>::getSlowCase):
464         * bmalloc/PerThread.h: Added.
465         (bmalloc::PerThreadStorage<Cache>::get):
466         (bmalloc::PerThreadStorage<Cache>::init):
467         (bmalloc::PerThreadStorage::get):
468         (bmalloc::PerThreadStorage::init):
469         (bmalloc::PerThread<T>::getFastCase):
470         (bmalloc::PerThread<T>::get):
471         (bmalloc::PerThread<T>::destructor):
472         (bmalloc::PerThread<T>::getSlowCase):
473         * bmalloc/Range.h: Added.
474         (bmalloc::Range::Range):
475         (bmalloc::Range::begin):
476         (bmalloc::Range::end):
477         (bmalloc::Range::size):
478         (bmalloc::Range::operator!):
479         (bmalloc::Range::operator<):
480         * bmalloc/SegregatedFreeList.cpp: Added.
481         (bmalloc::SegregatedFreeList::SegregatedFreeList):
482         (bmalloc::SegregatedFreeList::insert):
483         (bmalloc::SegregatedFreeList::takeGreedy):
484         (bmalloc::SegregatedFreeList::take):
485         * bmalloc/SegregatedFreeList.h: Added.
486         * bmalloc/Sizes.h: Added.
487         * bmalloc/SmallAllocator.h: Added.
488         (bmalloc::SmallAllocator::isNull):
489         (bmalloc::SmallAllocator::canAllocate):
490         (bmalloc::SmallAllocator::SmallAllocator):
491         (bmalloc::SmallAllocator::line):
492         (bmalloc::SmallAllocator::allocate):
493         (bmalloc::SmallAllocator::objectCount):
494         (bmalloc::SmallAllocator::derefCount):
495         (bmalloc::SmallAllocator::refill):
496         * bmalloc/SmallChunk.h: Added.
497         * bmalloc/SmallLine.h: Added.
498         * bmalloc/SmallPage.h: Added.
499         * bmalloc/SmallTraits.h: Added.
500         * bmalloc/Syscall.h: Added.
501         * bmalloc/VMAllocate.h: Added.
502         (bmalloc::vmSize):
503         (bmalloc::vmValidate):
504         (bmalloc::vmAllocate):
505         (bmalloc::vmDeallocate):
506         (bmalloc::vmDeallocatePhysicalPages):
507         (bmalloc::vmAllocatePhysicalPages):
508         (bmalloc::vmDeallocatePhysicalPagesSloppy):
509         (bmalloc::vmAllocatePhysicalPagesSloppy):
510         * bmalloc/VMHeap.cpp: Added.
511         (bmalloc::VMHeap::VMHeap):
512         (bmalloc::VMHeap::allocateSmallChunk):
513         (bmalloc::VMHeap::allocateMediumChunk):
514         (bmalloc::VMHeap::allocateLargeChunk):
515         * bmalloc/VMHeap.h: Added.
516         (bmalloc::VMHeap::allocateSmallPage):
517         (bmalloc::VMHeap::allocateMediumPage):
518         (bmalloc::VMHeap::allocateLargeRange):
519         (bmalloc::VMHeap::deallocateSmallPage):
520         (bmalloc::VMHeap::deallocateMediumPage):
521         (bmalloc::VMHeap::deallocateLargeRange):
522         * bmalloc/Vector.h: Added.
523         (bmalloc::Vector::begin):
524         (bmalloc::Vector::end):
525         (bmalloc::Vector::size):
526         (bmalloc::Vector::capacity):
527         (bmalloc::Vector::last):
528         (bmalloc::Vector::pop):
529         (bmalloc::Vector<T>::Vector):
530         (bmalloc::Vector<T>::~Vector):
531         (bmalloc::Vector<T>::operator):
532         (bmalloc::Vector<T>::push):
533         (bmalloc::Vector<T>::pop):
534         (bmalloc::Vector<T>::shrink):
535         (bmalloc::Vector<T>::reallocateBuffer):
536         (bmalloc::Vector<T>::shrinkCapacity):
537         (bmalloc::Vector<T>::growCapacity):
538         * bmalloc/XLargeChunk.h: Added.
539         (bmalloc::XLargeChunk::get):
540         (bmalloc::XLargeChunk::begin):
541         (bmalloc::XLargeChunk::XLargeChunk):
542         (bmalloc::XLargeChunk::create):
543         (bmalloc::XLargeChunk::destroy):
544         (bmalloc::XLargeChunk::range):
545         (bmalloc::XLargeChunk::size):
546         * bmalloc/bmalloc.h: Added.
547         (bmalloc::api::malloc):
548         (bmalloc::api::free):
549         (bmalloc::api::realloc):
550         * bmalloc/mbmalloc.cpp: Added.
551