! Copyright (C) 2010 Joe Groff. ! See http://factorcode.org/license.txt for BSD license. USING: alien alien.destructors assocs kernel math math.bitwise namespaces ; IN: alien.handles : ( object -- int ) next-handle [ alien-handles get-global set-at ] keep ; inline : alien-handle> ( int -- object ) alien-handles get-global at ; inline : alien-handle? ( int -- ? ) alien-handles get-global key? >boolean ; inline : release-alien-handle ( int -- ) alien-handles get-global delete-at ; inline DESTRUCTOR: release-alien-handle : ( object -- void* ) ; inline : alien-handle-ptr> ( void* -- object ) alien-address alien-handle> ; inline : alien-handle-ptr? ( alien -- ? ) alien-address alien-handle? ; inline : release-alien-handle-ptr ( alien -- ) alien-address release-alien-handle ; inline DESTRUCTOR: release-alien-handle-ptr