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;
};