From 45dbfeb71becf04fc39d0e72d1b5e14d44f1cb3d Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Fri, 17 Oct 2025 18:14:22 -0700 Subject: [PATCH] Allow components to have multiple memories. Viceroy currently uses arbitrary values for the number of instances and tables allowed in components. Use a similarly arbitrary number of memories as well. --- src/linking.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/linking.rs b/src/linking.rs index 81a3f324..ce821995 100644 --- a/src/linking.rs +++ b/src/linking.rs @@ -21,17 +21,17 @@ pub struct Limiter { impl Default for Limiter { fn default() -> Self { - Limiter::new(1, 1) + Limiter::new(1, 1, 1) } } impl Limiter { - fn new(max_instances: usize, max_tables: usize) -> Self { + fn new(max_instances: usize, max_memories: usize, max_tables: usize) -> Self { Limiter { memory_allocated: 0, internal: StoreLimitsBuilder::new() .instances(max_instances) - .memories(1) + .memories(max_memories) .memory_size(128 * 1024 * 1024) .table_elements(98765) .tables(max_tables) @@ -159,7 +159,7 @@ impl ComponentCtx { wasi_random: wasmtime_wasi::random::WasiRandomCtx::default(), session, guest_profiler: guest_profiler.map(Box::new), - limiter: Limiter::new(100, 100), + limiter: Limiter::new(100, 100, 100) }; let mut store = Store::new(ctx.engine(), wasm_ctx); store.set_epoch_deadline(1);