diff --git a/core/alien/alien-tests.factor b/core/alien/alien-tests.factor index 9be2885888..5a880fa5a9 100755 --- a/core/alien/alien-tests.factor +++ b/core/alien/alien-tests.factor @@ -1,5 +1,5 @@ IN: alien.tests -USING: alien alien.accessors alien.syntax byte-arrays arrays +USING: accessors alien alien.accessors alien.syntax byte-arrays arrays kernel kernel.private namespaces tools.test sequences libc math system prettyprint layouts ; @@ -65,6 +65,10 @@ cell 8 = [ [ f ] [ 0 B{ 1 2 3 } pinned-c-ptr? ] unit-test +[ f ] [ 0 B{ 1 2 3 } 1 swap pinned-c-ptr? ] unit-test + +[ t ] [ 0 B{ 1 2 3 } 1 swap underlying>> byte-array? ] unit-test + [ "( displaced alien )" ] [ 0 B{ 1 2 3 } unparse ] unit-test [ f ] [ DLL" fadfasdfsada" dll-valid? ] unit-test diff --git a/vm/alien.c b/vm/alien.c index 7fdf9ccdb2..5b4ff3b832 100755 --- a/vm/alien.c +++ b/vm/alien.c @@ -62,7 +62,7 @@ CELL allot_alien(CELL delegate, CELL displacement) { F_ALIEN *delegate_alien = untag_object(delegate); displacement += delegate_alien->displacement; - alien->alien = F; + alien->alien = delegate_alien->alien; } else alien->alien = delegate;