< prev index next >

src/hotspot/share/prims/jvm.cpp

Print this page


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 


< prev index next >