src/share/vm/prims/jvm.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hsx-gc Cdiff src/share/vm/prims/jvm.cpp

src/share/vm/prims/jvm.cpp

Print this page
rev 3985 : 8005994: Method annotations are allocated unnecessarily during class file parsing
Reviewed-by: TBD1, TBD2

*** 1580,1593 **** ResourceMark rm(THREAD); // Return null for arrays and primitives if (!java_lang_Class::is_primitive(JNIHandles::resolve(cls))) { Klass* k = java_lang_Class::as_Klass(JNIHandles::resolve(cls)); if (k->oop_is_instance()) { ! typeArrayOop a = Annotations::make_java_array(InstanceKlass::cast(k)->type_annotations()->class_annotations(), CHECK_NULL); return (jbyteArray) JNIHandles::make_local(env, a); } } return NULL; JVM_END JVM_ENTRY(jobjectArray, JVM_GetMethodParameters(JNIEnv *env, jobject method)) { --- 1580,1596 ---- ResourceMark rm(THREAD); // Return null for arrays and primitives if (!java_lang_Class::is_primitive(JNIHandles::resolve(cls))) { Klass* k = java_lang_Class::as_Klass(JNIHandles::resolve(cls)); if (k->oop_is_instance()) { ! Annotations* type_annotations = InstanceKlass::cast(k)->type_annotations(); ! if (type_annotations != NULL) { ! typeArrayOop a = Annotations::make_java_array(type_annotations->class_annotations(), CHECK_NULL); return (jbyteArray) JNIHandles::make_local(env, a); } } + } return NULL; JVM_END JVM_ENTRY(jobjectArray, JVM_GetMethodParameters(JNIEnv *env, jobject method)) {
src/share/vm/prims/jvm.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File