On 18-12-2019 20:46, Roberto Ierusalimschy wrote:
The indices of locals in the list of locals are not equal to their indices. Consider the next example: do local a, b, c end do local x, y, z end Because registers are reused, local 'x' has index 0, but it is not in position 0 in the list of locals: it is in position 3 (after 'a', 'b', and 'c'). To find a local at a given index and given PC, you must do what luaF_getlocalname does, counting the variables that are active at the given PC until you find the one with the index you are looking for. (Have a look at luaF_getlocalname in file 'lfunc.c'.) -- Roberto
Ah, thank you. That confirms how I currently try to get the local name for an index. I will have a look at luaF_getlocalname.
Bas
|