def stacklet_destructor(stacklet): sscopy = stacklet.s_sscopy if sscopy: llmemory.raw_free(sscopy) h = stacklet.s_handle if h: _c.destroy(h)
def shadowstack_destructor(shadowstackref): if root_walker.stacklet_support: from rpython.rlib import _rffi_stacklet as _c h = shadowstackref.context h = llmemory.cast_adr_to_ptr(h, _c.handle) shadowstackref.context = llmemory.NULL # base = shadowstackref.base shadowstackref.base = llmemory.NULL shadowstackref.top = llmemory.NULL llmemory.raw_free(base) # if root_walker.stacklet_support: if h: _c.destroy(h)
def destroy(thrd, h): _c.destroy(thrd._thrd, h) if we_are_translated(): debug.debug_print("not using a framework GC: " "stacklet_destroy() may leak")
def suspstack_destructor(suspstack): h = suspstack.handle if h: _c.destroy(h)
def destroy(thrd, h): _c.destroy(thrd._thrd, h) if objectmodel.we_are_translated(): debug.debug_print("not using a framework GC: " "stacklet_destroy() may leak")