From a8879543adecae969353c1723ca6aaf3bc534a70 Mon Sep 17 00:00:00 2001 From: Atsushi Eno Date: Thu, 16 Feb 2017 01:52:02 +0900 Subject: [PATCH] [Mono.Android][linker] add IntDefinitionAttribute.JniField and removal rule. This adds Java field information on every enumified constant. The changes are twofolds: one in generator, one here. It will help assembly reflection based tooling e.g. we won't need enum mapping metadata when dealing with enum constants. --- src/Mono.Android/Android.Runtime/IntDefinitionAttribute.cs | 1 + .../Linker/MonoDroid.Tuner/RemoveAttributes.cs | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/Mono.Android/Android.Runtime/IntDefinitionAttribute.cs b/src/Mono.Android/Android.Runtime/IntDefinitionAttribute.cs index c78d97b4882..8249751a3f3 100644 --- a/src/Mono.Android/Android.Runtime/IntDefinitionAttribute.cs +++ b/src/Mono.Android/Android.Runtime/IntDefinitionAttribute.cs @@ -11,6 +11,7 @@ public IntDefinitionAttribute (string constantMember) } public string ConstantMember { get; set; } + public string JniField { get; set; } } } diff --git a/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/RemoveAttributes.cs b/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/RemoveAttributes.cs index ae5045ea7c5..9df3927f9b2 100644 --- a/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/RemoveAttributes.cs +++ b/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/RemoveAttributes.cs @@ -24,6 +24,8 @@ protected override bool IsRemovedAttribute (CustomAttribute attribute) // note: this also avoid calling FullName (which allocates a string) var attr_type = attribute.Constructor.DeclaringType; switch (attr_type.Name) { + case "IntDefinitionAttribute": + return attr_type.Namespace == "Android.Runtime"; case "ObsoleteAttribute": // System.Mono*Attribute from mono/mcs/build/common/MonoTODOAttribute.cs case "MonoDocumentationNoteAttribute":