@@ -296,8 +296,7 @@ struct MCScriptBytecodeOp_Invoke
296296 SelectDefinitionFromGroup (ctxt,
297297 t_instance,
298298 static_cast <MCScriptDefinitionGroupDefinition *>(t_definition),
299- t_argument_regs,
300- t_argument_count,
299+ MCMakeSpan (t_argument_regs, t_argument_count),
301300 t_resolved_instance,
302301 t_resolved_definition);
303302 }
@@ -347,8 +346,7 @@ struct MCScriptBytecodeOp_Invoke
347346 static void SelectDefinitionFromGroup (MCScriptExecuteContext& ctxt,
348347 MCScriptInstanceRef p_instance,
349348 MCScriptDefinitionGroupDefinition *p_group,
350- const uindex_t *p_arguments,
351- uindex_t p_argument_count,
349+ MCSpan<const uindex_t > p_arguments,
352350 MCScriptInstanceRef& r_selected_instance,
353351 MCScriptDefinition*& r_selected_definition)
354352 {
@@ -378,11 +376,11 @@ struct MCScriptBytecodeOp_Invoke
378376 MCTypeInfoRef t_current_signature;
379377 t_current_signature = t_current_instance -> module -> types[t_current_handler -> type] -> typeinfo;
380378
381- if (MCHandlerTypeInfoGetParameterCount (t_current_signature) != p_argument_count )
379+ if (MCHandlerTypeInfoGetParameterCount (t_current_signature) != p_arguments. size () )
382380 continue ;
383381
384382 uindex_t t_current_score = 0 ;
385- for (uindex_t t_arg_idx = 0 ; t_arg_idx < p_argument_count ; t_arg_idx++)
383+ for (uindex_t t_arg_idx = 0 ; t_arg_idx < p_arguments. size () ; t_arg_idx++)
386384 {
387385 // We can't compare types of out arguments as they have no value
388386 // (yet).
@@ -436,8 +434,7 @@ struct MCScriptBytecodeOp_Invoke
436434 }
437435 if (t_min_score_ambiguous || t_min_score_definition == NULL )
438436 {
439- ctxt.ThrowUnableToResolveMultiInvoke (p_group,
440- MCMakeSpan (p_arguments, p_argument_count));
437+ ctxt.ThrowUnableToResolveMultiInvoke (p_group, p_arguments);
441438 return ;
442439 }
443440
0 commit comments