18 lines
587 B
Factor
18 lines
587 B
Factor
USING: accessors alien.c-types classes.struct io kernel math
|
|
math.bitwise tools.image-analyzer.gc-info tools.image-analyzer.vm ;
|
|
IN: tools.image-analyzer.code-heap-reader
|
|
QUALIFIED: layouts
|
|
|
|
: free? ( code-block -- ? )
|
|
header>> 1 mask? ;
|
|
|
|
: size ( code-block -- n )
|
|
header>> dup 1 mask? [ 7 unmask ] [ 0xfffff8 mask ] if ;
|
|
|
|
: (read-code-block) ( -- code-block payload )
|
|
code-block [ read-struct ] [ heap-size ] bi over size swap - read ;
|
|
|
|
: read-code-block ( -- code-block )
|
|
tell-input (read-code-block) 2dup [ free? ] [ byte-array>gc-maps ] bi*
|
|
code-heap-node boa ;
|