@@ -157,17 +157,15 @@ public override async ValueTask<int> ResumeAsync(LuaFunctionExecutionContext con
157157 Volatile . Write ( ref isFirstCall , false ) ;
158158 }
159159
160- ( var index , var result0 , var result1 ) = await ValueTaskEx . WhenAny ( resumeTask , functionTask ! ) ;
160+ var ( index , result0 , result1 ) = await ValueTaskEx . WhenAny ( resumeTask , functionTask ! ) ;
161161
162+ var bufferSpan = buffer . Span ;
162163 if ( index == 0 )
163164 {
164165 var results = result0 . Results ;
165166
166- buffer . Span [ 0 ] = true ;
167- for ( int i = 0 ; i < results . Length ; i ++ )
168- {
169- buffer . Span [ i + 1 ] = results [ i ] ;
170- }
167+ bufferSpan [ 0 ] = true ;
168+ results . CopyTo ( bufferSpan [ 1 ..] ) ;
171169
172170 return results . Length + 1 ;
173171 }
@@ -176,8 +174,8 @@ public override async ValueTask<int> ResumeAsync(LuaFunctionExecutionContext con
176174 var resultCount = functionTask ! . Result ;
177175
178176 Volatile . Write ( ref status , ( byte ) LuaThreadStatus . Dead ) ;
179- buffer . Span [ 0 ] = true ;
180- this . buffer [ 0 ..resultCount ] . CopyTo ( buffer . Span [ 1 ..] ) ;
177+ bufferSpan [ 0 ] = true ;
178+ this . buffer . AsSpan ( ) [ ..resultCount ] . CopyTo ( bufferSpan [ 1 ..] ) ;
181179
182180 ArrayPool < LuaValue > . Shared . Return ( this . buffer ) ;
183181
@@ -192,7 +190,7 @@ public override async ValueTask<int> ResumeAsync(LuaFunctionExecutionContext con
192190
193191 Volatile . Write ( ref status , ( byte ) LuaThreadStatus . Dead ) ;
194192 buffer . Span [ 0 ] = false ;
195- buffer . Span [ 1 ] = ex is LuaRuntimeException { ErrorObject : not null } luaEx ? luaEx . ErrorObject . Value : ex . Message ;
193+ buffer . Span [ 1 ] = ex is LuaRuntimeException { ErrorObject : not null } luaEx ? luaEx . ErrorObject . Value : ex . Message ;
196194 return 2 ;
197195 }
198196 else
0 commit comments