Skip to content

Commit 59e7adc

Browse files
Bump to xamarin/Java.Interop/main@cf80deb7 (#7664)
Changes: dotnet/java-interop@f8d77fa...cf80deb * dotnet/java-interop@cf80deb7: [Java.Interop.Tools.JavaCallableWrappers] use IMetadataResolver more (dotnet/java-interop#1069) * dotnet/java-interop@5c5dc086: [generator] enum map.csv can set `@deprecated-since` for enum values (dotnet/java-interop#1070) Any place we used: * `TypeDefinitionCache?` * `IMetadataResolver?` As of dotnet/java-interop@cf80deb7, Java.Interop no longer allows `null` values for these parameters, so overloads which were] `[Obsolete]` now emit errors instead of warnings: [Obsolete ("Use the TypeDefinitionCache overload for better performance.", error: true)] public static MethodDefinition GetBaseDefinition (this MethodDefinition method) => GetBaseDefinition (method, resolver: null!); This results in 3 compiler errors in xamarin-android: src\Xamarin.Android.Build.Tasks\Mono.Android\ApplicationAttribute.Partial.cs(65,11): error CS0619: 'TypeDefinitionRocks.IsSubclassOf(TypeDefinition, string)' is obsolete: 'Use the TypeDefinitionCache overload for better performance.' src\Xamarin.Android.Build.Tasks\Mono.Android\ApplicationAttribute.Partial.cs(268,12): error CS0619: 'JavaNativeTypeManager.ToJniName(TypeDefinition)' is obsolete: 'Use the TypeDefinitionCache overload for better performance.' src\Xamarin.Android.Build.Tasks\Utilities\ManifestDocumentElement.cs(28,11): error CS0619: 'JavaNativeTypeManager.ToJniName(TypeDefinition)' is obsolete: 'Use the TypeDefinitionCache overload for better performance.' After these changes, it appears we will improve the performance further of apps that use: * `ApplicationAttribute.BackupAgent` * `ApplicationAttribute.Name` * `AndroidManifest.xml` attributes that take a `System.Type` values Additionally, fix a `NullReferenceException` in the linker: Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object. at Java.Interop.Tools.Cecil.TypeDefinitionRocks.GetBaseType(TypeDefinition type, IMetadataResolver resolver) in /Users/builder/azdo/_work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/TypeDefinitionRocks.cs:line 21 at Java.Interop.Tools.Cecil.TypeDefinitionRocks.GetTypeAndBaseTypes(TypeDefinition type, IMetadataResolver resolver)+MoveNext() in /Users/builder/azdo/_work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/TypeDefinitionRocks.cs:line 36 at Java.Interop.Tools.Cecil.TypeDefinitionRocks.IsSubclassOf(TypeDefinition type, String typeName, IMetadataResolver resolver) in /Users/builder/azdo/_work/1/s/xamarin-android/external/Java.Interop/src/Java.Interop.Tools.Cecil/Java.Interop.Tools.Cecil/TypeDefinitionRocks.cs:line 87 at MonoDroid.Tuner.FixAbstractMethodsStep.ProcessType(TypeDefinition type) in /Users/builder/azdo/_work/1/s/xamarin-android/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/FixAbstractMethodsStep.cs:line 81 at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference, DependencyInfo reason, Nullable`1 origin) at Mono.Linker.Steps.MarkStep.MarkField(FieldDefinition field, DependencyInfo& reason, MessageOrigin& origin) at Mono.Linker.Steps.MarkStep.MarkEntireType(TypeDefinition type, DependencyInfo& reason) at Mono.Linker.Steps.MarkStep.MarkEntireAssembly(AssemblyDefinition assembly) at Mono.Linker.Steps.MarkStep.MarkAssembly(AssemblyDefinition assembly, DependencyInfo reason) at Mono.Linker.Steps.MarkStep.MarkModule(ModuleDefinition module, DependencyInfo reason) at Mono.Linker.Steps.MarkStep.ProcessMarkedPending() at Mono.Linker.Steps.MarkStep.Initialize() at Mono.Linker.Steps.MarkStep.Process(LinkContext context) at Mono.Linker.Pipeline.Process(LinkContext context) at Mono.Linker.Driver.Run(ILogger customLogger) at Mono.Linker.Driver.Main(String[] args) This was caused by removing `null` checks in Java.Interop. Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1 parent cc70ce2 commit 59e7adc

22 files changed

+124
-121
lines changed

external/Java.Interop

src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/FixAbstractMethodsStep.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public class FixAbstractMethodsStep :
3333
#if ILLINK
3434
public override void Initialize (LinkContext context, MarkContext markContext)
3535
{
36+
this.cache = context;
3637
base.Initialize (context, markContext);
3738
markContext.RegisterMarkTypeAction (type => ProcessType (type));
3839
}

src/Xamarin.Android.Build.Tasks/Mono.Android/ActivityAttribute.Partial.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -347,9 +347,9 @@ public static ActivityAttribute FromTypeDefinition (TypeDefinition type)
347347
return self;
348348
}
349349

350-
internal XElement ToElement (IAssemblyResolver resolver, string packageName, int targetSdkVersion)
350+
internal XElement ToElement (IAssemblyResolver resolver, string packageName, TypeDefinitionCache cache, int targetSdkVersion)
351351
{
352-
return mapping.ToElement (this, specified, packageName, type, resolver, targetSdkVersion);
352+
return mapping.ToElement (this, specified, packageName, cache, type, resolver, targetSdkVersion);
353353
}
354354
}
355355
}

