MonoBoolean
mono_method_has_declsec (MonoMethod *method)
{
- mono_jit_stats.cas_declsec_check++;
+ InterlockedIncrement (&mono_jit_stats.cas_declsec_check);
- if (method->wrapper_type == MONO_WRAPPER_MANAGED_TO_NATIVE) {
+ if (method->wrapper_type == MONO_WRAPPER_MANAGED_TO_NATIVE || method->wrapper_type == MONO_WRAPPER_MANAGED_TO_MANAGED) {
method = mono_marshal_method_from_wrapper (method);
if (!method)
return FALSE;
{
MonoDeclSecurityActions linkclass, linkmethod;
- mono_jit_stats.cas_linkdemand++;
+ InterlockedIncrement (&mono_jit_stats.cas_linkdemand);
if (mono_declsec_get_linkdemands (callee, &linkclass, &linkmethod)) {
MonoAssembly *assembly = mono_image_get_assembly (caller->klass->image);
MonoAssembly *assembly;
guint32 size = 0;
- mono_jit_stats.cas_linkdemand_aptc++;
+ InterlockedIncrement (&mono_jit_stats.cas_linkdemand_aptc);
/* A - Applicable only if we're calling into *another* assembly */
if (caller->klass->image == callee->klass->image)
/* look for AllowPartiallyTrustedCallersAttribute */
result = mono_custom_attrs_has_attr (cinfo, secman->allowpartiallytrustedcallers);
}
+ if (cinfo)
+ mono_custom_attrs_free (cinfo);
MONO_SECMAN_FLAG_SET_VALUE (assembly->aptc, result);
}
{
MonoAssembly *assembly = mono_image_get_assembly (caller->klass->image);
- mono_jit_stats.cas_linkdemand_pinvoke++;
+ InterlockedIncrement (&mono_jit_stats.cas_linkdemand_pinvoke);
/* Check for P/Invoke flag for the assembly */
if (!MONO_SECMAN_FLAG_INIT (assembly->unmanaged)) {
{
MonoAssembly *assembly;
- mono_jit_stats.cas_linkdemand_icall++;
+ InterlockedIncrement (&mono_jit_stats.cas_linkdemand_icall);
/* check if the _icall_ is defined inside an ECMA signed assembly */
assembly = mono_image_get_assembly (icall->klass->image);