diff options
author | Jb Evain <jbevain@gmail.com> | 2010-02-01 16:26:06 +0300 |
---|---|---|
committer | Jb Evain <jbevain@gmail.com> | 2010-02-01 16:26:06 +0300 |
commit | 6263e12951d177fa96d85ead6adb19d7316458b3 (patch) | |
tree | 26c4a2f5955cc434ce6b63eb7840646dd17838d9 /mcs/tools | |
parent | 888638c2273039f950173c5ecac45bd8b98defbb (diff) |
2010-02-01 Jb Evain <jbevain@novell.com>
* MarkStep.cs: SoapHeader can either take a field or a property.
svn path=/branches/mono-2-6/mcs/; revision=150634
Diffstat (limited to 'mcs/tools')
-rw-r--r-- | mcs/tools/linker/ChangeLog | 4 | ||||
-rw-r--r-- | mcs/tools/linker/Mono.Linker.Steps/MarkStep.cs | 21 |
2 files changed, 22 insertions, 3 deletions
diff --git a/mcs/tools/linker/ChangeLog b/mcs/tools/linker/ChangeLog index 845cc068007..fbcb5fe2001 100644 --- a/mcs/tools/linker/ChangeLog +++ b/mcs/tools/linker/ChangeLog @@ -1,3 +1,7 @@ +2010-02-01 Jb Evain <jbevain@novell.com> + + * MarkStep.cs: SoapHeader can either take a field or a property. + 2010-01-14 Jb Evain <jbevain@novell.com> * MarkStep.cs: preserve fields specified by the diff --git a/mcs/tools/linker/Mono.Linker.Steps/MarkStep.cs b/mcs/tools/linker/Mono.Linker.Steps/MarkStep.cs index 3ac2e260051..f341931641b 100644 --- a/mcs/tools/linker/Mono.Linker.Steps/MarkStep.cs +++ b/mcs/tools/linker/Mono.Linker.Steps/MarkStep.cs @@ -472,11 +472,12 @@ namespace Mono.Linker.Steps { void MarkSoapHeader (MethodDefinition method, CustomAttribute attribute) { - string field_name; - if (!TryGetStringArgument (attribute, out field_name)) + string member_name; + if (!TryGetStringArgument (attribute, out member_name)) return; - MarkNamedField (method.DeclaringType, field_name); + MarkNamedField (method.DeclaringType, member_name); + MarkNamedProperty (method.DeclaringType, member_name); } void MarkNamedField (TypeDefinition type, string field_name) @@ -492,6 +493,20 @@ namespace Mono.Linker.Steps { } } + void MarkNamedProperty (TypeDefinition type, string property_name) + { + if (!type.HasProperties) + return; + + foreach (PropertyDefinition property in type.Properties) { + if (property.Name != property_name) + continue; + + MarkMethod (property.GetMethod); + MarkMethod (property.SetMethod); + } + } + void MarkGenericParameterProvider (IGenericParameterProvider provider) { if (!provider.HasGenericParameters) |