src/share/vm/utilities/constantTag.cpp

Thu, 20 Nov 2008 16:56:09 -0800

author
ysr
date
Thu, 20 Nov 2008 16:56:09 -0800
changeset 888
c96030fff130
parent 435
a61af66fc99e
child 1907
c18cbe5936b8
permissions
-rw-r--r--

6684579: SoftReference processing can be made more efficient
Summary: For current soft-ref clearing policies, we can decide at marking time if a soft-reference will definitely not be cleared, postponing the decision of whether it will definitely be cleared to the final reference processing phase. This can be especially beneficial in the case of concurrent collectors where the marking is usually concurrent but reference processing is usually not.
Reviewed-by: jmasa

duke@435 1 /*
duke@435 2 * Copyright 1997-1999 Sun Microsystems, Inc. All Rights Reserved.
duke@435 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
duke@435 4 *
duke@435 5 * This code is free software; you can redistribute it and/or modify it
duke@435 6 * under the terms of the GNU General Public License version 2 only, as
duke@435 7 * published by the Free Software Foundation.
duke@435 8 *
duke@435 9 * This code is distributed in the hope that it will be useful, but WITHOUT
duke@435 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
duke@435 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
duke@435 12 * version 2 for more details (a copy is included in the LICENSE file that
duke@435 13 * accompanied this code).
duke@435 14 *
duke@435 15 * You should have received a copy of the GNU General Public License version
duke@435 16 * 2 along with this work; if not, write to the Free Software Foundation,
duke@435 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
duke@435 18 *
duke@435 19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
duke@435 20 * CA 95054 USA or visit www.sun.com if you need additional information or
duke@435 21 * have any questions.
duke@435 22 *
duke@435 23 */
duke@435 24
duke@435 25 # include "incls/_precompiled.incl"
duke@435 26 # include "incls/_constantTag.cpp.incl"
duke@435 27
duke@435 28 #ifndef PRODUCT
duke@435 29
duke@435 30 void constantTag::print_on(outputStream* st) const {
duke@435 31 switch (_tag) {
duke@435 32 case JVM_CONSTANT_Class :
duke@435 33 st->print("Class");
duke@435 34 break;
duke@435 35 case JVM_CONSTANT_Fieldref :
duke@435 36 st->print("Field");
duke@435 37 break;
duke@435 38 case JVM_CONSTANT_Methodref :
duke@435 39 st->print("Method");
duke@435 40 break;
duke@435 41 case JVM_CONSTANT_InterfaceMethodref :
duke@435 42 st->print("InterfaceMethod");
duke@435 43 break;
duke@435 44 case JVM_CONSTANT_String :
duke@435 45 st->print("String");
duke@435 46 break;
duke@435 47 case JVM_CONSTANT_Integer :
duke@435 48 st->print("Integer");
duke@435 49 break;
duke@435 50 case JVM_CONSTANT_Float :
duke@435 51 st->print("Float");
duke@435 52 break;
duke@435 53 case JVM_CONSTANT_Long :
duke@435 54 st->print("Long");
duke@435 55 break;
duke@435 56 case JVM_CONSTANT_Double :
duke@435 57 st->print("Double");
duke@435 58 break;
duke@435 59 case JVM_CONSTANT_NameAndType :
duke@435 60 st->print("NameAndType");
duke@435 61 break;
duke@435 62 case JVM_CONSTANT_Utf8 :
duke@435 63 st->print("Utf8");
duke@435 64 break;
duke@435 65 case JVM_CONSTANT_UnresolvedClass :
duke@435 66 st->print("Unresolved class");
duke@435 67 break;
duke@435 68 case JVM_CONSTANT_ClassIndex :
duke@435 69 st->print("Unresolved class index");
duke@435 70 break;
duke@435 71 case JVM_CONSTANT_UnresolvedString :
duke@435 72 st->print("Unresolved string");
duke@435 73 break;
duke@435 74 case JVM_CONSTANT_StringIndex :
duke@435 75 st->print("Unresolved string index");
duke@435 76 break;
duke@435 77 default:
duke@435 78 ShouldNotReachHere();
duke@435 79 break;
duke@435 80 }
duke@435 81 }
duke@435 82
duke@435 83 #endif // PRODUCT

mercurial