110 static int _offset_of_stack;
111
112 InstanceStackChunkKlass(const ClassFileParser& parser);
113
114 public:
115 InstanceStackChunkKlass();
116
117 // Casting from Klass*
118 static InstanceStackChunkKlass* cast(Klass* k) {
119 assert(k->is_stack_chunk_instance_klass(), "cast to InstanceStackChunkKlass");
120 return static_cast<InstanceStackChunkKlass*>(k);
121 }
122
123 inline size_t instance_size(size_t stack_size_in_words) const;
124
125 static inline size_t bitmap_size_in_bits(size_t stack_size_in_words); // In bits
126 static inline size_t bitmap_size(size_t stack_size_in_words); // In words
127 static inline size_t gc_data_size(size_t stack_size_in_words); // In words
128
129 // Returns the size of the instance including the stack data.
130 virtual size_t oop_size(oop obj) const override;
131
132 static void serialize_offsets(class SerializeClosure* f) NOT_CDS_RETURN;
133
134 static void print_chunk(const stackChunkOop chunk, bool verbose, outputStream* st = tty);
135
136 #ifndef PRODUCT
137 void oop_print_on(oop obj, outputStream* st) override;
138 #endif
139
140 // Stack offset is an offset into the Heap
141 static int offset_of_stack() { return _offset_of_stack; }
142 static void init_offset_of_stack();
143
144 // Oop fields (and metadata) iterators
145 //
146 // The InstanceClassLoaderKlass iterators also visit the CLD pointer (or mirror of anonymous klasses).
147
148 // Forward iteration
149 // Iterate over the oop fields and metadata.
150 template <typename T, class OopClosureType>
|
110 static int _offset_of_stack;
111
112 InstanceStackChunkKlass(const ClassFileParser& parser);
113
114 public:
115 InstanceStackChunkKlass();
116
117 // Casting from Klass*
118 static InstanceStackChunkKlass* cast(Klass* k) {
119 assert(k->is_stack_chunk_instance_klass(), "cast to InstanceStackChunkKlass");
120 return static_cast<InstanceStackChunkKlass*>(k);
121 }
122
123 inline size_t instance_size(size_t stack_size_in_words) const;
124
125 static inline size_t bitmap_size_in_bits(size_t stack_size_in_words); // In bits
126 static inline size_t bitmap_size(size_t stack_size_in_words); // In words
127 static inline size_t gc_data_size(size_t stack_size_in_words); // In words
128
129 // Returns the size of the instance including the stack data.
130 size_t oop_size(oop obj, markWord mark) const override;
131
132 static void serialize_offsets(class SerializeClosure* f) NOT_CDS_RETURN;
133
134 static void print_chunk(const stackChunkOop chunk, bool verbose, outputStream* st = tty);
135
136 #ifndef PRODUCT
137 void oop_print_on(oop obj, outputStream* st) override;
138 #endif
139
140 // Stack offset is an offset into the Heap
141 static int offset_of_stack() { return _offset_of_stack; }
142 static void init_offset_of_stack();
143
144 // Oop fields (and metadata) iterators
145 //
146 // The InstanceClassLoaderKlass iterators also visit the CLD pointer (or mirror of anonymous klasses).
147
148 // Forward iteration
149 // Iterate over the oop fields and metadata.
150 template <typename T, class OopClosureType>
|