attribs for base methods that are on our assembly.
This finally makes a11y work without security disabled. The summary of
the troubles encountered:
- GetHashCode() -> base method not SC. (r139589+r139649)
- Dispose() -> interface method not SC. (r139796)
- get_Handle() -> interface method SC while impl not SC. (this commit)
svn path=/trunk/mcs/; revision=139852
+2009-08-13 Andrés G. Aragoneses <aaragoneses@novell.com>
+
+ * Mono.Tuner/MoonlightA11yProcessor.cs: Don't whitelist SC
+ attribs for base methods that are on our assembly.
+ This finally makes a11y work without security disabled. The
+ summary of the troubles encountered:
+ - GetHashCode() -> base method not SC. (r139589+r139649)
+ - Dispose() -> interface method not SC. (r139796)
+ - get_Handle() -> interface method SC while impl not SC. (this
+ commit)
+
2009-08-12 Andrés G. Aragoneses <aaragoneses@novell.com>
* Mono.Tuner/MoonlightA11yProcessor.cs: Look for base methods
parent = GetBaseMethod (type, method);
}
- if (parent == null || HasSecurityAttribute (parent, AttributeType.Critical))
+ //if there's no base method
+ if (parent == null ||
+
+ //if it's our bridge assembly, we're sure it will (finally, at the end of the linking process) have the SC attrib
+ _assembly.MainModule.Types.Contains (parent.DeclaringType) ||
+
+ //if the type is in the moonlight assemblies, check if it has the SC attrib
+ HasSecurityAttribute (parent, AttributeType.Critical))
+
AddCriticalAttribute (method);
}