88
99
1010CAMLprim value
11- caml_binaryen_set_memory (value _module , value _initial , value _maximum , value _exportName , value _segments , value _segmentPassive , value _segmentOffsets , value _segmentSizes , value _shared , value _memory64 , value _memoryName ) {
12- CAMLparam5 (_module , _initial , _maximum , _exportName , _segments );
13- CAMLxparam5 (_segmentPassive , _segmentOffsets , _segmentSizes , _shared , _memory64 );
14- CAMLxparam1 ( _memoryName );
11+ caml_binaryen_set_memory (value _module , value _initial , value _maximum , value _exportName , value _segment_names , value _segment_data , value _segmentPassive , value _segmentOffsets , value _segmentSizes , value _shared , value _memory64 , value _memoryName ) {
12+ CAMLparam5 (_module , _initial , _maximum , _exportName , _segment_names );
13+ CAMLxparam5 (_segment_data , _segmentPassive , _segmentOffsets , _segmentSizes , _shared );
14+ CAMLxparam2 ( _memory64 , _memoryName );
1515 BinaryenModuleRef module = BinaryenModuleRef_val (_module );
1616 BinaryenIndex initial = Int_val (_initial );
1717 BinaryenIndex maximum = Int_val (_maximum );
1818 char * exportName = Safe_String_val (_exportName );
19- _segments = array_of_list (_segments );
20- int segmentsLen = array_length (_segments );
21- const char * segments [segmentsLen ];
22- for (int i = 0 ; i < segmentsLen ; i ++ ) {
23- segments [i ] = Safe_String_val (Field (_segments , i ));
19+ _segment_names = array_of_list (_segment_names );
20+ int segmentNamesLen = array_length (_segment_names );
21+ const char * segment_names [segmentNamesLen ];
22+ for (int i = 0 ; i < segmentNamesLen ; i ++ ) {
23+ segment_names [i ] = Safe_String_val (Field (_segment_names , i ));
24+ }
25+ _segment_data = array_of_list (_segment_data );
26+ int segmentDataLen = array_length (_segment_data );
27+ const char * segment_data [segmentDataLen ];
28+ for (int i = 0 ; i < segmentDataLen ; i ++ ) {
29+ segment_data [i ] = Safe_String_val (Field (_segment_data , i ));
2430 }
2531 _segmentPassive = array_of_list (_segmentPassive );
2632 int segmentPassiveLen = array_length (_segmentPassive );
@@ -43,12 +49,12 @@ caml_binaryen_set_memory(value _module, value _initial, value _maximum, value _e
4349 bool shared = Bool_val (_shared );
4450 bool memory64 = Bool_val (_memory64 );
4551 char * memoryName = Safe_String_val (_memoryName );
46- BinaryenSetMemory (module , initial , maximum , exportName , segments , segmentPassive , segmentOffsets , segmentSizes , segmentsLen , shared , memory64 , memoryName );
52+ BinaryenSetMemory (module , initial , maximum , exportName , segment_names , segment_data , segmentPassive , segmentOffsets , segmentSizes , segmentNamesLen , shared , memory64 , memoryName );
4753 CAMLreturn (Val_unit );
4854}
4955CAMLprim value
5056caml_binaryen_set_memory__bytecode (value * argv ) {
51- return caml_binaryen_set_memory (argv [0 ], argv [1 ], argv [2 ], argv [3 ], argv [4 ], argv [5 ], argv [6 ], argv [7 ], argv [8 ], argv [9 ], argv [10 ]);
57+ return caml_binaryen_set_memory (argv [0 ], argv [1 ], argv [2 ], argv [3 ], argv [4 ], argv [5 ], argv [6 ], argv [7 ], argv [8 ], argv [9 ], argv [10 ], argv [ 11 ] );
5258}
5359
5460CAMLprim value
@@ -111,28 +117,28 @@ caml_binaryen_get_num_memory_segments(value _module) {
111117}
112118
113119CAMLprim value
114- caml_binaryen_get_memory_segment_byte_offset (value _module , value _id ) {
115- CAMLparam2 (_module , _id );
120+ caml_binaryen_get_memory_segment_byte_offset (value _module , value _name ) {
121+ CAMLparam2 (_module , _name );
116122 BinaryenModuleRef module = BinaryenModuleRef_val (_module );
117- BinaryenIndex id = Int_val ( _id );
118- CAMLreturn (Val_int (BinaryenGetMemorySegmentByteOffset (module , id )));
123+ char * name = Safe_String_val ( _name );
124+ CAMLreturn (Val_int (BinaryenGetMemorySegmentByteOffset (module , name )));
119125}
120126
121127CAMLprim value
122- caml_binaryen_get_memory_segment_passive (value _module , value _id ) {
123- CAMLparam2 (_module , _id );
128+ caml_binaryen_get_memory_segment_passive (value _module , value _name ) {
129+ CAMLparam2 (_module , _name );
124130 BinaryenModuleRef module = BinaryenModuleRef_val (_module );
125- BinaryenIndex id = Int_val ( _id );
126- CAMLreturn (Val_bool (BinaryenGetMemorySegmentPassive (module , id )));
131+ char * name = Safe_String_val ( _name );
132+ CAMLreturn (Val_bool (BinaryenGetMemorySegmentPassive (module , name )));
127133}
128134
129135CAMLprim value
130- caml_binaryen_get_memory_segment_data (value _module , value _id ) {
131- CAMLparam2 (_module , _id );
136+ caml_binaryen_get_memory_segment_data (value _module , value _name ) {
137+ CAMLparam2 (_module , _name );
132138 BinaryenModuleRef module = BinaryenModuleRef_val (_module );
133- BinaryenIndex id = Int_val ( _id );
134- size_t size = BinaryenGetMemorySegmentByteLength (module , id );
139+ char * name = Safe_String_val ( _name );
140+ size_t size = BinaryenGetMemorySegmentByteLength (module , name );
135141 CAMLprim value bytes = caml_alloc_string (size );
136- BinaryenCopyMemorySegmentData (module , id , (char * )Bytes_val (bytes ));
142+ BinaryenCopyMemorySegmentData (module , name , (char * )Bytes_val (bytes ));
137143 CAMLreturn (bytes );
138144}
0 commit comments