< prev index next >

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

Print this page

        

*** 360,369 **** --- 360,375 ---- return size; } inline size_t obj_size(const HeapWord* addr) const; + template <class SpaceType> + static inline void verify_up_to_first_dead(SpaceType* space) NOT_DEBUG_RETURN; + + template <class SpaceType> + static inline void clear_empty_region(SpaceType* space); + public: CompactibleSpace() : _compaction_top(NULL), _next_compaction_space(NULL) {} virtual void initialize(MemRegion mr, bool clear_space, bool mangle_space);
*** 453,472 **** // threshold. (The default implementation does nothing.) virtual HeapWord* cross_threshold(HeapWord* start, HeapWord* the_end) { return end(); } - // Requires "allowed_deadspace_words > 0", that "q" is the start of a - // free block of the given "word_len", and that "q", were it an object, - // would not move if forwarded. If the size allows, fill the free - // block with an object, to prevent excessive compaction. Returns "true" - // iff the free region was made deadspace, and modifies - // "allowed_deadspace_words" to reflect the number of available deadspace - // words remaining after this operation. - bool insert_deadspace(size_t& allowed_deadspace_words, HeapWord* q, - size_t word_len); - // Below are template functions for scan_and_* algorithms (avoiding virtual calls). // The space argument should be a subclass of CompactibleSpace, implementing // scan_limit(), scanned_block_is_obj(), and scanned_block_size(), // and possibly also overriding obj_size(), and adjust_obj_size(). // These functions should avoid virtual calls whenever possible. --- 459,468 ----
< prev index next >