diff options
author | Trevor Norris <trev.norris@gmail.com> | 2013-07-22 15:26:27 -0700 |
---|---|---|
committer | Trevor Norris <trev.norris@gmail.com> | 2013-07-22 15:53:10 -0700 |
commit | 5777d7ab3038983d368046ab40eb34075f635348 (patch) | |
tree | da7c01759b83e7afa463cbaac095a051f158eb44 /deps/v8/src/global-handles.cc | |
parent | 254b711155996e379a41a569a38dd98dbd7a6e47 (diff) | |
download | android-node-v8-5777d7ab3038983d368046ab40eb34075f635348.tar.gz android-node-v8-5777d7ab3038983d368046ab40eb34075f635348.tar.bz2 android-node-v8-5777d7ab3038983d368046ab40eb34075f635348.zip |
v8: upgrade to v8 3.20.7
Diffstat (limited to 'deps/v8/src/global-handles.cc')
-rw-r--r-- | deps/v8/src/global-handles.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/deps/v8/src/global-handles.cc b/deps/v8/src/global-handles.cc index b601e99900..5c65635d0f 100644 --- a/deps/v8/src/global-handles.cc +++ b/deps/v8/src/global-handles.cc @@ -634,6 +634,11 @@ bool GlobalHandles::PostGarbageCollectionProcessing( for (int i = 0; i < new_space_nodes_.length(); ++i) { Node* node = new_space_nodes_[i]; ASSERT(node->is_in_new_space_list()); + if (!node->IsRetainer()) { + // Free nodes do not have weak callbacks. Do not use them to compute + // the next_gc_likely_to_collect_more. + continue; + } // Skip dependent handles. Their weak callbacks might expect to be // called between two global garbage collection callbacks which // are not called for minor collections. @@ -656,6 +661,11 @@ bool GlobalHandles::PostGarbageCollectionProcessing( } } else { for (NodeIterator it(this); !it.done(); it.Advance()) { + if (!it.node()->IsRetainer()) { + // Free nodes do not have weak callbacks. Do not use them to compute + // the next_gc_likely_to_collect_more. + continue; + } it.node()->clear_partially_dependent(); if (it.node()->PostGarbageCollectionProcessing(isolate_)) { if (initial_post_gc_processing_count != post_gc_processing_count_) { @@ -799,6 +809,7 @@ void GlobalHandles::PrintStats() { PrintF(" # total = %d\n", total); } + void GlobalHandles::Print() { PrintF("Global handles:\n"); for (NodeIterator it(this); !it.done(); it.Advance()) { |