obfuz/Editor/Virtualization/ConstDataNode.cs

63 lines
1.6 KiB
C#
Raw Normal View History

2025-04-20 14:23:40 +08:00
using System;
namespace Obfuz.Virtualization
{
2025-04-20 15:20:13 +08:00
public class ConstDataNode : DataNodeAny
2025-04-20 14:23:40 +08:00
{
public override void Compile(CompileContext ctx)
{
switch (Type)
{
2025-04-20 15:20:13 +08:00
//case DataNodeType.Byte:
//{
// // create ldloc.i4
// break;
//}
2025-04-20 14:23:40 +08:00
case DataNodeType.Int32:
{
// create ldloc.i4
break;
}
case DataNodeType.Int64:
{
// create ldloc.i8
break;
}
case DataNodeType.Float32:
{
// create ldloc.r4
break;
}
case DataNodeType.Float64:
{
// create ldloc.r8
break;
}
case DataNodeType.Null:
{
// create ldnull
break;
}
2025-04-20 15:20:13 +08:00
case DataNodeType.String:
{
// create ldstr
break;
}
case DataNodeType.Bytes:
{
// create ldstr
// RuntimeHelpers.InitializeArray(array, fieldHandle);
break;
}
2025-04-20 14:23:40 +08:00
default:
{
throw new NotImplementedException($"Type:{Type} not implemented");
}
}
}
}
}