Skip to content

Commit

Permalink
Merge pull request factor#2591 from nomennescio/feature-vm-prepare-im…
Browse files Browse the repository at this point in the history
…age-reserved-fields

VM prepare image reserved fields usage
  • Loading branch information
nomennescio authored Aug 22, 2023
2 parents 92f9263 + c6a43c6 commit e851bf5
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 6 deletions.
2 changes: 2 additions & 0 deletions vm/image.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,8 @@ void factor_vm::load_image(vm_parameters* p) {
if (h.version != image_version)
fatal_error("Bad image: version number check failed", h.version);

if (!h.version4_escape) h.data_size=h.escaped_data_size, h.escaped_data_size=0;

load_data_heap(file, &h, p);
load_code_heap(file, &h, p);

Expand Down
12 changes: 6 additions & 6 deletions vm/image.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,17 @@ struct image_header {
cell version;
// base address of data heap when image was saved
cell data_relocation_base;
// size of heap
cell data_size;
// <>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;

cell reserved_1;
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];
Expand Down

0 comments on commit e851bf5

Please sign in to comment.