Skip to content

Commit

Permalink
Remove unnecessary support for using pointers as type arguments
Browse files Browse the repository at this point in the history
  • Loading branch information
ds5678 committed Sep 13, 2024
1 parent e7164cf commit e82d0f4
Show file tree
Hide file tree
Showing 3 changed files with 0 additions and 29 deletions.
11 changes: 0 additions & 11 deletions Il2CppInterop.Generator/Extensions/ILGeneratorEx.cs
Original file line number Diff line number Diff line change
Expand Up @@ -85,11 +85,6 @@ private static void EmitObjectStoreGeneric(ILProcessor body, TypeSignature origi

body.Add(OpCodes.Brtrue, valueTypeNop);

body.Add(OpCodes.Dup);
body.Add(OpCodes.Callvirt, enclosingType.NewType.Module!.TypeGetIsPointer());

body.Add(OpCodes.Brtrue, valueTypeNop);

body.Add(OpCodes.Callvirt, enclosingType.NewType.Module!.TypeGetFullName());
body.Add(OpCodes.Ldstr, "System.String");
body.Add(OpCodes.Call, enclosingType.NewType.Module!.StringEquals());
Expand Down Expand Up @@ -236,12 +231,6 @@ private static void EmitObjectToPointerGeneric(ILProcessor body, TypeSignature o

body.Add(OpCodes.Brtrue, valueTypeNop);

body.Add(OpCodes.Ldtoken, newType.ToTypeDefOrRef());
body.Add(OpCodes.Call, enclosingType.NewType.Module!.TypeGetTypeFromHandle());
body.Add(OpCodes.Callvirt, enclosingType.NewType.Module!.TypeGetIsPointer());

body.Add(OpCodes.Brtrue, valueTypeNop);

body.AddLoadArgument(argumentIndex);
body.Add(OpCodes.Box, newType.ToTypeDefOrRef());
body.Add(OpCodes.Dup);
Expand Down
12 changes: 0 additions & 12 deletions Il2CppInterop.Generator/Passes/Pass50GenerateMethods.cs
Original file line number Diff line number Diff line change
Expand Up @@ -142,12 +142,6 @@ public static void DoPass(RewriteGlobalContext context)

bodyBuilder.Add(OpCodes.Brtrue, valueTypeBlock);

bodyBuilder.Add(OpCodes.Ldtoken, elementType.ToTypeDefOrRef());
bodyBuilder.Add(OpCodes.Call, imports.Module.TypeGetTypeFromHandle());
bodyBuilder.Add(OpCodes.Callvirt, imports.Module.TypeGetIsPointer());

bodyBuilder.Add(OpCodes.Brtrue, valueTypeBlock);

// The generic parameter is an Il2CppObjectBase => set the output storage to a nullptr
bodyBuilder.Add(OpCodes.Ldc_I4, 0);
bodyBuilder.Add(OpCodes.Stloc, outVar);
Expand Down Expand Up @@ -237,12 +231,6 @@ public static void DoPass(RewriteGlobalContext context)

bodyBuilder.Add(OpCodes.Brtrue, continueBlock);

bodyBuilder.Add(OpCodes.Ldtoken, methodParam.ParameterType.GetElementType().ToTypeDefOrRef());
bodyBuilder.Add(OpCodes.Call, imports.Module.TypeGetTypeFromHandle());
bodyBuilder.Add(OpCodes.Callvirt, imports.Module.TypeGetIsPointer());

bodyBuilder.Add(OpCodes.Brtrue, continueBlock);

// The generic parameter is an Il2CppObjectBase => update the reference appropriately
bodyBuilder.EmitUpdateRef(newMethod.Parameters[paramIndex], paramIndex + argOffset, paramVariable,
imports);
Expand Down
6 changes: 0 additions & 6 deletions Il2CppInterop.Generator/Utils/CorlibReferences.cs
Original file line number Diff line number Diff line change
Expand Up @@ -216,12 +216,6 @@ public static MemberReference TypeGetIsValueType(this ModuleDefinition module)
return new MemberReference(type.ToTypeDefOrRef(), "get_IsValueType", MethodSignature.CreateInstance(module.Bool()));
}

public static MemberReference TypeGetIsPointer(this ModuleDefinition module)
{
var type = module.Type();
return new MemberReference(type.ToTypeDefOrRef(), "get_IsPointer", MethodSignature.CreateInstance(module.Bool()));
}

public static MemberReference TypeGetFullName(this ModuleDefinition module)
{
var type = module.Type();
Expand Down

0 comments on commit e82d0f4

Please sign in to comment.