classes.struct: adding a read-struct word.
parent
a99afa996c
commit
4c416bc308
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue