]> gitweb.factorcode.org Git - factor.git/commitdiff
Support image format version 4 with defined fields
authornomennescio <nomennescio@factorcode.org>
Tue, 22 Aug 2023 23:07:47 +0000 (00:07 +0100)
committernomennescio <nomennescio@factorcode.org>
Tue, 22 Aug 2023 23:08:46 +0000 (01:08 +0200)
See issue #2580

extra/tools/image-analyzer/image-analyzer.factor
extra/tools/image-analyzer/vm/vm.factor

index fe8f101d83a2efd01709f56c050a8a49f9296746..1ee29db9c52bf14d0d42222e9496d23d29b7687f 100644 (file)
@@ -10,6 +10,9 @@ TUPLE: image header heap ;
 : code-heap>code-blocks ( code-heap -- code-blocks )
     binary [ [ read-code-block ] consume-stream>sequence ] with-byte-reader ;
 
+: data-heap-size ( header-struct -- data-heap-size )
+    [ escaped-data-size>> ] [ data-size>> ] bi [ nip ] unless-zero ;
+
 : data-heap>objects ( data-relocation-base data-heap -- seq )
     binary [ '[ _ read-object ] consume-stream>sequence ] with-byte-reader ;
 
@@ -23,7 +26,7 @@ TUPLE: image header heap ;
 : load-image ( image-file -- image )
     binary [
         image-header read-struct dup [
-            [ data-relocation-base>> ] [ data-size>> read ] bi
+            [ data-relocation-base>> ] [ data-heap-size read ] bi
             data-heap>objects
         ]
         [ code-size>> read code-heap>code-blocks ] bi
index b871130649aad02f477378a05047fe43f99489e4..4753b471c4370fa1e55f6ba7d3b775ba74526ade 100644 (file)
@@ -9,7 +9,7 @@ STRUCT: image-header
     { data-size cell_t }
     { code-relocation-base cell_t }
     { code-size cell_t }
-    { reserved-1 cell_t }
+    { escaped-data-size cell_t }
     { reserved-2 cell_t }
     { reserved-3 cell_t }
     { reserved-4 cell_t }