diff --git a/basis/alien/marshall/marshall.factor b/basis/alien/marshall/marshall.factor index c17a244e35..3fbfb32047 100644 --- a/basis/alien/marshall/marshall.factor +++ b/basis/alien/marshall/marshall.factor @@ -25,6 +25,8 @@ GENERIC: unmarshall-cast ( alien-wrapper -- alien-wrapper' ) M: alien-wrapper unmarshall-cast ; M: struct-wrapper unmarshall-cast ; +M: struct-wrapper dispose* underlying>> free ; + : marshall-pointer ( obj -- alien ) { { [ dup alien? ] [ ] } diff --git a/basis/alien/marshall/structs/structs.factor b/basis/alien/marshall/structs/structs.factor index b14d49762b..c3509cf8d7 100644 --- a/basis/alien/marshall/structs/structs.factor +++ b/basis/alien/marshall/structs/structs.factor @@ -6,8 +6,6 @@ kernel libc locals parser quotations sequences slots words alien.structs lexer vocabs.parser fry effects ; IN: alien.marshall.structs -M: struct-wrapper dispose* underlying>> free ; - : define-struct-accessor ( class name quot -- ) [ "accessors" create create-method dup make-inline ] dip define ;