Browse Source

Fix: Check userdata type

Akeit0 11 months ago
parent
commit
9187c691e3
1 changed files with 7 additions and 3 deletions
  1. 7 3
      src/Lua/LuaValue.cs

+ 7 - 3
src/Lua/LuaValue.cs

@@ -139,9 +139,13 @@ public readonly struct LuaValue : IEquatable<LuaValue>
             case LuaValueType.UserData:
                 if (t == typeof(ILuaUserData) || typeof(ILuaUserData).IsAssignableFrom(t))
                 {
-                    var v = referenceValue!;
-                    result = Unsafe.As<object, T>(ref v);
-                    return true;
+                    if(referenceValue is T tValue)
+                    {
+                        result = tValue;
+                        return true;
+                    }
+                    result = default!;
+                    return false;
                 }
                 else if (t == typeof(object))
                 {