src/Xamarin.Android.Build.Tasks/Mono.Android/ApplicationAttribute.Partial.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,15 @@ partial class ApplicationAttribute {
5959
"BackupAgent",
6060
"backupAgent",
6161
(self, value) => self._BackupAgent = (string) value,
62-
(self, p, r) => {
62+
(self, p, r, cache) => {
6363
var typeDef = ManifestDocumentElement.ResolveType (self._BackupAgent, p, r);
6464

65-
if (!typeDef.IsSubclassOf ("Android.App.Backup.BackupAgent"))
65+
if (!typeDef.IsSubclassOf ("Android.App.Backup.BackupAgent", cache))
6666
throw new InvalidOperationException (
6767
string.Format ("The Type '{0}', referenced by the Android.App.ApplicationAttribute.BackupAgent property, must be a subclass of the type Android.App.Backup.BackupAgent.",
6868
typeDef.FullName));
6969

70-
return ManifestDocumentElement.ToString (typeDef);
70+
return ManifestDocumentElement.ToString (typeDef, cache);
7171
}
7272
}, {
7373
"BackupInForeground",
@@ -256,16 +256,16 @@ public static ApplicationAttribute FromCustomAttributeProvider (ICustomAttribute
256256
return self;
257257
}
258258

259-
internal XElement ToElement (IAssemblyResolver resolver, string packageName)
259+
internal XElement ToElement (IAssemblyResolver resolver, string packageName, TypeDefinitionCache cache)
260260
{
261-
return mapping.ToElement (this, specified, packageName, provider, resolver);
261+
return mapping.ToElement (this, specified, packageName, cache, provider, resolver);
262262
}
263263

264-
static string ToNameAttribute (ApplicationAttribute self)
264+
static string ToNameAttribute (ApplicationAttribute self, ICustomAttributeProvider provider, IAssemblyResolver resolver, TypeDefinitionCache cache)
265265
{
266266
var type = self.provider as TypeDefinition;
267267
if (string.IsNullOrEmpty (self.Name) && type != null)
268-
return JavaNativeTypeManager.ToJniName (type).Replace ('/', '.');
268+
return JavaNativeTypeManager.ToJniName (type, cache).Replace ('/', '.');
269269

270270
return self.Name;
271271
}

src/Xamarin.Android.Build.Tasks/Mono.Android/BroadcastReceiverAttribute.Partial.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,9 @@ public static BroadcastReceiverAttribute FromTypeDefinition (TypeDefinition type
8282
return self;
8383
}
8484

85-
public XElement ToElement (string packageName)
85+
public XElement ToElement (string packageName, TypeDefinitionCache cache)
8686
{
87-
return mapping.ToElement (this, specified, packageName);
87+
return mapping.ToElement (this, specified, packageName, cache);
8888
}
8989
}
9090
}

src/Xamarin.Android.Build.Tasks/Mono.Android/ContentProviderAttribute.Partial.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,9 +118,9 @@ public static ContentProviderAttribute FromTypeDefinition (TypeDefinition type)
118118
return self;
119119
}
120120

121-
public XElement ToElement (string packageName)
121+
public XElement ToElement (string packageName, TypeDefinitionCache cache)
122122
{
123-
return mapping.ToElement (this, specified, packageName);
123+
return mapping.ToElement (this, specified, packageName, cache);
124124
}
125125
}
126126
}

src/Xamarin.Android.Build.Tasks/Mono.Android/GrantUriPermissionAttribute.Partial.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@ public static IEnumerable<GrantUriPermissionAttribute> FromTypeDefinition (TypeD
4545
}
4646
}
4747

48-
public XElement ToElement (string packageName)
48+
public XElement ToElement (string packageName, TypeDefinitionCache cache)
4949
{
50-
return mapping.ToElement (this, specified, packageName);
50+
return mapping.ToElement (this, specified, packageName, cache);
5151
}
5252
}
5353
}

src/Xamarin.Android.Build.Tasks/Mono.Android/InstrumentationAttribute.Partial.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,9 @@ public void SetTargetPackage (string package)
7676
specified.Add ("TargetPackage");
7777
}
7878

79-
public XElement ToElement (string packageName)
79+
public XElement ToElement (string packageName, TypeDefinitionCache cache)
8080
{
81-
return mapping.ToElement (this, specified, packageName);
81+
return mapping.ToElement (this, specified, packageName, cache);
8282
}
8383
}
8484
}

src/Xamarin.Android.Build.Tasks/Mono.Android/LayoutAttribute.Partial.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using System;
1+
using System;
22
using System.Collections.Generic;
33
using System.Linq;
44
using System.Xml.Linq;
@@ -62,9 +62,9 @@ public static LayoutAttribute FromTypeDefinition (TypeDefinition type)
6262
return self;
6363
}
6464

65-
internal XElement ToElement (IAssemblyResolver resolver, string packageName)
65+
internal XElement ToElement (IAssemblyResolver resolver, string packageName, TypeDefinitionCache cache)
6666
{
67-
return mapping.ToElement (this, specified, packageName, type, resolver);
67+
return mapping.ToElement (this, specified, packageName, cache, type, resolver);
6868
}
6969
}
7070
}

src/Xamarin.Android.Build.Tasks/Mono.Android/MetaDataAttribute.Partial.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ public static IEnumerable<MetaDataAttribute> FromCustomAttributeProvider (ICusto
4646
}
4747
}
4848

49-
public XElement ToElement (string packageName)
49+
public XElement ToElement (string packageName, TypeDefinitionCache cache)
5050
{
51-
return mapping.ToElement (this, specified, packageName);
51+
return mapping.ToElement (this, specified, packageName, cache);
5252
}
5353
}
5454
}

0 commit comments

Comments
 (0)