hotspot/src/share/vm/memory/compactingPermGenGen.hpp
changeset 4106 30919106db1d
parent 1441 2d62dcf3c29f
child 5547 f4b087cbb361
equal deleted inserted replaced
4103:b5f0e9a48cf7 4106:30919106db1d
    27 // but unlike one in others, and so is split apart.
    27 // but unlike one in others, and so is split apart.
    28 
    28 
    29 class PermanentGenerationSpec;
    29 class PermanentGenerationSpec;
    30 
    30 
    31 // This is the "generation" view of a CompactingPermGen.
    31 // This is the "generation" view of a CompactingPermGen.
       
    32 // NOTE: the shared spaces used for CDS are here handled in
       
    33 // a somewhat awkward and potentially buggy fashion, see CR 6801625.
       
    34 // This infelicity should be fixed, see CR 6897789.
    32 class CompactingPermGenGen: public OneContigSpaceCardGeneration {
    35 class CompactingPermGenGen: public OneContigSpaceCardGeneration {
    33   friend class VMStructs;
    36   friend class VMStructs;
    34   // Abstractly, this is a subtype that gets access to protected fields.
    37   // Abstractly, this is a subtype that gets access to protected fields.
    35   friend class CompactingPermGen;
    38   friend class CompactingPermGen;
    36 
    39 
    45   BlockOffsetSharedArray* _ro_bts;
    48   BlockOffsetSharedArray* _ro_bts;
    46   BlockOffsetSharedArray* _rw_bts;
    49   BlockOffsetSharedArray* _rw_bts;
    47   OffsetTableContigSpace* _ro_space;
    50   OffsetTableContigSpace* _ro_space;
    48   OffsetTableContigSpace* _rw_space;
    51   OffsetTableContigSpace* _rw_space;
    49 
    52 
    50   // With shared spaces there is a dicotomy in the use of the
    53   // With shared spaces there is a dichotomy in the use of the
    51   // _virtual_space of the generation.  There is a portion of the
    54   // _virtual_space of the generation.  There is a portion of the
    52   // _virtual_space that is used for the unshared part of the
    55   // _virtual_space that is used for the unshared part of the
    53   // permanent generation and a portion that is reserved for the shared part.
    56   // permanent generation and a portion that is reserved for the shared part.
    54   // The _reserved field in the generation represents both the
    57   // The _reserved field in the generation represents both the
    55   // unshared and shared parts of the generation.  The _reserved
    58   // unshared and shared parts of the generation.  The _reserved