< prev index next >

src/share/vm/gc/shared/space.hpp

Print this page




 137 
 138   // Returns true iff the given the space contains the
 139   // given address as part of an allocated object. For
 140   // certain kinds of spaces, this might be a potentially
 141   // expensive operation. To prevent performance problems
 142   // on account of its inadvertent use in product jvm's,
 143   // we restrict its use to assertion checks only.
 144   bool is_in(const void* p) const {
 145     return used_region().contains(p);
 146   }
 147 
 148   // Returns true iff the given reserved memory of the space contains the
 149   // given address.
 150   bool is_in_reserved(const void* p) const { return _bottom <= p && p < _end; }
 151 
 152   // Returns true iff the given block is not allocated.
 153   virtual bool is_free_block(const HeapWord* p) const = 0;
 154 
 155   // Test whether p is double-aligned
 156   static bool is_aligned(void* p) {
 157     return is_ptr_aligned(p, sizeof(double));
 158   }
 159 
 160   // Size computations.  Sizes are in bytes.
 161   size_t capacity()     const { return byte_size(bottom(), end()); }
 162   virtual size_t used() const = 0;
 163   virtual size_t free() const = 0;
 164 
 165   // Iterate over all the ref-containing fields of all objects in the
 166   // space, calling "cl.do_oop" on each.  Fields in objects allocated by
 167   // applications of the closure are not included in the iteration.
 168   virtual void oop_iterate(ExtendedOopClosure* cl);
 169 
 170   // Iterate over all objects in the space, calling "cl.do_object" on
 171   // each.  Objects allocated by applications of the closure are not
 172   // included in the iteration.
 173   virtual void object_iterate(ObjectClosure* blk) = 0;
 174   // Similar to object_iterate() except only iterates over
 175   // objects whose internal references point to objects in the space.
 176   virtual void safe_object_iterate(ObjectClosure* blk) = 0;
 177 




 137 
 138   // Returns true iff the given the space contains the
 139   // given address as part of an allocated object. For
 140   // certain kinds of spaces, this might be a potentially
 141   // expensive operation. To prevent performance problems
 142   // on account of its inadvertent use in product jvm's,
 143   // we restrict its use to assertion checks only.
 144   bool is_in(const void* p) const {
 145     return used_region().contains(p);
 146   }
 147 
 148   // Returns true iff the given reserved memory of the space contains the
 149   // given address.
 150   bool is_in_reserved(const void* p) const { return _bottom <= p && p < _end; }
 151 
 152   // Returns true iff the given block is not allocated.
 153   virtual bool is_free_block(const HeapWord* p) const = 0;
 154 
 155   // Test whether p is double-aligned
 156   static bool is_aligned(void* p) {
 157     return ::is_aligned(p, sizeof(double));
 158   }
 159 
 160   // Size computations.  Sizes are in bytes.
 161   size_t capacity()     const { return byte_size(bottom(), end()); }
 162   virtual size_t used() const = 0;
 163   virtual size_t free() const = 0;
 164 
 165   // Iterate over all the ref-containing fields of all objects in the
 166   // space, calling "cl.do_oop" on each.  Fields in objects allocated by
 167   // applications of the closure are not included in the iteration.
 168   virtual void oop_iterate(ExtendedOopClosure* cl);
 169 
 170   // Iterate over all objects in the space, calling "cl.do_object" on
 171   // each.  Objects allocated by applications of the closure are not
 172   // included in the iteration.
 173   virtual void object_iterate(ObjectClosure* blk) = 0;
 174   // Similar to object_iterate() except only iterates over
 175   // objects whose internal references point to objects in the space.
 176   virtual void safe_object_iterate(ObjectClosure* blk) = 0;
 177 


< prev index next >