< prev index next >

src/hotspot/share/memory/memRegion.hpp

Print this page
rev 58059 : imported patch 8238999-memregion-custom-operator


  75   void set_word_size(size_t word_size) {
  76     _word_size = word_size;
  77   }
  78 
  79   bool contains(const MemRegion mr2) const {
  80     return _start <= mr2._start && end() >= mr2.end();
  81   }
  82   bool contains(const void* addr) const {
  83     return addr >= (void*)_start && addr < (void*)end();
  84   }
  85   bool equals(const MemRegion mr2) const {
  86     // first disjunct since we do not have a canonical empty set
  87     return ((is_empty() && mr2.is_empty()) ||
  88             (start() == mr2.start() && end() == mr2.end()));
  89   }
  90 
  91   size_t byte_size() const { return _word_size * sizeof(HeapWord); }
  92   size_t word_size() const { return _word_size; }
  93 
  94   bool is_empty() const { return word_size() == 0; }
  95   void* operator new(size_t size) throw();
  96   void* operator new [](size_t size) throw();
  97   void  operator delete(void* p);
  98   void  operator delete [](void* p);
  99 };
 100 
 101 // For iteration over MemRegion's.
 102 
 103 class MemRegionClosure : public StackObj {
 104 public:
 105   virtual void do_MemRegion(MemRegion mr) = 0;
 106 };
 107 
 108 // A ResourceObj version of MemRegionClosure
 109 
 110 class MemRegionClosureRO: public MemRegionClosure {
 111 public:
 112   void* operator new(size_t size, ResourceObj::allocation_type type, MEMFLAGS flags) throw() {
 113         return ResourceObj::operator new(size, type, flags);
 114   }
 115   void* operator new(size_t size, Arena *arena) throw() {
 116         return ResourceObj::operator new(size, arena);
 117   }
 118   void* operator new(size_t size) throw() {


  75   void set_word_size(size_t word_size) {
  76     _word_size = word_size;
  77   }
  78 
  79   bool contains(const MemRegion mr2) const {
  80     return _start <= mr2._start && end() >= mr2.end();
  81   }
  82   bool contains(const void* addr) const {
  83     return addr >= (void*)_start && addr < (void*)end();
  84   }
  85   bool equals(const MemRegion mr2) const {
  86     // first disjunct since we do not have a canonical empty set
  87     return ((is_empty() && mr2.is_empty()) ||
  88             (start() == mr2.start() && end() == mr2.end()));
  89   }
  90 
  91   size_t byte_size() const { return _word_size * sizeof(HeapWord); }
  92   size_t word_size() const { return _word_size; }
  93 
  94   bool is_empty() const { return word_size() == 0; }




  95 };
  96 
  97 // For iteration over MemRegion's.
  98 
  99 class MemRegionClosure : public StackObj {
 100 public:
 101   virtual void do_MemRegion(MemRegion mr) = 0;
 102 };
 103 
 104 // A ResourceObj version of MemRegionClosure
 105 
 106 class MemRegionClosureRO: public MemRegionClosure {
 107 public:
 108   void* operator new(size_t size, ResourceObj::allocation_type type, MEMFLAGS flags) throw() {
 109         return ResourceObj::operator new(size, type, flags);
 110   }
 111   void* operator new(size_t size, Arena *arena) throw() {
 112         return ResourceObj::operator new(size, arena);
 113   }
 114   void* operator new(size_t size) throw() {
< prev index next >