src/share/vm/gc_implementation/g1/heapRegion.hpp

changeset 5548
5888334c9c24
parent 4542
db9981fd3124
child 5646
84683e78e713
     1.1 --- a/src/share/vm/gc_implementation/g1/heapRegion.hpp	Thu Aug 15 10:05:50 2013 +0200
     1.2 +++ b/src/share/vm/gc_implementation/g1/heapRegion.hpp	Thu Aug 15 10:52:18 2013 +0200
     1.3 @@ -52,6 +52,7 @@
     1.4  class HeapRegionRemSetIterator;
     1.5  class HeapRegion;
     1.6  class HeapRegionSetBase;
     1.7 +class nmethod;
     1.8  
     1.9  #define HR_FORMAT "%u:(%s)["PTR_FORMAT","PTR_FORMAT","PTR_FORMAT"]"
    1.10  #define HR_FORMAT_PARAMS(_hr_) \
    1.11 @@ -371,7 +372,8 @@
    1.12      RebuildRSClaimValue        = 5,
    1.13      ParEvacFailureClaimValue   = 6,
    1.14      AggregateCountClaimValue   = 7,
    1.15 -    VerifyCountClaimValue      = 8
    1.16 +    VerifyCountClaimValue      = 8,
    1.17 +    ParMarkRootClaimValue      = 9
    1.18    };
    1.19  
    1.20    inline HeapWord* par_allocate_no_bot_updates(size_t word_size) {
    1.21 @@ -796,6 +798,25 @@
    1.22  
    1.23    virtual void reset_after_compaction();
    1.24  
    1.25 +  // Routines for managing a list of code roots (attached to the
    1.26 +  // this region's RSet) that point into this heap region.
    1.27 +  void add_strong_code_root(nmethod* nm);
    1.28 +  void remove_strong_code_root(nmethod* nm);
    1.29 +
    1.30 +  // During a collection, migrate the successfully evacuated
    1.31 +  // strong code roots that referenced into this region to the
    1.32 +  // new regions that they now point into. Unsuccessfully
    1.33 +  // evacuated code roots are not migrated.
    1.34 +  void migrate_strong_code_roots();
    1.35 +
    1.36 +  // Applies blk->do_code_blob() to each of the entries in
    1.37 +  // the strong code roots list for this region
    1.38 +  void strong_code_roots_do(CodeBlobClosure* blk) const;
    1.39 +
    1.40 +  // Verify that the entries on the strong code root list for this
    1.41 +  // region are live and include at least one pointer into this region.
    1.42 +  void verify_strong_code_roots(VerifyOption vo, bool* failures) const;
    1.43 +
    1.44    void print() const;
    1.45    void print_on(outputStream* st) const;
    1.46  

mercurial