1.1 --- a/src/share/vm/gc_implementation/shared/vmGCOperations.hpp Thu Mar 27 17:22:06 2008 -0700 1.2 +++ b/src/share/vm/gc_implementation/shared/vmGCOperations.hpp Tue Apr 01 15:13:47 2008 +0400 1.3 @@ -43,6 +43,7 @@ 1.4 // is specified; and also the attach "inspectheap" operation 1.5 // 1.6 // VM_GenCollectForAllocation 1.7 +// VM_GenCollectForPermanentAllocation 1.8 // VM_ParallelGCFailedAllocation 1.9 // VM_ParallelGCFailedPermanentAllocation 1.10 // - this operation is invoked when allocation is failed; 1.11 @@ -166,3 +167,23 @@ 1.12 virtual VMOp_Type type() const { return VMOp_GenCollectFull; } 1.13 virtual void doit(); 1.14 }; 1.15 + 1.16 +class VM_GenCollectForPermanentAllocation: public VM_GC_Operation { 1.17 + private: 1.18 + HeapWord* _res; 1.19 + size_t _size; // size of object to be allocated 1.20 + public: 1.21 + VM_GenCollectForPermanentAllocation(size_t size, 1.22 + unsigned int gc_count_before, 1.23 + unsigned int full_gc_count_before, 1.24 + GCCause::Cause gc_cause) 1.25 + : VM_GC_Operation(gc_count_before, full_gc_count_before, true), 1.26 + _size(size) { 1.27 + _res = NULL; 1.28 + _gc_cause = gc_cause; 1.29 + } 1.30 + ~VM_GenCollectForPermanentAllocation() {} 1.31 + virtual VMOp_Type type() const { return VMOp_GenCollectForPermanentAllocation; } 1.32 + virtual void doit(); 1.33 + HeapWord* result() const { return _res; } 1.34 +};