1098 return JNI_FALSE;
1099 }
1100 Klass* k = java_lang_Class::as_Klass(mirror);
1101 jboolean result = k->is_interface();
1102 assert(!result || k->is_instance_klass(),
1103 "all interfaces are instance types");
1104 // The compiler intrinsic for isInterface tests the
1105 // Klass::_access_flags bits in the same way.
1106 return result;
1107 JVM_END
1108
1109
1110 JVM_ENTRY(jobjectArray, JVM_GetClassSigners(JNIEnv *env, jclass cls))
1111 JVMWrapper("JVM_GetClassSigners");
1112 JvmtiVMObjectAllocEventCollector oam;
1113 if (java_lang_Class::is_primitive(JNIHandles::resolve_non_null(cls))) {
1114 // There are no signers for primitive types
1115 return NULL;
1116 }
1117
1118 objArrayOop signers = java_lang_Class::signers(JNIHandles::resolve_non_null(cls));
1119
1120 // If there are no signers set in the class, or if the class
1121 // is an array, return NULL.
1122 if (signers == NULL) return NULL;
1123
1124 // copy of the signers array
1125 Klass* element = ObjArrayKlass::cast(signers->klass())->element_klass();
1126 objArrayOop signers_copy = oopFactory::new_objArray(element, signers->length(), CHECK_NULL);
1127 for (int index = 0; index < signers->length(); index++) {
1128 signers_copy->obj_at_put(index, signers->obj_at(index));
1129 }
1130
1131 // return the copy
1132 return (jobjectArray) JNIHandles::make_local(env, signers_copy);
1133 JVM_END
1134
1135
1136 JVM_ENTRY(void, JVM_SetClassSigners(JNIEnv *env, jclass cls, jobjectArray signers))
1137 JVMWrapper("JVM_SetClassSigners");
1138 if (!java_lang_Class::is_primitive(JNIHandles::resolve_non_null(cls))) {
|
1098 return JNI_FALSE;
1099 }
1100 Klass* k = java_lang_Class::as_Klass(mirror);
1101 jboolean result = k->is_interface();
1102 assert(!result || k->is_instance_klass(),
1103 "all interfaces are instance types");
1104 // The compiler intrinsic for isInterface tests the
1105 // Klass::_access_flags bits in the same way.
1106 return result;
1107 JVM_END
1108
1109
1110 JVM_ENTRY(jobjectArray, JVM_GetClassSigners(JNIEnv *env, jclass cls))
1111 JVMWrapper("JVM_GetClassSigners");
1112 JvmtiVMObjectAllocEventCollector oam;
1113 if (java_lang_Class::is_primitive(JNIHandles::resolve_non_null(cls))) {
1114 // There are no signers for primitive types
1115 return NULL;
1116 }
1117
1118 objArrayHandle signers(THREAD, java_lang_Class::signers(JNIHandles::resolve_non_null(cls)));
1119
1120 // If there are no signers set in the class, or if the class
1121 // is an array, return NULL.
1122 if (signers == NULL) return NULL;
1123
1124 // copy of the signers array
1125 Klass* element = ObjArrayKlass::cast(signers->klass())->element_klass();
1126 objArrayOop signers_copy = oopFactory::new_objArray(element, signers->length(), CHECK_NULL);
1127 for (int index = 0; index < signers->length(); index++) {
1128 signers_copy->obj_at_put(index, signers->obj_at(index));
1129 }
1130
1131 // return the copy
1132 return (jobjectArray) JNIHandles::make_local(env, signers_copy);
1133 JVM_END
1134
1135
1136 JVM_ENTRY(void, JVM_SetClassSigners(JNIEnv *env, jclass cls, jobjectArray signers))
1137 JVMWrapper("JVM_SetClassSigners");
1138 if (!java_lang_Class::is_primitive(JNIHandles::resolve_non_null(cls))) {
|