classes.struct: adding a read-struct word.

db4
John Benediktsson 2012-04-18 16:00:29 -07:00
parent a99afa996c
commit 4c416bc308
1 changed files with 4 additions and 1 deletions

View File

@ -5,7 +5,7 @@ USING: accessors alien alien.c-types alien.data alien.parser
arrays byte-arrays classes classes.parser classes.private
classes.struct.bit-accessors classes.tuple classes.tuple.parser
combinators combinators.smart cpu.architecture definitions fry
functors.backend generalizations generic generic.parser kernel
functors.backend generalizations generic generic.parser io kernel
kernel.private lexer libc locals macros math math.order parser
quotations sequences slots slots.private specialized-arrays
stack-checker.dependencies summary vectors vocabs.loader
@ -71,6 +71,9 @@ M: struct hashcode*
! optimized down to efficient code if it is.
'[ _ boa ] call( ptr -- struct ) ; inline
: read-struct ( class -- struct )
[ heap-size read ] [ memory>struct ] bi ;
<PRIVATE
: (init-struct) ( class with-prototype: ( prototype -- alien ) sans-prototype: ( class -- alien ) -- alien )
'[ dup struct-prototype _ _ ?if ] keep memory>struct ; inline