Reviewers: Vyacheslav Egorov,
Description:
Make sure that heap is iterable prior to iterating it in Logger:: methods.
[email protected]
BUG=v8:1700
TEST=none
Please review this at http://codereview.chromium.org/8079002/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/log.cc
Index: src/log.cc
diff --git a/src/log.cc b/src/log.cc
index
6373a35161cd2963210bcc024585db0eb6dbc252..bad5fdc93098d9d32acaaa76d43400dbf141f823
100644
--- a/src/log.cc
+++ b/src/log.cc
@@ -1519,6 +1519,7 @@ void Logger::LowLevelLogWriteBytes(const char* bytes,
int size) {
void Logger::LogCodeObjects() {
+ HEAP->CollectAllGarbage(Heap::kMakeHeapIterableMask);
HeapIterator iterator;
AssertNoAllocation no_alloc;
for (HeapObject* obj = iterator.next(); obj != NULL; obj =
iterator.next()) {
@@ -1573,6 +1574,7 @@ void
Logger::LogExistingFunction(Handle<SharedFunctionInfo> shared,
void Logger::LogCompiledFunctions() {
+ HEAP->CollectAllGarbage(Heap::kMakeHeapIterableMask);
HandleScope scope;
const int compiled_funcs_count = EnumerateCompiledFunctions(NULL, NULL);
ScopedVector< Handle<SharedFunctionInfo> > sfis(compiled_funcs_count);
@@ -1591,6 +1593,7 @@ void Logger::LogCompiledFunctions() {
void Logger::LogAccessorCallbacks() {
+ HEAP->CollectAllGarbage(Heap::kMakeHeapIterableMask);
HeapIterator iterator;
AssertNoAllocation no_alloc;
for (HeapObject* obj = iterator.next(); obj != NULL; obj =
iterator.next()) {
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev