USING: accessors alien alien.c-types alien.data combinators.short-circuit destructors.private kernel namespaces python.ffi sequences vocabs.loader words ; IN: python.errors : (check-ref) ( ref -- ref ) [ get-error throw-error f ] unless* ; : check-new-ref ( ref -- ref ) &Py_DecRef (check-ref) ; : check-borrowed-ref ( ref -- ref ) dup Py_IncRef &Py_DecRef (check-ref) ; : check-zero ( code -- ) 0 = [ get-error throw-error ] unless ; : unsteal-ref ( ref -- ) always-destructors get [ { [ nip Py_DecRef-destructor? ] [ alien>> [ alien-address ] bi@ = ] } 2&& not ] with filter! drop ;