From c6a43c65c2d6ea2dc0cc8e77a763d54625352bb2 Mon Sep 17 00:00:00 2001 From: nomennescio Date: Tue, 22 Aug 2023 22:09:00 +0200 Subject: [PATCH] Version 4 compatible image format with reserved fields defined for forwards compatibility. Also supports current version 4 image format with undefined fields. Note that since issue #2580 was solved, new images saved will have zero-initialized fields, but there's no such guarantee for older version 4 images. --- vm/image.hpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/vm/image.hpp b/vm/image.hpp index 8006e328fb..67b1b3c8bb 100644 --- a/vm/image.hpp +++ b/vm/image.hpp @@ -15,17 +15,17 @@ struct image_header { cell version; // base address of data heap when image was saved cell data_relocation_base; - // size of data heap + // <>0 : size of data heap, ==0 : version4_escape union { cell data_size; cell version4_escape; }; // base address of code heap when image was saved cell code_relocation_base; // size of code heap cell code_size; - union { cell reserved_1; cell escaped_data_size; }; - cell reserved_2; - cell reserved_3; - cell reserved_4; + union { cell reserved_1; cell escaped_data_size; }; // undefined if data_size <>0, stores size of data heap otherwise + cell reserved_2; // undefined if data_size <>0, 0 otherwise + cell reserved_3; // undefined if data_size <>0, 0 otherwise + cell reserved_4; // undefined if data_size <>0, 0 otherwise // Initial user environment cell special_objects[special_object_count]; -- 2.34.1