| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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/accessors.h" | 7 #include "src/accessors.h" | 
| 8 #include "src/api.h" | 8 #include "src/api.h" | 
| 9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" | 
| 10 #include "src/base/once.h" | 10 #include "src/base/once.h" | 
| (...skipping 600 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 611 #endif | 611 #endif | 
| 612 | 612 | 
| 613   AllowHeapAllocation for_the_rest_of_the_epilogue; | 613   AllowHeapAllocation for_the_rest_of_the_epilogue; | 
| 614 | 614 | 
| 615 #ifdef DEBUG | 615 #ifdef DEBUG | 
| 616   if (FLAG_print_global_handles) isolate_->global_handles()->Print(); | 616   if (FLAG_print_global_handles) isolate_->global_handles()->Print(); | 
| 617   if (FLAG_print_handles) PrintHandles(); | 617   if (FLAG_print_handles) PrintHandles(); | 
| 618   if (FLAG_gc_verbose) Print(); | 618   if (FLAG_gc_verbose) Print(); | 
| 619   if (FLAG_code_stats) ReportCodeStatistics("After GC"); | 619   if (FLAG_code_stats) ReportCodeStatistics("After GC"); | 
| 620 #endif | 620 #endif | 
| 621   if (FLAG_check_handle_count) CheckHandleCount(); |  | 
| 622   if (FLAG_deopt_every_n_garbage_collections > 0) { | 621   if (FLAG_deopt_every_n_garbage_collections > 0) { | 
| 623     // TODO(jkummerow/ulan/jarin): This is not safe! We can't assume that | 622     // TODO(jkummerow/ulan/jarin): This is not safe! We can't assume that | 
| 624     // the topmost optimized frame can be deoptimized safely, because it | 623     // the topmost optimized frame can be deoptimized safely, because it | 
| 625     // might not have a lazy bailout point right after its current PC. | 624     // might not have a lazy bailout point right after its current PC. | 
| 626     if (++gcs_since_last_deopt_ == FLAG_deopt_every_n_garbage_collections) { | 625     if (++gcs_since_last_deopt_ == FLAG_deopt_every_n_garbage_collections) { | 
| 627       Deoptimizer::DeoptimizeAll(isolate()); | 626       Deoptimizer::DeoptimizeAll(isolate()); | 
| 628       gcs_since_last_deopt_ = 0; | 627       gcs_since_last_deopt_ = 0; | 
| 629     } | 628     } | 
| 630   } | 629   } | 
| 631 | 630 | 
| (...skipping 5011 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5643 | 5642 | 
| 5644 | 5643 | 
| 5645 void Heap::PrintHandles() { | 5644 void Heap::PrintHandles() { | 
| 5646   PrintF("Handles:\n"); | 5645   PrintF("Handles:\n"); | 
| 5647   PrintHandleVisitor v; | 5646   PrintHandleVisitor v; | 
| 5648   isolate_->handle_scope_implementer()->Iterate(&v); | 5647   isolate_->handle_scope_implementer()->Iterate(&v); | 
| 5649 } | 5648 } | 
| 5650 | 5649 | 
| 5651 #endif | 5650 #endif | 
| 5652 | 5651 | 
| 5653 class CheckHandleCountVisitor : public ObjectVisitor { |  | 
| 5654  public: |  | 
| 5655   CheckHandleCountVisitor() : handle_count_(0) {} |  | 
| 5656   ~CheckHandleCountVisitor() { CHECK(handle_count_ < 1000); } |  | 
| 5657   void VisitPointers(Object** start, Object** end) { |  | 
| 5658     handle_count_ += end - start; |  | 
| 5659   } |  | 
| 5660 |  | 
| 5661  private: |  | 
| 5662   ptrdiff_t handle_count_; |  | 
| 5663 }; |  | 
| 5664 |  | 
| 5665 |  | 
| 5666 void Heap::CheckHandleCount() { |  | 
| 5667   CheckHandleCountVisitor v; |  | 
| 5668   isolate_->handle_scope_implementer()->Iterate(&v); |  | 
| 5669 } |  | 
| 5670 |  | 
| 5671 | 5652 | 
| 5672 Space* AllSpaces::next() { | 5653 Space* AllSpaces::next() { | 
| 5673   switch (counter_++) { | 5654   switch (counter_++) { | 
| 5674     case NEW_SPACE: | 5655     case NEW_SPACE: | 
| 5675       return heap_->new_space(); | 5656       return heap_->new_space(); | 
| 5676     case OLD_POINTER_SPACE: | 5657     case OLD_POINTER_SPACE: | 
| 5677       return heap_->old_pointer_space(); | 5658       return heap_->old_pointer_space(); | 
| 5678     case OLD_DATA_SPACE: | 5659     case OLD_DATA_SPACE: | 
| 5679       return heap_->old_data_space(); | 5660       return heap_->old_data_space(); | 
| 5680     case CODE_SPACE: | 5661     case CODE_SPACE: | 
| (...skipping 732 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 6413       static_cast<int>(object_sizes_last_time_[index])); | 6394       static_cast<int>(object_sizes_last_time_[index])); | 
| 6414   CODE_AGE_LIST_COMPLETE(ADJUST_LAST_TIME_OBJECT_COUNT) | 6395   CODE_AGE_LIST_COMPLETE(ADJUST_LAST_TIME_OBJECT_COUNT) | 
| 6415 #undef ADJUST_LAST_TIME_OBJECT_COUNT | 6396 #undef ADJUST_LAST_TIME_OBJECT_COUNT | 
| 6416 | 6397 | 
| 6417   MemCopy(object_counts_last_time_, object_counts_, sizeof(object_counts_)); | 6398   MemCopy(object_counts_last_time_, object_counts_, sizeof(object_counts_)); | 
| 6418   MemCopy(object_sizes_last_time_, object_sizes_, sizeof(object_sizes_)); | 6399   MemCopy(object_sizes_last_time_, object_sizes_, sizeof(object_sizes_)); | 
| 6419   ClearObjectStats(); | 6400   ClearObjectStats(); | 
| 6420 } | 6401 } | 
| 6421 } | 6402 } | 
| 6422 }  // namespace v8::internal | 6403 }  // namespace v8::internal | 
| OLD | NEW | 
|---|