Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/mcs/tools
diff options
context:
space:
mode:
authorJb Evain <jbevain@gmail.com>2010-02-01 16:26:06 +0300
committerJb Evain <jbevain@gmail.com>2010-02-01 16:26:06 +0300
commit6263e12951d177fa96d85ead6adb19d7316458b3 (patch)
tree26c4a2f5955cc434ce6b63eb7840646dd17838d9 /mcs/tools
parent888638c2273039f950173c5ecac45bd8b98defbb (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/ChangeLog4
-rw-r--r--mcs/tools/linker/Mono.Linker.Steps/MarkStep.cs21
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)