Skip to content

Commit c0c2976

Browse files
committed
Drop MemoryRegistry
1 parent 8c831e1 commit c0c2976

File tree

6 files changed

+19
-122
lines changed

6 files changed

+19
-122
lines changed

wasm/src/org.graalvm.wasm.test/src/org/graalvm/wasm/test/WasmFileSuite.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@
7676
import org.graalvm.polyglot.Value;
7777
import org.graalvm.polyglot.io.IOAccess;
7878
import org.graalvm.wasm.GlobalRegistry;
79-
import org.graalvm.wasm.MemoryRegistry;
8079
import org.graalvm.wasm.RuntimeState;
8180
import org.graalvm.wasm.WasmContext;
8281
import org.graalvm.wasm.WasmFunctionInstance;
@@ -216,7 +215,6 @@ private void runInContext(WasmCase testCase, Context context, List<Source> sourc
216215
}
217216

218217
final WasmContext wasmContext = WasmContext.get(null);
219-
final List<WasmInstance> instanceList = moduleInstances.stream().map(i -> toWasmInstance(i)).toList();
220218

221219
final Value testFunction;
222220
final String entryPoint = testCase.options().getProperty("entry-point");
@@ -261,6 +259,7 @@ private void runInContext(WasmCase testCase, Context context, List<Source> sourc
261259
} finally {
262260
// Context may have already been closed, e.g. by __wasi_proc_exit.
263261
if (!wasmContext.environment().getContext().isClosed()) {
262+
Collection<WasmInstance> instanceList = wasmContext.contextStore().moduleInstances().values();
264263
// Save context state, and check that it's consistent with the previous one.
265264
if (iterationNeedsStateCheck(i)) {
266265
final ContextState contextState = saveContext(wasmContext, instanceList);
@@ -275,8 +274,8 @@ private void runInContext(WasmCase testCase, Context context, List<Source> sourc
275274
final boolean reinitMemory = requiresZeroMemory || iterationNeedsStateCheck(i + 1);
276275
if (reinitMemory) {
277276
for (WasmInstance instance : instanceList) {
278-
for (int j = 0; j < instance.store().memories().count(); ++j) {
279-
WasmMemoryLibrary.getUncached().reset(instance.store().memories().memory(j));
277+
for (int j = 0; j < instance.module().memoryCount(); ++j) {
278+
WasmMemoryLibrary.getUncached().reset(instance.memory(j));
280279
}
281280
for (int j = 0; j < instance.module().tableCount(); ++j) {
282281
instance.table(j).reset();
@@ -637,25 +636,28 @@ protected String suiteName() {
637636
}
638637

639638
private static InstanceState saveInstanceState(WasmInstance instance) {
640-
final MemoryRegistry memories = instance.store().memories().duplicate();
639+
final WasmMemory[] memories = new WasmMemory[instance.module().memoryCount()];
640+
for (int i = 0; i < memories.length; i++) {
641+
memories[i] = WasmMemoryLibrary.getUncached().duplicate(instance.memory(i));
642+
}
641643
final GlobalRegistry globals = instance.globals().duplicate();
642644
return new InstanceState(memories, globals);
643645
}
644646

645-
private static ContextState saveContext(WasmContext context, List<WasmInstance> instances) {
647+
private static ContextState saveContext(WasmContext context, Collection<WasmInstance> instances) {
646648
return new ContextState(
647649
instances.stream().map(instance -> saveInstanceState(instance)).toList(),
648650
context.fdManager().size());
649651
}
650652

651653
private static void assertInstanceEqual(InstanceState expectedState, InstanceState actualState) {
652654
// Compare memories
653-
final MemoryRegistry expectedMemories = expectedState.memories();
654-
final MemoryRegistry actualMemories = actualState.memories();
655-
Assert.assertEquals("Mismatch in memory counts.", expectedMemories.count(), actualMemories.count());
656-
for (int i = 0; i < expectedMemories.count(); i++) {
657-
final WasmMemory expectedMemory = expectedMemories.memory(i);
658-
final WasmMemory actualMemory = actualMemories.memory(i);
655+
final WasmMemory[] expectedMemories = expectedState.memories();
656+
final WasmMemory[] actualMemories = actualState.memories();
657+
Assert.assertEquals("Mismatch in memory counts.", expectedMemories.length, actualMemories.length);
658+
for (int i = 0; i < expectedMemories.length; i++) {
659+
final WasmMemory expectedMemory = expectedMemories[i];
660+
final WasmMemory actualMemory = actualMemories[i];
659661
if (expectedMemory == null) {
660662
Assert.assertNull("Memory should be null", actualMemory);
661663
} else {
@@ -690,7 +692,7 @@ private static void assertContextEqual(ContextState expectedState, ContextState
690692
Assert.assertEquals("Mismatch in file descriptor counts.", expectedState.openedFdCount, actualState.openedFdCount);
691693
}
692694

693-
private record InstanceState(MemoryRegistry memories, GlobalRegistry globals) {
695+
private record InstanceState(WasmMemory[] memories, GlobalRegistry globals) {
694696
}
695697

696698
private record ContextState(List<InstanceState> instanceState, int openedFdCount) {

wasm/src/org.graalvm.wasm/src/org/graalvm/wasm/Linker.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -481,11 +481,8 @@ void resolveMemoryImport(WasmStore store, WasmInstance instance, ImportDescripto
481481
final String importedModuleName = importDescriptor.moduleName();
482482
final String importedMemoryName = importDescriptor.memberName();
483483
final Runnable resolveAction = () -> {
484-
final WasmMemory importedMemory;
485-
final WasmMemory externalMemory = lookupImportObject(instance, importDescriptor, imports, WasmMemory.class);
486-
if (externalMemory != null) {
487-
final int contextMemoryIndex = store.memories().register(externalMemory);
488-
importedMemory = store.memories().memory(contextMemoryIndex);
484+
WasmMemory importedMemory = lookupImportObject(instance, importDescriptor, imports, WasmMemory.class);
485+
if (importedMemory != null) {
489486
assert memoryIndex == importDescriptor.targetIndex();
490487
} else {
491488
// WASIp1 memory import should have been resolved via ImportValueSupplier above.

wasm/src/org.graalvm.wasm/src/org/graalvm/wasm/MemoryRegistry.java

Lines changed: 0 additions & 92 deletions
This file was deleted.

wasm/src/org.graalvm.wasm/src/org/graalvm/wasm/SymbolTable.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1534,9 +1534,7 @@ public void allocateMemory(int index, long declaredMinSize, long declaredMaxSize
15341534
} else {
15351535
wasmMemory = WasmMemoryFactory.createMemory(declaredMinSize, declaredMaxSize, indexType64, shared, useUnsafeMemory, directByteBufferMemoryAccess, context);
15361536
}
1537-
final int memoryAddress = store.memories().register(wasmMemory);
1538-
final WasmMemory allocatedMemory = store.memories().memory(memoryAddress);
1539-
instance.setMemory(index, allocatedMemory);
1537+
instance.setMemory(index, wasmMemory);
15401538
});
15411539
}
15421540

wasm/src/org.graalvm.wasm/src/org/graalvm/wasm/WasmInstantiator.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,9 +186,7 @@ static List<LinkAction> recreateLinkActions(WasmModule module) {
186186
limits.checkMemoryInstanceSize(memoryMinSize, memoryIndexType64);
187187
final WasmMemory wasmMemory = WasmMemoryFactory.createMemory(memoryMinSize, memoryMaxSize, memoryIndexType64, memoryShared,
188188
context.getContextOptions().useUnsafeMemory(), context.getContextOptions().directByteBufferMemoryAccess(), context);
189-
final int address = store.memories().register(wasmMemory);
190-
final WasmMemory allocatedMemory = store.memories().memory(address);
191-
instance.setMemory(memoryIndex, allocatedMemory);
189+
instance.setMemory(memoryIndex, wasmMemory);
192190
});
193191
}
194192
}

wasm/src/org.graalvm.wasm/src/org/graalvm/wasm/WasmStore.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@
6868
public final class WasmStore implements TruffleObject {
6969
private final WasmContext context;
7070
private final WasmLanguage language;
71-
private final MemoryRegistry memoryRegistry;
7271
private final Linker linker;
7372
private final Map<String, WasmInstance> moduleInstances;
7473
private final FdManager filesManager;
@@ -78,7 +77,6 @@ public WasmStore(WasmContext context, WasmLanguage language) {
7877
this.context = context;
7978
this.language = language;
8079
this.contextOptions = context.getContextOptions();
81-
this.memoryRegistry = new MemoryRegistry();
8280
this.moduleInstances = new LinkedHashMap<>();
8381
this.linker = new Linker();
8482
this.filesManager = context.fdManager();
@@ -96,10 +94,6 @@ public WasmLanguage language() {
9694
return language;
9795
}
9896

99-
public MemoryRegistry memories() {
100-
return memoryRegistry;
101-
}
102-
10397
public Linker linker() {
10498
return linker;
10599
}

0 commit comments

Comments
 (0)