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

Side by Side Diff: src/heap/heap.h

Issue 2504993002: [heap] Minor MC: Add evacuation phase (Closed)
Patch Set: Rebase Created 4 years, 1 month 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
OLDNEW
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 #ifndef V8_HEAP_HEAP_H_ 5 #ifndef V8_HEAP_HEAP_H_
6 #define V8_HEAP_HEAP_H_ 6 #define V8_HEAP_HEAP_H_
7 7
8 #include <cmath> 8 #include <cmath>
9 #include <map> 9 #include <map>
10 10
(...skipping 2382 matching lines...) Expand 10 before | Expand all | Expand 10 after
2393 2393
2394 class AlwaysAllocateScope { 2394 class AlwaysAllocateScope {
2395 public: 2395 public:
2396 explicit inline AlwaysAllocateScope(Isolate* isolate); 2396 explicit inline AlwaysAllocateScope(Isolate* isolate);
2397 inline ~AlwaysAllocateScope(); 2397 inline ~AlwaysAllocateScope();
2398 2398
2399 private: 2399 private:
2400 Heap* heap_; 2400 Heap* heap_;
2401 }; 2401 };
2402 2402
2403
2404 // Visitor class to verify interior pointers in spaces that do not contain 2403 // Visitor class to verify interior pointers in spaces that do not contain
2405 // or care about intergenerational references. All heap object pointers have to 2404 // or care about intergenerational references. All heap object pointers have to
2406 // point into the heap to a location that has a map pointer at its first word. 2405 // point into the heap to a location that has a map pointer at its first word.
2407 // Caveat: Heap::Contains is an approximation because it can return true for 2406 // Caveat: Heap::Contains is an approximation because it can return true for
2408 // objects in a heap space but above the allocation pointer. 2407 // objects in a heap space but above the allocation pointer.
2409 class VerifyPointersVisitor : public ObjectVisitor { 2408 class VerifyPointersVisitor : public ObjectVisitor {
2410 public: 2409 public:
2411 inline void VisitPointers(Object** start, Object** end) override; 2410 inline void VisitPointers(Object** start, Object** end) override;
2412 }; 2411 };
2413 2412
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
2522 class WeakObjectRetainer { 2521 class WeakObjectRetainer {
2523 public: 2522 public:
2524 virtual ~WeakObjectRetainer() {} 2523 virtual ~WeakObjectRetainer() {}
2525 2524
2526 // Return whether this object should be retained. If NULL is returned the 2525 // Return whether this object should be retained. If NULL is returned the
2527 // object has no references. Otherwise the address of the retained object 2526 // object has no references. Otherwise the address of the retained object
2528 // should be returned as in some GC situations the object has been moved. 2527 // should be returned as in some GC situations the object has been moved.
2529 virtual Object* RetainAs(Object* object) = 0; 2528 virtual Object* RetainAs(Object* object) = 0;
2530 }; 2529 };
2531 2530
2532
2533 #ifdef DEBUG 2531 #ifdef DEBUG
2534 // Helper class for tracing paths to a search target Object from all roots. 2532 // Helper class for tracing paths to a search target Object from all roots.
2535 // The TracePathFrom() method can be used to trace paths from a specific 2533 // The TracePathFrom() method can be used to trace paths from a specific
2536 // object to the search target object. 2534 // object to the search target object.
2537 class PathTracer : public ObjectVisitor { 2535 class PathTracer : public ObjectVisitor {
2538 public: 2536 public:
2539 enum WhatToFind { 2537 enum WhatToFind {
2540 FIND_ALL, // Will find all matches. 2538 FIND_ALL, // Will find all matches.
2541 FIND_FIRST // Will stop the search after first match. 2539 FIND_FIRST // Will stop the search after first match.
2542 }; 2540 };
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
2639 friend class LargeObjectSpace; 2637 friend class LargeObjectSpace;
2640 friend class NewSpace; 2638 friend class NewSpace;
2641 friend class PagedSpace; 2639 friend class PagedSpace;
2642 DISALLOW_COPY_AND_ASSIGN(AllocationObserver); 2640 DISALLOW_COPY_AND_ASSIGN(AllocationObserver);
2643 }; 2641 };
2644 2642
2645 } // namespace internal 2643 } // namespace internal
2646 } // namespace v8 2644 } // namespace v8
2647 2645
2648 #endif // V8_HEAP_HEAP_H_ 2646 #endif // V8_HEAP_HEAP_H_
OLDNEW
« no previous file with comments | « src/heap/gc-tracer.cc ('k') | src/heap/heap.cc » ('j') | src/heap/mark-compact.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698