[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Searching for prior art.
- From: Xmilia Hermit <xmilia.hermit@...>
- Date: Mon, 10 Jan 2022 12:53:21 +0100
Francisco Olarte wrote:
This might be a problem for the SSO since it would need to create a heap
string whenever a C function tries to get a pointer to the string since
it could be moved to a different stack index and the pointer still needs
to be valid.
It is, a show stopper for me. Thanks.
I did think a bit more about this problem. It could be solved by a
second "stack". This stack would need to be implemented by a linked list
of pages to ensure pointer stability. When a string pointer to a small
string in the stack is requested the string is allocated in a page and
the pointer is returned. The amount of allocated strings for a function
frame is bounded by the amount of stack slots this function uses since
only the used stack slots can have their strings allocated. If there are
to many strings allocated for a function frame the strings which are
already removed from the lua stack can be searched and the 16 byte
buckets reused for another string allocation. This would require a
search and copy of small strings, however, the heap allocation is removed.