|
@@ -11,17 +11,15 @@ public sealed class SubFunction : LuaFunction
|
|
|
protected override ValueTask<int> InvokeAsyncCore(LuaFunctionExecutionContext context, Memory<LuaValue> buffer, CancellationToken cancellationToken)
|
|
protected override ValueTask<int> InvokeAsyncCore(LuaFunctionExecutionContext context, Memory<LuaValue> buffer, CancellationToken cancellationToken)
|
|
|
{
|
|
{
|
|
|
var s = context.GetArgument<string>(0);
|
|
var s = context.GetArgument<string>(0);
|
|
|
- var i_arg = context.GetArgument<double>(1);
|
|
|
|
|
- var j_arg = context.HasArgument(2)
|
|
|
|
|
|
|
+ var i = context.GetArgument<double>(1);
|
|
|
|
|
+ var j = context.HasArgument(2)
|
|
|
? context.GetArgument<double>(2)
|
|
? context.GetArgument<double>(2)
|
|
|
: -1;
|
|
: -1;
|
|
|
|
|
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.State, this, 2, i_arg);
|
|
|
|
|
- LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.State, this, 3, j_arg);
|
|
|
|
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.State, this, 2, i);
|
|
|
|
|
+ LuaRuntimeException.ThrowBadArgumentIfNumberIsNotInteger(context.State, this, 3, j);
|
|
|
|
|
|
|
|
- var i = (int)i_arg;
|
|
|
|
|
- var j = (int)j_arg;
|
|
|
|
|
- buffer.Span[0] = StringHelper.SubString(s, i, j);
|
|
|
|
|
|
|
+ buffer.Span[0] = StringHelper.Slice(s, (int)i, (int)j).ToString();
|
|
|
return new(1);
|
|
return new(1);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|