--- gforth/compat/struct.fs 1997/07/31 16:17:23 1.4 +++ gforth/compat/struct.fs 2007/02/08 14:07:28 1.7 @@ -23,9 +23,11 @@ \ from MEMORY : \ allocate -: nalign ( addr1 n -- addr2 ) -\ addr2 is the aligned version of addr1 wrt the alignment size n - 1- tuck + swap invert and ; +: naligned ( addr1 n -- addr2 ) + \ addr2 is the aligned version of addr1 wrt the alignment size n + 1- tuck + swap invert and ; + +: nalign naligned ; \ old name, obsolete : dofield ( -- ) does> ( name execution: addr1 -- addr2 ) @@ -37,8 +39,8 @@ does> ( name execution: -- ) drop ; : create-field ( align1 offset1 align size "name" -- align2 offset2 ) - create rot dup , ( align1 align size offset1 ) - + >r nalign r> ; + create swap rot over nalign dup , ( align1 size align offset ) + rot + >r nalign r> ; : field ( align1 offset1 align size "name" -- align2 offset2 ) \ name execution: addr1 -- addr2 @@ -82,5 +84,5 @@ cell% 2* 2constant double% : %allocate ( align size -- addr ior ) nip allocate ; -: %alloc ( size align -- addr ) +: %alloc ( align size -- addr ) %allocate throw ;