Skip to content

Commit 51801e8

Browse files
committed
feat: Use option instead
1 parent aaf5c3c commit 51801e8

File tree

5 files changed

+8
-7
lines changed

5 files changed

+8
-7
lines changed

src/memory.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,10 @@ caml_binaryen_get_memory_segment_byte_offset(value _module, value _name) {
122122
BinaryenModuleRef module = BinaryenModuleRef_val(_module);
123123
char* name = Safe_String_val(_name);
124124
if (BinaryenGetMemorySegmentPassive(module, name)) {
125-
CAMLreturn(Val_int(-1));
125+
CAMLreturn(Val_none);
126126
} else {
127-
CAMLreturn(Val_int(BinaryenGetMemorySegmentByteOffset(module, name)));
127+
int offset = BinaryenGetMemorySegmentByteOffset(module, name);
128+
CAMLreturn(caml_alloc_some(Val_int(offset)));
128129
}
129130
}
130131

src/memory.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,10 @@ function caml_binaryen_get_num_memory_segments(wasm_mod) {
112112
}
113113

114114
//Provides: caml_binaryen_get_memory_segment_byte_offset
115-
//Requires: caml_jsstring_of_string
115+
//Requires: caml_jsstring_of_string, to_option
116116
function caml_binaryen_get_memory_segment_byte_offset(wasm_mod, name) {
117117
var info = wasm_mod.getMemorySegmentInfo(caml_jsstring_of_string(name));
118-
return info.offset;
118+
return to_option(info.offset);
119119
}
120120

121121
//Provides: caml_binaryen_get_memory_segment_passive

src/memory.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ let unlimited = -1
7171
external get_num_segments : Module.t -> int
7272
= "caml_binaryen_get_num_memory_segments"
7373

74-
external get_segment_byte_offset : Module.t -> string -> int
74+
external get_segment_byte_offset : Module.t -> string -> int option
7575
= "caml_binaryen_get_memory_segment_byte_offset"
7676

7777
external get_segment_passive : Module.t -> string -> bool

src/memory.mli

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ val is_shared : Module.t -> string -> bool
2020
val is_64 : Module.t -> string -> bool
2121
val unlimited : int
2222
val get_num_segments : Module.t -> int
23-
val get_segment_byte_offset : Module.t -> string -> int
23+
val get_segment_byte_offset : Module.t -> string -> int option
2424
val get_segment_passive : Module.t -> string -> bool
2525
val get_segment_data : Module.t -> string -> bytes

test/test.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ let _ = assert (Memory.has_max max_memory_wasm_mod "0" = true)
249249
let _ = assert (Memory.get_max max_memory_wasm_mod "0" = 2)
250250

251251
(* Memory.get_segment_byte_offset Passive *)
252-
let _ = assert (Memory.get_segment_byte_offset wasm_mod "world" = -1)
252+
let _ = assert (Memory.get_segment_byte_offset wasm_mod "world" = None)
253253

254254
let _ =
255255
assert (

0 commit comments

Comments
 (0)