Skip to content

Commit 95d484d

Browse files
committed
fix: Memory.get_segment_byte_offset on Passive data sections
1 parent f39c456 commit 95d484d

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

src/memory.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,11 @@ caml_binaryen_get_memory_segment_byte_offset(value _module, value _name) {
121121
CAMLparam2(_module, _name);
122122
BinaryenModuleRef module = BinaryenModuleRef_val(_module);
123123
char* name = Safe_String_val(_name);
124-
CAMLreturn(Val_int(BinaryenGetMemorySegmentByteOffset(module, name)));
124+
if (BinaryenGetMemorySegmentPassive(module, name)) {
125+
CAMLreturn(Val_int(-1));
126+
} else {
127+
CAMLreturn(Val_int(BinaryenGetMemorySegmentByteOffset(module, name)));
128+
}
125129
}
126130

127131
CAMLprim value

test/test.ml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,9 @@ let _ = Memory.set_memory max_memory_wasm_mod 1 2 "memory" [] false false "0"
248248
let _ = assert (Memory.has_max max_memory_wasm_mod "0" = true)
249249
let _ = assert (Memory.get_max max_memory_wasm_mod "0" = 2)
250250

251+
(* Memory.get_segment_byte_offset Passive *)
252+
let _ = assert (Memory.get_segment_byte_offset wasm_mod "world" = -1)
253+
251254
let _ =
252255
assert (
253256
Bytes.equal

0 commit comments

Comments
 (0)