alien.destructors: ignore any output values from disposal word

db4
Slava Pestov 2009-03-28 22:26:49 -05:00
parent 602fe353e8
commit 84b5ace863
2 changed files with 6 additions and 2 deletions

View File

@ -1,6 +1,7 @@
! Copyright (C) 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: functors destructors accessors kernel parser words ;
USING: functors destructors accessors kernel parser words
combinators.smart ;
IN: alien.destructors
SLOT: alien
@ -18,7 +19,7 @@ TUPLE: F-destructor alien disposed ;
: <F-destructor> ( alien -- destructor ) f F-destructor boa ; inline
M: F-destructor dispose* alien>> F ;
M: F-destructor dispose* [ alien>> F ] drop-outputs ;
: &F ( alien -- alien ) dup <F-destructor> &dispose drop ; inline

View File

@ -4,6 +4,9 @@ USING: accessors fry generalizations kernel macros math.order
stack-checker math ;
IN: combinators.smart
MACRO: drop-outputs ( quot -- quot' )
dup infer out>> '[ @ _ ndrop ] ;
MACRO: output>sequence ( quot exemplar -- newquot )
[ dup infer out>> ] dip
'[ @ _ _ nsequence ] ;