@@ -201,6 +201,13 @@ fn global_memory_configs(
201201) -> Vec < PageConfig > {
202202 let image = build_initial_image_paged ( elf, private_inputs) ;
203203 let init_page_data = build_init_page_data ( & image) ;
204+ global_memory_configs_from_init_page_data ( boundaries, & init_page_data)
205+ }
206+
207+ fn global_memory_configs_from_init_page_data (
208+ boundaries : & [ Vec < CellBoundary > ] ,
209+ init_page_data : & HashMap < u64 , Vec < u8 > > ,
210+ ) -> Vec < PageConfig > {
204211 let touched_pages: std:: collections:: BTreeSet < u64 > = boundaries
205212 . iter ( )
206213 . flatten ( )
@@ -504,9 +511,8 @@ fn verify_epoch(
504511/// epoch's `init` and every genesis value matches the ELF.
505512fn prove_global (
506513 boundaries : & [ Vec < CellBoundary > ] ,
507- elf : & Elf ,
508514 elf_bytes : & [ u8 ] ,
509- private_inputs : & [ u8 ] ,
515+ init_page_data : & HashMap < u64 , Vec < u8 > > ,
510516 opts : & ProofOptions ,
511517) -> Result < MultiProof < F , E , ( ) > , Error > {
512518 // Each cell's final state (boundaries are in epoch order, so the last fini wins).
@@ -523,7 +529,7 @@ fn prove_global(
523529 }
524530 }
525531
526- let gm_configs = global_memory_configs ( boundaries, elf , private_inputs ) ;
532+ let gm_configs = global_memory_configs_from_init_page_data ( boundaries, init_page_data ) ;
527533
528534 let mut l2g_traces: Vec < TraceTable < F , E > > = boundaries
529535 . iter ( )
@@ -624,6 +630,7 @@ pub fn prove_continuation(
624630 // The cross-epoch memory image, carried forward: epoch i+1's init is epoch i's
625631 // fini, updated in place with each epoch's touched-cell final values.
626632 let mut image = build_initial_image_paged ( & elf, private_inputs) ;
633+ let init_page_data = build_init_page_data ( & image) ;
627634 let mut provenance =
628635 local_to_global:: genesis_provenance ( image. iter ( ) . map ( |( a, v) | ( a, v as u64 ) ) ) ;
629636
@@ -704,7 +711,7 @@ pub fn prove_continuation(
704711 // One global LogUp over all the (kept) local-to-global tables.
705712 let all_boundaries: Vec < Vec < CellBoundary > > =
706713 epochs. iter ( ) . map ( |e| e. boundary . clone ( ) ) . collect ( ) ;
707- let global = prove_global ( & all_boundaries, & elf , elf_bytes, private_inputs , opts) ?;
714+ let global = prove_global ( & all_boundaries, elf_bytes, & init_page_data , opts) ?;
708715
709716 Ok ( ContinuationProof {
710717 epochs,
0 commit comments