Fix bug in <displaced-alien> found by Joe

db4
Slava Pestov 2008-07-04 22:36:55 -05:00
parent ceac27d4de
commit 86f476a23d
2 changed files with 6 additions and 2 deletions

View File

@ -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 } <displaced-alien> pinned-c-ptr? ] unit-test
[ f ] [ 0 B{ 1 2 3 } <displaced-alien> 1 swap <displaced-alien> pinned-c-ptr? ] unit-test
[ t ] [ 0 B{ 1 2 3 } <displaced-alien> 1 swap <displaced-alien> underlying>> byte-array? ] unit-test
[ "( displaced alien )" ] [ 0 B{ 1 2 3 } <displaced-alien> unparse ] unit-test
[ f ] [ DLL" fadfasdfsada" dll-valid? ] unit-test

View File

@ -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;