From 49b8aef96491f38c2eb7cd2a28569d2a83a1b26f Mon Sep 17 00:00:00 2001 From: nomennescio Date: Wed, 23 Aug 2023 00:07:47 +0100 Subject: [PATCH] Support image format version 4 with defined fields See issue #2580 --- extra/tools/image-analyzer/image-analyzer.factor | 5 ++++- extra/tools/image-analyzer/vm/vm.factor | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/extra/tools/image-analyzer/image-analyzer.factor b/extra/tools/image-analyzer/image-analyzer.factor index fe8f101d83..1ee29db9c5 100644 --- a/extra/tools/image-analyzer/image-analyzer.factor +++ b/extra/tools/image-analyzer/image-analyzer.factor @@ -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 diff --git a/extra/tools/image-analyzer/vm/vm.factor b/extra/tools/image-analyzer/vm/vm.factor index b871130649..4753b471c4 100644 --- a/extra/tools/image-analyzer/vm/vm.factor +++ b/extra/tools/image-analyzer/vm/vm.factor @@ -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 } -- 2.34.1