211 private: |
211 private: |
212 MetaWord* _result; |
212 MetaWord* _result; |
213 size_t _size; // size of object to be allocated |
213 size_t _size; // size of object to be allocated |
214 Metaspace::MetadataType _mdtype; |
214 Metaspace::MetadataType _mdtype; |
215 ClassLoaderData* _loader_data; |
215 ClassLoaderData* _loader_data; |
|
216 |
216 public: |
217 public: |
217 VM_CollectForMetadataAllocation(ClassLoaderData* loader_data, |
218 VM_CollectForMetadataAllocation(ClassLoaderData* loader_data, |
218 size_t size, Metaspace::MetadataType mdtype, |
219 size_t size, |
|
220 Metaspace::MetadataType mdtype, |
219 uint gc_count_before, |
221 uint gc_count_before, |
220 uint full_gc_count_before, |
222 uint full_gc_count_before, |
221 GCCause::Cause gc_cause) |
223 GCCause::Cause gc_cause) |
222 : VM_GC_Operation(gc_count_before, gc_cause, full_gc_count_before, true), |
224 : VM_GC_Operation(gc_count_before, gc_cause, full_gc_count_before, true), |
223 _loader_data(loader_data), _size(size), _mdtype(mdtype), _result(NULL) { |
225 _loader_data(loader_data), _size(size), _mdtype(mdtype), _result(NULL) { |
224 } |
226 } |
|
227 |
225 virtual VMOp_Type type() const { return VMOp_CollectForMetadataAllocation; } |
228 virtual VMOp_Type type() const { return VMOp_CollectForMetadataAllocation; } |
226 virtual void doit(); |
229 virtual void doit(); |
227 MetaWord* result() const { return _result; } |
230 MetaWord* result() const { return _result; } |
228 |
231 |
229 bool initiate_concurrent_GC(); |
232 bool initiate_concurrent_GC(); |