comparison agent/src/share/classes/sun/jvm/hotspot/tools/ClassLoaderStats.java @ 14316:c888354aaa35

6656031: SA: jmap -permstat number of classes is off by 1 Reviewed-by: sla, dholmes
author jbachorik
date Thu, 30 Jan 2014 09:41:45 +0100
parents 7fe6ef09d242
children 4ca6dc0799b6
comparison
equal deleted inserted replaced
14301:ceddae1a16c9 14316:c888354aaa35
101 err.println("done."); 101 err.println("done.");
102 err.print("computing per loader stat .."); 102 err.print("computing per loader stat ..");
103 } 103 }
104 104
105 SystemDictionary dict = VM.getVM().getSystemDictionary(); 105 SystemDictionary dict = VM.getVM().getSystemDictionary();
106 dict.classesDo(new SystemDictionary.ClassAndLoaderVisitor() { 106 dict.classesDo(new SystemDictionary.ClassVisitor() {
107 public void visit(Klass k, Oop loader) { 107 public void visit(Klass k) {
108 if (! (k instanceof InstanceKlass)) { 108 if (! (k instanceof InstanceKlass)) {
109 return; 109 return;
110 } 110 }
111 Oop loader = ((InstanceKlass) k).getClassLoader();
111 LoaderData ld = (loader != null) ? (LoaderData)loaderMap.get(loader) 112 LoaderData ld = (loader != null) ? (LoaderData)loaderMap.get(loader)
112 : bootstrapLoaderData; 113 : bootstrapLoaderData;
113 if (ld != null) { 114 if (ld != null) {
114 ld.numClasses++; 115 ld.numClasses++;
115 long size = computeSize((InstanceKlass)k); 116 long size = computeSize((InstanceKlass)k);