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