Print this page

        

*** 36,45 **** --- 36,46 ---- class Mutex; class FreeList VALUE_OBJ_CLASS_SPEC { friend class CompactibleFreeListSpace; + friend class printTreeCensusClosure; FreeChunk* _head; // List of free chunks FreeChunk* _tail; // Tail of list of free chunks size_t _size; // Size in Heap words of each chunks ssize_t _count; // Number of entries in list size_t _hint; // next larger size list with a positive surplus
*** 64,74 **** void init_statistics(); void set_count(ssize_t v) { _count = v;} void increment_count() { _count++; } void decrement_count() { _count--; ! assert(_count >= 0, "Count should not be negative"); } public: // Constructor // Construct a list without any entries. FreeList(); --- 65,76 ---- void init_statistics(); void set_count(ssize_t v) { _count = v;} void increment_count() { _count++; } void decrement_count() { _count--; ! assert(_count >= 0, "Count should not be negative"); ! } public: // Constructor // Construct a list without any entries. FreeList();
*** 157,166 **** --- 159,172 ---- } ssize_t desired() const { return _allocation_stats.desired(); } + void set_desired(ssize_t v) { + assert_proper_lock_protection(); + _allocation_stats.set_desired(v); + } void compute_desired(float inter_sweep_current, float inter_sweep_estimate) { assert_proper_lock_protection(); _allocation_stats.compute_desired(_count, inter_sweep_current,
*** 296,301 **** --- 302,311 ---- void prepend(FreeList* fl); // Verify that the chunk is in the list. // found. Return NULL if "fc" is not found. bool verifyChunkInFreeLists(FreeChunk* fc) const; + + // Printing support + static void print_labels_on(outputStream* st, const char* c); + void print_on(outputStream* st, const char* c = NULL) const; };