Skip to content

Commit ac5b468

Browse files
committed
use Store_field to set fields
1 parent 9f85306 commit ac5b468

2 files changed

Lines changed: 9 additions & 6 deletions

File tree

src/type.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,14 +147,16 @@ caml_binaryen_type_create(value tys) {
147147
CAMLprim value
148148
caml_binaryen_type_expand(value _ty) {
149149
CAMLparam1(_ty);
150+
CAMLlocal2(typeArray, field);
150151
BinaryenType ty = BinaryenType_val(_ty);
151152
int arity = BinaryenTypeArity(ty);
152153
BinaryenType* buf = malloc(sizeof(BinaryenType) * arity);
153154
BinaryenTypeExpand(ty, buf);
154155

155-
value typeArray = caml_alloc(arity, 0);
156+
typeArray = caml_alloc(arity, 0);
156157
for (int i = 0; i < arity; i++) {
157-
Field(typeArray, i) = alloc_BinaryenType(buf[i]);
158+
field = alloc_BinaryenType(buf[i]);
159+
Store_field(typeArray, i, field);
158160
}
159161

160162
free(buf);

src/type_builder.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ caml_conv_heap_type(BinaryenHeapType heapType) {
152152

153153
CAMLprim value caml_type_builder_build_and_dispose(value _builder) {
154154
CAMLparam1(_builder);
155-
CAMLlocal4(arr, ok, error, tuple);
155+
CAMLlocal5(arr, ok, error, tuple, field);
156156
TypeBuilderRef builder = TypeBuilderRef_val(_builder);
157157
BinaryenIndex size = TypeBuilderGetSize(builder);
158158
BinaryenHeapType heapTypes[size + 1];
@@ -163,17 +163,18 @@ CAMLprim value caml_type_builder_build_and_dispose(value _builder) {
163163
if (success) {
164164
arr = caml_alloc(size, 0);
165165
for (mlsize_t i = 0; i < (mlsize_t)size; i++) {
166-
Field(arr, i) = alloc_BinaryenHeapType(heapTypes[i]);
166+
field = alloc_BinaryenHeapType(heapTypes[i]);
167+
Store_field(arr, i, field);
167168
}
168169
ok = caml_alloc_small(1, 0);
169-
Field(ok, 0) = arr;
170+
Store_field(ok, 0, arr);
170171
CAMLreturn(ok);
171172
} else {
172173
error = caml_alloc_small(1, 1);
173174
tuple = caml_alloc_small(2, 0);
174175
Field(tuple, 0) = Val_int(errorIndex);
175176
Field(tuple, 1) = Val_int(errorReason);
176-
Field(error, 0) = tuple;
177+
Store_field(error, 0, tuple);
177178
CAMLreturn(error);
178179
}
179180
}

0 commit comments

Comments
 (0)