]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/tools/image-analyzer/code-heap-reader/code-heap-reader.factor
tools.image-analyzer.*: wrap read objects in heap-node tuples with their addresses
[factor.git] / extra / tools / image-analyzer / code-heap-reader / code-heap-reader.factor
index e01c7d62cac9e8c1bff8070e045954aa903cd492..1a9dc9b04635bfc379d637fb7a3f50c808ef3373 100644 (file)
@@ -1,10 +1,8 @@
-USING: accessors alien.c-types classes.struct combinators io kernel
-math math.bitwise tools.image-analyzer.gc-info tools.image-analyzer.vm ;
+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
 
-TUPLE: code-block-t free? owner parameters relocation gc-maps payload ;
-
 : free? ( code-block -- ? )
     header>> 1 mask? ;
 
@@ -14,10 +12,6 @@ TUPLE: code-block-t free? owner parameters relocation gc-maps payload ;
 : (read-code-block) ( -- code-block payload )
     code-block [ read-struct ] [ heap-size ] bi over size swap - read ;
 
-: >code-block< ( code-block -- free? owner parameters relocation )
-    { [ free? ] [ owner>> ] [ parameters>> ] [ relocation>> ] } cleave ;
-
 : read-code-block ( -- code-block )
-    (read-code-block)
-    [ >code-block< ] [ [ byte-array>gc-maps ] keep ] bi*
-    code-block-t boa ;
+    tell-input (read-code-block) 2dup [ free? ] [ byte-array>gc-maps ] bi*
+    code-heap-node boa ;