Skip to content

Commit f003a0d

Browse files
committed
Fix NullPointerException when native class is not present
1 parent 3f97933 commit f003a0d

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

Il2CppInterop.Runtime/Runtime/Il2CppObjectPool.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,14 @@ public static T Get<T>(IntPtr ptr)
4040
var newObj = Il2CppObjectBase.InitializerStore<T>.Initializer(ptr);
4141
unsafe
4242
{
43-
var nativeClassStruct = UnityVersionHandler.Wrap((Il2CppClass*)Il2CppClassPointerStore<T>.NativeClassPtr);
44-
if (!nativeClassStruct.HasFinalize)
43+
var il2CppClass = (Il2CppClass*)Il2CppClassPointerStore<T>.NativeClassPtr;
44+
if (il2CppClass != null)
4545
{
46-
Il2CppSystem.GC.ReRegisterForFinalize(newObj as Object ?? new Object(ptr));
46+
var nativeClassStruct = UnityVersionHandler.Wrap(il2CppClass);
47+
if (!nativeClassStruct.HasFinalize)
48+
{
49+
Il2CppSystem.GC.ReRegisterForFinalize(newObj as Object ?? new Object(ptr));
50+
}
4751
}
4852
}
4953

0 commit comments

Comments
 (0)