lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Jerome Vuarand wrote:
> Eugen-Andrei Gavriloaie wrote:
>> Here is a piece of lua script:
>> 
>> a={some_key="some value...",some_other_key=233.2,"value without key"}
>> 
>> [...]
>> 
>> Normally I do:
>> 
>> lua_createtable();
>> lua_push... //key
>> lua_push... /value
>> lua_settable(L, -3);
>> 
>> But lua_settable is extracting 2 elements from the stack. What should
>> I put instead of the first lua_push to obtain an auto assigned key?
> 
> You can't get the exact same result without tracking the number of
> "auto-assigned" keys yourself, but you can use the following to have
> a similar result:  
> 
> lua_push...(L, value);
> lua_rawseti(L, -2, lua_objlen(L, -2));

There is an obvious mistake in the above, correct code is:

lua_push...(L, value);
lua_rawseti(L, -2, lua_objlen(L, -2) + 1); /* < note the +1 */