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

Reply via email to