Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(103)

Side by Side Diff: src/heap/spaces.cc

Issue 2286613002: [heap] MemoryChunk cleanup (Closed)
Patch Set: rebase Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/heap/spaces.h ('k') | src/ia32/macro-assembler-ia32.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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/heap/spaces.h" 5 #include "src/heap/spaces.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "src/base/bits.h" 9 #include "src/base/bits.h"
10 #include "src/base/platform/platform.h" 10 #include "src/base/platform/platform.h"
(...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 Executability executable, Space* owner, 498 Executability executable, Space* owner,
499 base::VirtualMemory* reservation) { 499 base::VirtualMemory* reservation) {
500 MemoryChunk* chunk = FromAddress(base); 500 MemoryChunk* chunk = FromAddress(base);
501 501
502 DCHECK(base == chunk->address()); 502 DCHECK(base == chunk->address());
503 503
504 chunk->heap_ = heap; 504 chunk->heap_ = heap;
505 chunk->size_ = size; 505 chunk->size_ = size;
506 chunk->area_start_ = area_start; 506 chunk->area_start_ = area_start;
507 chunk->area_end_ = area_end; 507 chunk->area_end_ = area_end;
508 chunk->flags_ = 0; 508 chunk->flags_ = Flags(NO_FLAGS);
509 chunk->set_owner(owner); 509 chunk->set_owner(owner);
510 chunk->InitializeReservedMemory(); 510 chunk->InitializeReservedMemory();
511 chunk->old_to_new_slots_ = nullptr; 511 chunk->old_to_new_slots_ = nullptr;
512 chunk->old_to_old_slots_ = nullptr; 512 chunk->old_to_old_slots_ = nullptr;
513 chunk->typed_old_to_new_slots_ = nullptr; 513 chunk->typed_old_to_new_slots_ = nullptr;
514 chunk->typed_old_to_old_slots_ = nullptr; 514 chunk->typed_old_to_old_slots_ = nullptr;
515 chunk->skip_list_ = nullptr; 515 chunk->skip_list_ = nullptr;
516 chunk->write_barrier_counter_ = kWriteBarrierCounterGranularity; 516 chunk->write_barrier_counter_ = kWriteBarrierCounterGranularity;
517 chunk->progress_bar_ = 0; 517 chunk->progress_bar_ = 0;
518 chunk->high_water_mark_.SetValue(static_cast<intptr_t>(area_start - base)); 518 chunk->high_water_mark_.SetValue(static_cast<intptr_t>(area_start - base));
519 chunk->concurrent_sweeping_state().SetValue(kSweepingDone); 519 chunk->concurrent_sweeping_state().SetValue(kSweepingDone);
520 chunk->mutex_ = new base::Mutex(); 520 chunk->mutex_ = new base::Mutex();
521 chunk->available_in_free_list_ = 0; 521 chunk->available_in_free_list_ = 0;
522 chunk->wasted_memory_ = 0; 522 chunk->wasted_memory_ = 0;
523 chunk->ResetLiveBytes(); 523 chunk->ResetLiveBytes();
524 chunk->ClearLiveness(); 524 chunk->ClearLiveness();
525 chunk->set_next_chunk(nullptr); 525 chunk->set_next_chunk(nullptr);
526 chunk->set_prev_chunk(nullptr); 526 chunk->set_prev_chunk(nullptr);
527 chunk->local_tracker_ = nullptr; 527 chunk->local_tracker_ = nullptr;
528 chunk->black_area_end_marker_map_ = nullptr; 528 chunk->black_area_end_marker_map_ = nullptr;
529 529
530 DCHECK(OFFSET_OF(MemoryChunk, flags_) == kFlagsOffset); 530 DCHECK(OFFSET_OF(MemoryChunk, flags_) == kFlagsOffset);
531 DCHECK(OFFSET_OF(MemoryChunk, live_byte_count_) == kLiveBytesOffset);
532 531
533 if (executable == EXECUTABLE) { 532 if (executable == EXECUTABLE) {
534 chunk->SetFlag(IS_EXECUTABLE); 533 chunk->SetFlag(IS_EXECUTABLE);
535 } 534 }
536 535
537 if (reservation != nullptr) { 536 if (reservation != nullptr) {
538 chunk->reservation_.TakeControl(reservation); 537 chunk->reservation_.TakeControl(reservation);
539 } 538 }
540 539
541 return chunk; 540 return chunk;
(...skipping 2624 matching lines...) Expand 10 before | Expand all | Expand 10 after
3166 object->ShortPrint(); 3165 object->ShortPrint();
3167 PrintF("\n"); 3166 PrintF("\n");
3168 } 3167 }
3169 printf(" --------------------------------------\n"); 3168 printf(" --------------------------------------\n");
3170 printf(" Marked: %x, LiveCount: %x\n", mark_size, LiveBytes()); 3169 printf(" Marked: %x, LiveCount: %x\n", mark_size, LiveBytes());
3171 } 3170 }
3172 3171
3173 #endif // DEBUG 3172 #endif // DEBUG
3174 } // namespace internal 3173 } // namespace internal
3175 } // namespace v8 3174 } // namespace v8
OLDNEW
« no previous file with comments | « src/heap/spaces.h ('k') | src/ia32/macro-assembler-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698