CapersProject/Packages/com.singularitygroup.hotreload/Runtime/MethodUtils.cs

23 lines
791 B
C#

#if ENABLE_MONO && (DEVELOPMENT_BUILD || UNITY_EDITOR)
using System;
using System.Reflection;
namespace SingularityGroup.HotReload {
static class MethodUtils {
#if ENABLE_MONO
public static unsafe void DisableVisibilityChecks(MethodBase method) {
if(IntPtr.Size == sizeof(long)) {
var ptr = (Interop.MonoMethod64*)method.MethodHandle.Value.ToPointer();
ptr->monoMethodFlags |= Interop.MonoMethodFlags.skip_visibility;
} else {
var ptr = (Interop.MonoMethod32*)method.MethodHandle.Value.ToPointer();
ptr->monoMethodFlags |= Interop.MonoMethodFlags.skip_visibility;
}
}
#else
public static void DisableVisibilityChecks(MethodBase method) { }
#endif
}
}
#endif