source Udiff src/hotspot/share/memory/metachunk.hpp (original) (raw)

< prev index next >

Print this page

rev 49010 : [mq]: metaspace-coalesc-patch rev 49011 : [mq]: metaspace-coal-2


@@ -92,20 +92,93 @@ // | | | used | // | | | | // | | | | // +--------------+ <- bottom --+ --+

+// ChunkIndex (todo: rename?) defines the type of chunk. Chunk types +// differ by size: specialized < small < medium, chunks larger than +// medium are humongous chunks of varying size. +enum ChunkIndex {

+} + +inline bool is_valid_nonhumongous_chunktype(ChunkIndex index) {

+} + +#endif + class Metachunk : public Metabase { friend class MetachunkTest; // The VirtualSpaceNode containing this chunk.

+#ifdef ASSERT

+#ifdef ASSERT


@@ -118,11 +191,11 @@ static size_t object_alignment(); // Size of the Metachunk header, including alignment. static size_t overhead(); - Metachunk(size_t word_size , VirtualSpaceNode* container); + Metachunk(ChunkIndex chunktype, bool is_class, size_t word_size, VirtualSpaceNode* container); MetaWord* allocate(size_t word_size); VirtualSpaceNode* container() const { return _container; }

@@ -141,16 +214,32 @@ bool is_tagged_free() { return _is_tagged_free; } void set_is_tagged_free(bool v) { _is_tagged_free = v; }

bool contains(const void* ptr) { return bottom() <= ptr && ptr < _top; }

-#ifndef PRODUCT +#ifdef ASSERT void mangle(juint word_value); #endif

void print_on(outputStream* st) const; + +#ifdef ASSERT void verify(); +

< prev index next >