diff src/share/vm/runtime/fieldDescriptor.cpp @ 6176:634b8615a6ba

7177409: Perf regression in JVM_GetClassDeclaredFields after generic signature changes. Summary: In fieldDescriptor::generic_signature() returns NULL immediately if the field has no generic signature. Reviewed-by: dholmes, coleenp, jcoomes
author jiangli
date Fri, 22 Jun 2012 14:00:39 -0400
parents 71afdabfd05b
children da91efe96a93
line wrap: on
line diff
--- a/src/share/vm/runtime/fieldDescriptor.cpp	Tue Jun 19 21:16:20 2012 -0700
+++ b/src/share/vm/runtime/fieldDescriptor.cpp	Fri Jun 22 14:00:39 2012 -0400
@@ -39,6 +39,10 @@
 }
 
 Symbol* fieldDescriptor::generic_signature() const {
+  if (!has_generic_signature()) {
+    return NULL;
+  }
+
   int idx = 0;
   instanceKlass* ik = instanceKlass::cast(field_holder());
   for (AllFieldStream fs(ik); !fs.done(); fs.next()) {