hotspot/src/share/vm/gc_implementation/shared/vmGCOperations.hpp
Print this page
rev 611 : Merge
*** 1,10 ****
#ifdef USE_PRAGMA_IDENT_HDR
#pragma ident "@(#)vmGCOperations.hpp 1.14 07/05/29 09:44:12 JVM"
#endif
/*
! * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,10 ----
#ifdef USE_PRAGMA_IDENT_HDR
#pragma ident "@(#)vmGCOperations.hpp 1.14 07/05/29 09:44:12 JVM"
#endif
/*
! * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 44,53 ****
--- 44,54 ----
// VM_GC_HeapInspection
// - prints class histogram on SIGBREAK if PrintClassHistogram
// is specified; and also the attach "inspectheap" operation
//
// VM_GenCollectForAllocation
+ // VM_GenCollectForPermanentAllocation
// VM_ParallelGCFailedAllocation
// VM_ParallelGCFailedPermanentAllocation
// - this operation is invoked when allocation is failed;
// operation performs garbage collection and tries to
// allocate afterwards;
*** 167,171 ****
--- 168,192 ----
{ _gc_cause = gc_cause; }
~VM_GenCollectFull() {}
virtual VMOp_Type type() const { return VMOp_GenCollectFull; }
virtual void doit();
};
+
+ class VM_GenCollectForPermanentAllocation: public VM_GC_Operation {
+ private:
+ HeapWord* _res;
+ size_t _size; // size of object to be allocated
+ public:
+ VM_GenCollectForPermanentAllocation(size_t size,
+ unsigned int gc_count_before,
+ unsigned int full_gc_count_before,
+ GCCause::Cause gc_cause)
+ : VM_GC_Operation(gc_count_before, full_gc_count_before, true),
+ _size(size) {
+ _res = NULL;
+ _gc_cause = gc_cause;
+ }
+ ~VM_GenCollectForPermanentAllocation() {}
+ virtual VMOp_Type type() const { return VMOp_GenCollectForPermanentAllocation; }
+ virtual void doit();
+ HeapWord* result() const { return _res; }
+ };