alien.destructors: don't use disposable protocol, since it is common practice to 'leak' alien destructors (|Foo idiom)
parent
8b68a07649
commit
7b6d00a833
|
@ -4,7 +4,7 @@ USING: functors destructors accessors kernel parser words
|
||||||
effects generalizations sequences ;
|
effects generalizations sequences ;
|
||||||
IN: alien.destructors
|
IN: alien.destructors
|
||||||
|
|
||||||
SLOT: alien
|
TUPLE: alien-destructor alien ;
|
||||||
|
|
||||||
FUNCTOR: define-destructor ( F -- )
|
FUNCTOR: define-destructor ( F -- )
|
||||||
|
|
||||||
|
@ -16,12 +16,12 @@ N [ F stack-effect out>> length ]
|
||||||
|
|
||||||
WHERE
|
WHERE
|
||||||
|
|
||||||
TUPLE: F-destructor < disposable alien ;
|
TUPLE: F-destructor < alien-destructor ;
|
||||||
|
|
||||||
: <F-destructor> ( alien -- destructor )
|
: <F-destructor> ( alien -- destructor )
|
||||||
F-destructor new-disposable swap >>alien ; inline
|
F-destructor boa ; inline
|
||||||
|
|
||||||
M: F-destructor dispose* alien>> F N ndrop ;
|
M: F-destructor dispose alien>> F N ndrop ;
|
||||||
|
|
||||||
: &F ( alien -- alien ) dup <F-destructor> &dispose drop ; inline
|
: &F ( alien -- alien ) dup <F-destructor> &dispose drop ; inline
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue