| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. | 
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without | 
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are | 
| 4 // met: | 4 // met: | 
| 5 // | 5 // | 
| 6 //     * Redistributions of source code must retain the above copyright | 6 //     * Redistributions of source code must retain the above copyright | 
| 7 //       notice, this list of conditions and the following disclaimer. | 7 //       notice, this list of conditions and the following disclaimer. | 
| 8 //     * Redistributions in binary form must reproduce the above | 8 //     * Redistributions in binary form must reproduce the above | 
| 9 //       copyright notice, this list of conditions and the following | 9 //       copyright notice, this list of conditions and the following | 
| 10 //       disclaimer in the documentation and/or other materials provided | 10 //       disclaimer in the documentation and/or other materials provided | 
| (...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 429     new_space_.ReportStatistics(); | 429     new_space_.ReportStatistics(); | 
| 430   } | 430   } | 
| 431 #else | 431 #else | 
| 432   if (FLAG_log_gc) new_space_.ReportStatistics(); | 432   if (FLAG_log_gc) new_space_.ReportStatistics(); | 
| 433 #endif  // DEBUG | 433 #endif  // DEBUG | 
| 434 } | 434 } | 
| 435 | 435 | 
| 436 | 436 | 
| 437 void Heap::GarbageCollectionPrologue() { | 437 void Heap::GarbageCollectionPrologue() { | 
| 438   {  AllowHeapAllocation for_the_first_part_of_prologue; | 438   {  AllowHeapAllocation for_the_first_part_of_prologue; | 
| 439     isolate_->transcendental_cache()->Clear(); |  | 
| 440     ClearJSFunctionResultCaches(); | 439     ClearJSFunctionResultCaches(); | 
| 441     gc_count_++; | 440     gc_count_++; | 
| 442     unflattened_strings_length_ = 0; | 441     unflattened_strings_length_ = 0; | 
| 443 | 442 | 
| 444     if (FLAG_flush_code && FLAG_flush_code_incrementally) { | 443     if (FLAG_flush_code && FLAG_flush_code_incrementally) { | 
| 445       mark_compact_collector()->EnableCodeFlushing(true); | 444       mark_compact_collector()->EnableCodeFlushing(true); | 
| 446     } | 445     } | 
| 447 | 446 | 
| 448 #ifdef VERIFY_HEAP | 447 #ifdef VERIFY_HEAP | 
| 449     if (FLAG_verify_heap) { | 448     if (FLAG_verify_heap) { | 
| (...skipping 7298 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 7748 #ifdef DEBUG | 7747 #ifdef DEBUG | 
| 7749 void Heap::GarbageCollectionGreedyCheck() { | 7748 void Heap::GarbageCollectionGreedyCheck() { | 
| 7750   ASSERT(FLAG_gc_greedy); | 7749   ASSERT(FLAG_gc_greedy); | 
| 7751   if (isolate_->bootstrapper()->IsActive()) return; | 7750   if (isolate_->bootstrapper()->IsActive()) return; | 
| 7752   if (disallow_allocation_failure()) return; | 7751   if (disallow_allocation_failure()) return; | 
| 7753   CollectGarbage(NEW_SPACE); | 7752   CollectGarbage(NEW_SPACE); | 
| 7754 } | 7753 } | 
| 7755 #endif | 7754 #endif | 
| 7756 | 7755 | 
| 7757 | 7756 | 
| 7758 TranscendentalCache::SubCache::SubCache(Isolate* isolate, Type t) |  | 
| 7759   : type_(t), |  | 
| 7760     isolate_(isolate) { |  | 
| 7761   uint32_t in0 = 0xffffffffu;  // Bit-pattern for a NaN that isn't |  | 
| 7762   uint32_t in1 = 0xffffffffu;  // generated by the FPU. |  | 
| 7763   for (int i = 0; i < kCacheSize; i++) { |  | 
| 7764     elements_[i].in[0] = in0; |  | 
| 7765     elements_[i].in[1] = in1; |  | 
| 7766     elements_[i].output = NULL; |  | 
| 7767   } |  | 
| 7768 } |  | 
| 7769 |  | 
| 7770 |  | 
| 7771 void TranscendentalCache::Clear() { |  | 
| 7772   for (int i = 0; i < kNumberOfCaches; i++) { |  | 
| 7773     if (caches_[i] != NULL) { |  | 
| 7774       delete caches_[i]; |  | 
| 7775       caches_[i] = NULL; |  | 
| 7776     } |  | 
| 7777   } |  | 
| 7778 } |  | 
| 7779 |  | 
| 7780 |  | 
| 7781 void ExternalStringTable::CleanUp() { | 7757 void ExternalStringTable::CleanUp() { | 
| 7782   int last = 0; | 7758   int last = 0; | 
| 7783   for (int i = 0; i < new_space_strings_.length(); ++i) { | 7759   for (int i = 0; i < new_space_strings_.length(); ++i) { | 
| 7784     if (new_space_strings_[i] == heap_->the_hole_value()) { | 7760     if (new_space_strings_[i] == heap_->the_hole_value()) { | 
| 7785       continue; | 7761       continue; | 
| 7786     } | 7762     } | 
| 7787     ASSERT(new_space_strings_[i]->IsExternalString()); | 7763     ASSERT(new_space_strings_[i]->IsExternalString()); | 
| 7788     if (heap_->InNewSpace(new_space_strings_[i])) { | 7764     if (heap_->InNewSpace(new_space_strings_[i])) { | 
| 7789       new_space_strings_[last++] = new_space_strings_[i]; | 7765       new_space_strings_[last++] = new_space_strings_[i]; | 
| 7790     } else { | 7766     } else { | 
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 7959       static_cast<int>(object_sizes_last_time_[index])); | 7935       static_cast<int>(object_sizes_last_time_[index])); | 
| 7960   CODE_AGE_LIST_COMPLETE(ADJUST_LAST_TIME_OBJECT_COUNT) | 7936   CODE_AGE_LIST_COMPLETE(ADJUST_LAST_TIME_OBJECT_COUNT) | 
| 7961 #undef ADJUST_LAST_TIME_OBJECT_COUNT | 7937 #undef ADJUST_LAST_TIME_OBJECT_COUNT | 
| 7962 | 7938 | 
| 7963   OS::MemCopy(object_counts_last_time_, object_counts_, sizeof(object_counts_)); | 7939   OS::MemCopy(object_counts_last_time_, object_counts_, sizeof(object_counts_)); | 
| 7964   OS::MemCopy(object_sizes_last_time_, object_sizes_, sizeof(object_sizes_)); | 7940   OS::MemCopy(object_sizes_last_time_, object_sizes_, sizeof(object_sizes_)); | 
| 7965   ClearObjectStats(); | 7941   ClearObjectStats(); | 
| 7966 } | 7942 } | 
| 7967 | 7943 | 
| 7968 } }  // namespace v8::internal | 7944 } }  // namespace v8::internal | 
| OLD | NEW | 
|---|