1183
1184 oop prot = klass->protection_domain();
1185 if (prot != NULL) {
1186 // Call pd.implies(new SecurityPermission("createAccessControlContext"))
1187 // in the new wrapper.
1188 methodHandle m(THREAD, Universe::protection_domain_implies_method());
1189 Handle h_prot(THREAD, prot);
1190 JavaValue result(T_BOOLEAN);
1191 JavaCallArguments args(h_prot);
1192 JavaCalls::call(&result, m, &args, CHECK_false);
1193 return (result.get_jboolean() != 0);
1194 }
1195 }
1196 return true;
1197 }
1198
1199 // Create an AccessControlContext with a protection domain with null codesource
1200 // and null permissions - which gives no permissions.
1201 oop create_dummy_access_control_context(TRAPS) {
1202 InstanceKlass* pd_klass = SystemDictionary::ProtectionDomain_klass();
1203 Handle obj = pd_klass->allocate_instance_handle(CHECK_NULL);
1204 // Call constructor ProtectionDomain(null, null);
1205 JavaValue result(T_VOID);
1206 JavaCalls::call_special(&result, obj, pd_klass,
1207 vmSymbols::object_initializer_name(),
1208 vmSymbols::codesource_permissioncollection_signature(),
1209 Handle(), Handle(), CHECK_NULL);
1210
1211 // new ProtectionDomain[] {pd};
1212 objArrayOop context = oopFactory::new_objArray(pd_klass, 1, CHECK_NULL);
1213 context->obj_at_put(0, obj());
1214
1215 // new AccessControlContext(new ProtectionDomain[] {pd})
1216 objArrayHandle h_context(THREAD, context);
1217 oop acc = java_security_AccessControlContext::create(h_context, false, Handle(), CHECK_NULL);
1218 return acc;
1219 }
1220
1221 JVM_ENTRY(jobject, JVM_DoPrivileged(JNIEnv *env, jclass cls, jobject action, jobject context, jboolean wrapException))
1222 JVMWrapper("JVM_DoPrivileged");
1223
1224 if (action == NULL) {
1225 THROW_MSG_0(vmSymbols::java_lang_NullPointerException(), "Null action");
1226 }
1227
|
1183
1184 oop prot = klass->protection_domain();
1185 if (prot != NULL) {
1186 // Call pd.implies(new SecurityPermission("createAccessControlContext"))
1187 // in the new wrapper.
1188 methodHandle m(THREAD, Universe::protection_domain_implies_method());
1189 Handle h_prot(THREAD, prot);
1190 JavaValue result(T_BOOLEAN);
1191 JavaCallArguments args(h_prot);
1192 JavaCalls::call(&result, m, &args, CHECK_false);
1193 return (result.get_jboolean() != 0);
1194 }
1195 }
1196 return true;
1197 }
1198
1199 // Create an AccessControlContext with a protection domain with null codesource
1200 // and null permissions - which gives no permissions.
1201 oop create_dummy_access_control_context(TRAPS) {
1202 InstanceKlass* pd_klass = SystemDictionary::ProtectionDomain_klass();
1203 // Call constructor ProtectionDomain(null, null);
1204 Handle obj = JavaCalls::construct_new_instance(pd_klass,
1205 vmSymbols::codesource_permissioncollection_signature(),
1206 Handle(), Handle(), CHECK_NULL);
1207
1208 // new ProtectionDomain[] {pd};
1209 objArrayOop context = oopFactory::new_objArray(pd_klass, 1, CHECK_NULL);
1210 context->obj_at_put(0, obj());
1211
1212 // new AccessControlContext(new ProtectionDomain[] {pd})
1213 objArrayHandle h_context(THREAD, context);
1214 oop acc = java_security_AccessControlContext::create(h_context, false, Handle(), CHECK_NULL);
1215 return acc;
1216 }
1217
1218 JVM_ENTRY(jobject, JVM_DoPrivileged(JNIEnv *env, jclass cls, jobject action, jobject context, jboolean wrapException))
1219 JVMWrapper("JVM_DoPrivileged");
1220
1221 if (action == NULL) {
1222 THROW_MSG_0(vmSymbols::java_lang_NullPointerException(), "Null action");
1223 }
1224
|