From ba1bbe9d644a6ca67dc2873b72a40c1baf6fa12f Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Wed, 11 Jan 2023 17:03:33 -0600 Subject: [PATCH] [Java.Interop.Tools.JavaCallableWrappers] add overload for JavaTypeScanner Context: https://github.com/xamarin/xamarin-android/pull/7694 Add an overload of `JavaTypeScanner.GetJavaTypes()` that takes in a `Mono.Cecil.AssemblyDefinition` to be more easily consumed by linker steps. --- .../JavaTypeScanner.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers/JavaTypeScanner.cs b/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers/JavaTypeScanner.cs index 8a00814fe..24c48296e 100644 --- a/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers/JavaTypeScanner.cs +++ b/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers/JavaTypeScanner.cs @@ -51,6 +51,19 @@ public List GetJavaTypes (IEnumerable assemblies, IAssem return javaTypes; } + public List GetJavaTypes (AssemblyDefinition assembly) + { + var javaTypes = new List (); + + foreach (ModuleDefinition md in assembly.Modules) { + foreach (TypeDefinition td in md.Types) { + AddJavaTypes (javaTypes, td); + } + } + + return javaTypes; + } + void AddJavaTypes (List javaTypes, TypeDefinition type) { if (type.IsSubclassOf ("Java.Lang.Object", cache) ||