Browse Source

Fix: vm & coroutine (vararg)

AnnulusGames 1 year ago
parent
commit
c89509f883
2 changed files with 1 additions and 3 deletions
  1. 0 2
      src/Lua/LuaCoroutine.cs
  2. 1 1
      src/Lua/Runtime/LuaVirtualMachine.cs

+ 0 - 2
src/Lua/LuaCoroutine.cs

@@ -132,7 +132,6 @@ public sealed class LuaCoroutine : LuaThread, IValueTaskSource<LuaCoroutine.Yiel
                             Stack.Push(context.GetArgument(i + fixedArgumentCount + 1));
                         }
 
-                        Stack.Push(Function);
                         frameBase = Stack.Count;
 
                         for (int i = 0; i < fixedArgumentCount; i++)
@@ -142,7 +141,6 @@ public sealed class LuaCoroutine : LuaThread, IValueTaskSource<LuaCoroutine.Yiel
                     }
                     else
                     {
-                        Stack.Push(Function);
                         frameBase = Stack.Count;
 
                         for (int i = 0; i < context.ArgumentCount - 1; i++)

+ 1 - 1
src/Lua/Runtime/LuaVirtualMachine.cs

@@ -887,7 +887,7 @@ public static partial class LuaVirtualMachine
                             for (int i = 0; i < count; i++)
                             {
                                 stack.UnsafeGet(RA + i) = frame.VariableArgumentCount > i
-                                    ? stack.UnsafeGet(frame.Base - (frame.VariableArgumentCount - i + 1))
+                                    ? stack.UnsafeGet(frame.Base - (frame.VariableArgumentCount - i))
                                     : LuaValue.Nil;
                             }
                             stack.NotifyTop(RA + count);