Log all sdb log messages to the log file instead of stdout.
[mono.git] / mono / mini / declsec.c
index 2ce31fb2fa3c2b656fade7089f2268e3e7a79b0b..65e38d7f8fe5b29cb3e0b517954faace3cd71875 100644 (file)
@@ -19,7 +19,7 @@ mono_method_has_declsec (MonoMethod *method)
 {
        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;
@@ -70,8 +70,8 @@ mono_declsec_create_frame (MonoDomain *domain, MonoJitInfo *jinfo)
                jinfo->cas_inited = TRUE;
        }
 
-       frame->method = mono_method_get_object (domain, jinfo->method, NULL);
-       frame->domain = domain->domain;
+       MONO_OBJECT_SETREF (frame, method, mono_method_get_object (domain, jinfo->method, NULL));
+       MONO_OBJECT_SETREF (frame, domain, domain->domain);
 
        /* stack modifiers on methods have priority on (i.e. replaces) modifiers on class */
 
@@ -214,6 +214,8 @@ mono_declsec_linkdemand_aptc (MonoDomain *domain, MonoMethod *caller, MonoMethod
                        /* 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);
        }