Mercurial > hg > truffle
diff src/share/vm/gc_implementation/shared/vmGCOperations.hpp @ 6948:e522a00b91aa
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/ after NPG - C++ build works
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 12 Nov 2012 23:14:12 +0100 |
parents | 685df3c6f84b |
children | 16fb9f942703 |
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/shared/vmGCOperations.hpp Mon Nov 12 18:11:17 2012 +0100 +++ b/src/share/vm/gc_implementation/shared/vmGCOperations.hpp Mon Nov 12 23:14:12 2012 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2012, Oracle and/or its affiliates. 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 @@ -42,7 +42,6 @@ // VM_GenCollectFull // VM_GenCollectFullConcurrent // VM_ParallelGCFailedAllocation -// VM_ParallelGCFailedPermanentAllocation // VM_ParallelGCSystemGC // VM_GC_Operation // - implements methods common to all classes in the hierarchy: @@ -53,9 +52,7 @@ // 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; @@ -191,24 +188,27 @@ virtual void doit(); }; -class VM_GenCollectForPermanentAllocation: public VM_GC_Operation { +class VM_CollectForMetadataAllocation: public VM_GC_Operation { private: - HeapWord* _res; - size_t _size; // size of object to be allocated + MetaWord* _result; + size_t _size; // size of object to be allocated + Metaspace::MetadataType _mdtype; + ClassLoaderData* _loader_data; public: - VM_GenCollectForPermanentAllocation(size_t size, + VM_CollectForMetadataAllocation(ClassLoaderData* loader_data, + size_t size, Metaspace::MetadataType mdtype, unsigned int gc_count_before, unsigned int full_gc_count_before, GCCause::Cause gc_cause) : VM_GC_Operation(gc_count_before, gc_cause, full_gc_count_before, true), - _size(size) { - _res = NULL; - _gc_cause = gc_cause; + _loader_data(loader_data), _size(size), _mdtype(mdtype), _result(NULL) { } - ~VM_GenCollectForPermanentAllocation() {} - virtual VMOp_Type type() const { return VMOp_GenCollectForPermanentAllocation; } + ~VM_CollectForMetadataAllocation() { + MetaspaceGC::set_expand_after_GC(false); + } + virtual VMOp_Type type() const { return VMOp_CollectForMetadataAllocation; } virtual void doit(); - HeapWord* result() const { return _res; } + MetaWord* result() const { return _result; } }; class SvcGCMarker : public StackObj {