OLD | NEW |
1 // Copyright 2009 the V8 project authors. All rights reserved. | 1 // Copyright 2009 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "src/api.h" | 7 #include "src/api.h" |
8 #include "src/global-handles.h" | 8 #include "src/global-handles.h" |
9 | 9 |
10 #include "src/vm-state-inl.h" | 10 #include "src/vm-state-inl.h" |
(...skipping 831 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
842 DCHECK(isolate_->heap()->gc_state() == Heap::NOT_IN_GC); | 842 DCHECK(isolate_->heap()->gc_state() == Heap::NOT_IN_GC); |
843 const int initial_post_gc_processing_count = ++post_gc_processing_count_; | 843 const int initial_post_gc_processing_count = ++post_gc_processing_count_; |
844 int freed_nodes = 0; | 844 int freed_nodes = 0; |
845 freed_nodes += DispatchPendingPhantomCallbacks(); | 845 freed_nodes += DispatchPendingPhantomCallbacks(); |
846 if (initial_post_gc_processing_count != post_gc_processing_count_) { | 846 if (initial_post_gc_processing_count != post_gc_processing_count_) { |
847 // If the callbacks caused a nested GC, then return. See comment in | 847 // If the callbacks caused a nested GC, then return. See comment in |
848 // PostScavengeProcessing. | 848 // PostScavengeProcessing. |
849 return freed_nodes; | 849 return freed_nodes; |
850 } | 850 } |
851 if (collector == SCAVENGER) { | 851 if (collector == SCAVENGER) { |
852 freed_nodes = PostScavengeProcessing(initial_post_gc_processing_count); | 852 freed_nodes += PostScavengeProcessing(initial_post_gc_processing_count); |
853 } else { | 853 } else { |
854 freed_nodes = PostMarkSweepProcessing(initial_post_gc_processing_count); | 854 freed_nodes += PostMarkSweepProcessing(initial_post_gc_processing_count); |
855 } | 855 } |
856 if (initial_post_gc_processing_count != post_gc_processing_count_) { | 856 if (initial_post_gc_processing_count != post_gc_processing_count_) { |
857 // If the callbacks caused a nested GC, then return. See comment in | 857 // If the callbacks caused a nested GC, then return. See comment in |
858 // PostScavengeProcessing. | 858 // PostScavengeProcessing. |
859 return freed_nodes; | 859 return freed_nodes; |
860 } | 860 } |
861 if (initial_post_gc_processing_count == post_gc_processing_count_) { | 861 if (initial_post_gc_processing_count == post_gc_processing_count_) { |
862 UpdateListOfNewSpaceNodes(); | 862 UpdateListOfNewSpaceNodes(); |
863 } | 863 } |
864 return freed_nodes; | 864 return freed_nodes; |
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1222 DCHECK_EQ(isolate->heap()->the_hole_value(), blocks_[block][offset]); | 1222 DCHECK_EQ(isolate->heap()->the_hole_value(), blocks_[block][offset]); |
1223 blocks_[block][offset] = object; | 1223 blocks_[block][offset] = object; |
1224 if (isolate->heap()->InNewSpace(object)) { | 1224 if (isolate->heap()->InNewSpace(object)) { |
1225 new_space_indices_.Add(size_); | 1225 new_space_indices_.Add(size_); |
1226 } | 1226 } |
1227 *index = size_++; | 1227 *index = size_++; |
1228 } | 1228 } |
1229 | 1229 |
1230 | 1230 |
1231 } } // namespace v8::internal | 1231 } } // namespace v8::internal |
OLD | NEW |