Reviewers: jarin,

Description:
Do not make heap iterable eagerly.

[email protected]
BUG=379740
LOG=Y

Please review this at https://codereview.chromium.org/318863004/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files (+8, -11 lines):
  M src/heap.h
  M src/liveedit.cc


Index: src/heap.h
diff --git a/src/heap.h b/src/heap.h
index e9747df11403b9d1309facaf33545c1155d9d757..af2a662c4cb64b419ad493f6cd6f7ef276bafaed 100644
--- a/src/heap.h
+++ b/src/heap.h
@@ -764,10 +764,6 @@ class Heap {
   // Check whether the heap is currently iterable.
   bool IsHeapIterable();

-  // Ensure that we have swept all spaces in such a way that we can iterate
-  // over all objects.  May cause a GC.
-  void MakeHeapIterable();
-
   // Notify the heap that a context has been disposed.
   int NotifyContextDisposed();

@@ -1716,6 +1712,10 @@ class Heap {
   // with the allocation memento of the object at the top
   void EnsureFillerObjectAtTop();

+  // Ensure that we have swept all spaces in such a way that we can iterate
+  // over all objects.  May cause a GC.
+  void MakeHeapIterable();
+
   // Performs garbage collection operation.
   // Returns whether there is a chance that another major GC could
   // collect more garbage.
@@ -2180,10 +2180,11 @@ class Heap {

   int gc_callbacks_depth_;

+  friend class AlwaysAllocateScope;
   friend class Factory;
+  friend class GCCallbacksScope;
   friend class GCTracer;
-  friend class AlwaysAllocateScope;
-  friend class Page;
+  friend class HeapIterator;
   friend class Isolate;
   friend class MarkCompactCollector;
   friend class MarkCompactMarkingVisitor;
@@ -2191,7 +2192,7 @@ class Heap {
 #ifdef VERIFY_HEAP
   friend class NoWeakObjectVerificationScope;
 #endif
-  friend class GCCallbacksScope;
+  friend class Page;

   DISALLOW_COPY_AND_ASSIGN(Heap);
 };
Index: src/liveedit.cc
diff --git a/src/liveedit.cc b/src/liveedit.cc
index bbec2789816580902c491fb9f765015a358e6d08..d802d0dd9d88978bcfaa56f696a660e2291ea12d 100644
--- a/src/liveedit.cc
+++ b/src/liveedit.cc
@@ -1188,8 +1188,6 @@ void LiveEdit::ReplaceFunctionCode(

   Handle<SharedFunctionInfo> shared_info = shared_info_wrapper.GetInfo();

-  isolate->heap()->MakeHeapIterable();
-
   if (IsJSFunctionCode(shared_info->code())) {
     Handle<Code> code = compile_info_wrapper.GetFunctionCode();
     ReplaceCodeObject(Handle<Code>(shared_info->code()), code);
@@ -1425,8 +1423,6 @@ void LiveEdit::PatchFunctionPositions(Handle<JSArray> shared_info_array,
   info->set_end_position(new_function_end);
   info->set_function_token_position(new_function_token_pos);

-  info->GetIsolate()->heap()->MakeHeapIterable();
-
   if (IsJSFunctionCode(info->code())) {
     // Patch relocation info section of the code.
Handle<Code> patched_code = PatchPositionsInCode(Handle<Code>(info->code()),


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to