private InterpretedFunction(InterpreterData idata, object staticSecurityDomain)
{
this.idata = idata;
// Always get Context from the current thread to
// avoid security breaches via passing mangled Context instances
// with bogus SecurityController
Context cx = Context.GetContext();
SecurityController sc = cx.GetSecurityController();
object dynamicDomain;
if (sc != null)
{
dynamicDomain = sc.GetDynamicSecurityDomain(staticSecurityDomain);
}
else
{
if (staticSecurityDomain != null)
{
throw new ArgumentException();
}
dynamicDomain = null;
}
this.securityController = sc;
this.securityDomain = dynamicDomain;
}