Revision: 21691
Author: [email protected]
Date: Thu Jun 5 08:56:38 2014 UTC
Log: Do not make heap iterable eagerly.
[email protected]
BUG=379740
LOG=Y
Review URL: https://codereview.chromium.org/318863004
http://code.google.com/p/v8/source/detail?r=21691
Modified:
/branches/bleeding_edge/src/heap.h
/branches/bleeding_edge/src/liveedit.cc
=======================================
--- /branches/bleeding_edge/src/heap.h Thu Jun 5 08:44:42 2014 UTC
+++ /branches/bleeding_edge/src/heap.h Thu Jun 5 08:56:38 2014 UTC
@@ -764,10 +764,6 @@
// 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();
@@ -1707,6 +1703,10 @@
// 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.
@@ -2171,10 +2171,11 @@
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;
@@ -2182,7 +2183,7 @@
#ifdef VERIFY_HEAP
friend class NoWeakObjectVerificationScope;
#endif
- friend class GCCallbacksScope;
+ friend class Page;
DISALLOW_COPY_AND_ASSIGN(Heap);
};
=======================================
--- /branches/bleeding_edge/src/liveedit.cc Tue Jun 3 15:45:38 2014 UTC
+++ /branches/bleeding_edge/src/liveedit.cc Thu Jun 5 08:56:38 2014 UTC
@@ -1188,8 +1188,6 @@
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 @@
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.