Reviewers: Michael Starzinger, danno, loislo, alph-g,
Description:
Implicit references added by GC prologue callbacks added via
v8::V8::AddGCPrologueCallback were missing in heap profiles. This happened
because heap profiler only invoked GC prologue callbacks set using
deprecated
v8::V8::SetGlobalGCPrologueCallback method.
This patch removes deprecated
SetGlobalGCPrologueCallback/SetGlobalGCEpilogueCallback methods from v8 API
in
favor of
v8::V8::{Add/Remove}GCPrologueCallback/{Add/Remove}GCEpilogueCallback
methods that have been in the API for more than a year an all clients
should be
using the new API. WebKit e.g. switched to it in this change:
http://trac.webkit.org/changeset/132243
Heap profiler code was changed to call appropriate GC prologue/epilogue
callbacks with kGCTypeMarkSweepCompact as GC type parameter to simulate
callbacks behavior in case of major GC.
A couple of missing calls to RemoveImplicitRefGroups were added.
Original WebKit bug: https://bugs.webkit.org/show_bug.cgi?id=107425
Please review this at https://codereview.chromium.org/11953043/
SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/
Affected files:
M include/v8.h
M src/api.cc
M src/heap.h
M src/heap.cc
M src/profile-generator.cc
M test/cctest/test-heap-profiler.cc
M test/cctest/test-mark-compact.cc
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev