Add support for list element set

This commit is contained in:
wrenge 2024-01-16 14:37:20 +03:00
parent 1c4a827b0a
commit 3be5b3421c
1 changed files with 25 additions and 0 deletions

View File

@ -582,6 +582,31 @@ Script_{{o.name|norm_name}}.Method_{{m.name}}.ReturnValue(frm, stack
);
cl.Define(fn);
}
{
var fn = new FuncSymbolNative(new Origin(), "Set", Types.Void,
delegate(VM.Frame frm, ValStack stack, FuncArgsInfo args_info, ref BHS status)
{
#if !BHL_FRONT
var index = stack.Pop();
var val = stack.Pop();
var val_lst = stack.Pop();
{#TODO: get rid of replace hack below#}
{{('var ' ~ _self.val2native(token(o, 'bhl_native_arr_proxy'), 'val', 'tmp'))|replace({'tmp = tmp' : '', 'var var' : 'var'})}};
var lst = ((List<{{token(o, 'bhl_native_arr_proxy')|native_type}}>)val_lst.obj);
lst[(int)index._num] = tmp;
val.Release();
index.Release();
val_lst.Release();
#endif
return null;
},
new FuncArgSymbol("v", {{token(o, 'bhl_native_arr_proxy')|bhl_type_ref}}),
new FuncArgSymbol("idx", Types.Int)
);
cl.Define(fn);
}
cl.Setup();
{{scope}}.Define(cl);
}