[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: segfault when lua_newtable called 100 times in a row
- From: Nagaev Boris <bnagaev@...>
- Date: Sun, 10 Apr 2016 21:49:25 +0000
On Sun, Apr 10, 2016 at 8:44 PM, Soni L. <fakedme@gmail.com> wrote:
>
>
> On 10/04/16 05:06 PM, Nagaev Boris wrote:
>>
>> On Sun, Apr 10, 2016 at 6:40 PM, Jura Pk <marsgpl@gmail.com> wrote:
>>>
>>> Problem solved, thanks to Shmuel Zeigerman and Soni L.
>>> After wrapping in lua_checkstack, the code works perfectly even with 1000
>>> tables.
>>> Seems, like lua_checkstack grows the stack =)
>>>
>>> 2016-04-10 21:27 GMT+03:00 Shmuel Zeigerman <shmuz@013net.net>:
>>>>
>>>> On 10/04/2016 20:16, Jura Pk wrote:
>>>>>
>>>>> I am stuck with a problem: when I'm trying to add 100 tables in Lua c
>>>>> stack, I receive segfault on function end.
>>>>> Code example:
>>>>> lua_example.c: http://pastebin.com/GFvLwMY2
>>>>> Makefile: http://pastebin.com/3EWJiVz7
>>>>> test.lua: http://pastebin.com/1y22XvzK
>>>>>
>>>> See https://www.lua.org/manual/5.3/manual.html#lua_checkstack
>>>>
>>>> --
>>>> Shmuel
>>>>
>>>>
>> By the way, why not to grow the stack automatically in pushing API
>> functions?
>>
> Because of overhead. Imagine checking the stack every operation vs checking
> the stack once for 1000 operations, or however many you need.
>
If the stack has room for new element, than the check is just one
comparison, which would be perfectly predicted.
--
Best regards,
Boris Nagaev