bmalloc should implement malloc introspection (to stop false-positive leaks when...
authorggaren@apple.com <ggaren@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Feb 2015 20:42:52 +0000 (20:42 +0000)
committerggaren@apple.com <ggaren@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Feb 2015 20:42:52 +0000 (20:42 +0000)
commit7cc74b292be8971faa68bdc3636d051fe0912fd3
treeb87e7ec233cfa03a677a88ff5afdfca792029ab6
parent48b352f4320f681e1663cd0ab089f364c82b3986
bmalloc should implement malloc introspection (to stop false-positive leaks when MallocStackLogging is off)
https://bugs.webkit.org/show_bug.cgi?id=141802

Reviewed by Andreas Kling.

This patch does the bare minimum to stop false positive leaks from
being reported by the Darwin leaks tool. We register each super chunk
as a single object, and then request that the leaks tool scan it.

* bmalloc.xcodeproj/project.pbxproj: Added an abstraction for the malloc
zone introspection API.

* bmalloc/Algorithm.h: Missing #include.

* bmalloc/VMHeap.cpp:
(bmalloc::VMHeap::grow):
* bmalloc/VMHeap.h: Adopt the new abstraction.

* bmalloc/Zone.cpp: Added.
(bmalloc::remoteRead): Helper for reading an object out of another process.
(bmalloc::Zone::enumerator):
(bmalloc::Zone::Zone): Register a malloc zone so that we will participate
in introspection.

* bmalloc/Zone.h: Added.
(bmalloc::Zone::superChunks):
(bmalloc::Zone::addSuperChunk): Use a non-dynamically-allocated vector
since our dynamic allocations will not be scanned by leaks since they
will have the malloc VM tag.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@180359 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/bmalloc/ChangeLog
Source/bmalloc/bmalloc.xcodeproj/project.pbxproj
Source/bmalloc/bmalloc/Algorithm.h
Source/bmalloc/bmalloc/VMHeap.cpp
Source/bmalloc/bmalloc/VMHeap.h
Source/bmalloc/bmalloc/Zone.cpp [new file with mode: 0644]
Source/bmalloc/bmalloc/Zone.h [new file with mode: 0644]