@@ -36,6 +36,7 @@ public RuntimeAssemblyReferences(ModuleDefinition module, RewriteGlobalContext g
3636 public Lazy < MethodReference > IL2CPP_ManagedStringToIl2Cpp { get ; private set ; }
3737 public Lazy < MethodReference > Il2CppObjectBase_Cast { get ; private set ; }
3838 public Lazy < MethodReference > Il2CppObjectBase_TryCast { get ; private set ; }
39+ public Lazy < MethodReference > Il2CppObjectPool_Get { get ; private set ; }
3940 public Lazy < MethodReference > IL2CPP_ResolveICall { get ; private set ; }
4041 public Lazy < MethodReference > IL2CPP_il2cpp_gc_wbarrier_set_field { get ; private set ; }
4142 public Lazy < MethodReference > IL2CPP_FieldWriteWbarrierStub { get ; private set ; }
@@ -76,6 +77,7 @@ public RuntimeAssemblyReferences(ModuleDefinition module, RewriteGlobalContext g
7677 : IL2CPP_FieldWriteWbarrierStub . Value ;
7778
7879 public TypeReference Il2CppObjectBase { get ; private set ; }
80+ public TypeReference Il2CppObjectPool { get ; private set ; }
7981 public TypeReference Il2CppStringArray { get ; private set ; }
8082 public TypeReference Il2CppArrayBase { get ; private set ; }
8183 public TypeReference Il2CppStructArray { get ; private set ; }
@@ -112,6 +114,8 @@ private void InitTypeRefs()
112114 Il2CppObjectBase =
113115 new TypeReference ( "Il2CppInterop.Runtime.InteropTypes" , "Il2CppObjectBase" , Module , assemblyRef ) ;
114116
117+ Il2CppObjectPool = new TypeReference ( "Il2CppInterop.Runtime.Runtime" , "Il2CppObjectPool" , Module , assemblyRef ) ;
118+
115119 Il2CppStringArray = new TypeReference ( "Il2CppInterop.Runtime.InteropTypes.Arrays" , "Il2CppStringArray" , Module ,
116120 assemblyRef ) ;
117121
@@ -142,6 +146,7 @@ private void InitTypeRefs()
142146 Il2CppException = new TypeReference ( "Il2CppInterop.Runtime" , "Il2CppException" , Module , assemblyRef ) ;
143147
144148 allTypes [ "Il2CppInterop.Runtime.InteropTypes.Il2CppObjectBase" ] = Il2CppObjectBase ;
149+ allTypes [ "Il2CppInterop.Runtime.Runtime.Il2CppObjectPool" ] = Il2CppObjectPool ;
145150 allTypes [ "Il2CppInterop.Runtime.InteropTypes.Arrays.Il2CppStringArray" ] = Il2CppStringArray ;
146151 allTypes [ "Il2CppInterop.Runtime.InteropTypes.Arrays.Il2CppReferenceArray<T>" ] = Il2CppReferenceArray ;
147152 allTypes [ "Il2CppInterop.Runtime.InteropTypes.Arrays.Il2CppStructArray<T>" ] = Il2CppStructArray ;
@@ -281,6 +286,18 @@ private void InitMethodRefs()
281286 return mr ;
282287 } ) ;
283288
289+ Il2CppObjectPool_Get = new Lazy < MethodReference > ( ( ) =>
290+ {
291+ var mr = new MethodReference ( "Get" , Module . Void ( ) ,
292+ ResolveType ( "Il2CppInterop.Runtime.Runtime.Il2CppObjectPool" ) ) ;
293+ var gp0 = new GenericParameter ( "T" , mr ) ;
294+ mr . GenericParameters . Add ( gp0 ) ;
295+ mr . ReturnType = gp0 ;
296+ mr . HasThis = false ;
297+ mr . Parameters . Add ( new ParameterDefinition ( "ptr" , ParameterAttributes . None , ResolveType ( "System.IntPtr" ) ) ) ;
298+ return mr ;
299+ } ) ;
300+
284301 IL2CPP_ResolveICall = new Lazy < MethodReference > ( ( ) =>
285302 {
286303 var mr = new MethodReference ( "ResolveICall" , Module . Void ( ) ,
0 commit comments