MCPcopy Create free account
hub / github.com/WheretIB/nullc / __nullcCloseUpvalue

Function __nullcCloseUpvalue

NULLC/translation/runtime.cpp:304–319  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

302}
303
304void __nullcCloseUpvalue(__nullcUpvalue *&head, void *ptr)
305{
306 __nullcUpvalue *curr = head;
307
308 GC::unmanageableBase = (char*)&curr;
309 // close upvalue if it's target is equal to local variable, or it's address is out of stack
310 while(curr && ((char*)curr->ptr == ptr || (char*)curr->ptr < GC::unmanageableBase || (char*)curr->ptr > GC::unmanageableTop))
311 {
312 __nullcUpvalue *next = curr->next;
313 unsigned int size = curr->size;
314 head = curr->next;
315 memcpy(&curr->next, curr->ptr, size);
316 curr->ptr = (unsigned int*)&curr->next;
317 curr = next;
318 }
319}
320NULLCFuncPtr<> __nullcMakeFunction(unsigned int id, void* context)
321{
322 NULLCFuncPtr<> ret;

Calls

no outgoing calls

Tested by

no test coverage detected