26
26
external caml_array_dup : 'a array -> (_ [@ bs.as 0 ]) -> 'a array =
27
27
" slice" [@@ bs.send]
28
28
29
+ let (.! () ) = Caml_array_extern. unsafe_get
30
+ let (.! () < - ) = Caml_array_extern. unsafe_set
31
+
29
32
let caml_array_sub (x : 'a array ) (offset : int ) (len : int ) =
30
33
let result = Caml_array_extern. new_uninitialized len in
31
34
let j = {contents = 0 } and i = {contents = offset} in
32
35
while j.contents < len do
33
- Caml_array_extern. unsafe_set result j.contents ( Caml_array_extern. unsafe_get x i.contents);
36
+ result. ! ( j.contents) < - x. ! ( i.contents);
34
37
j.contents < - j.contents + 1 ;
35
38
i.contents < - i.contents + 1 ;
36
39
done ;
@@ -50,7 +53,7 @@ let rec fill arr i l =
50
53
let k = {contents = i} in
51
54
let j = {contents = 0 } in
52
55
while j.contents < l do
53
- Caml_array_extern. unsafe_set arr k.contents ( Caml_array_extern. unsafe_get x j.contents);
56
+ arr. ! ( k.contents) < - x . ! ( j.contents);
54
57
k.contents < - k.contents + 1 ;
55
58
j.contents < - j.contents + 1 ;
56
59
done ;
@@ -65,35 +68,35 @@ let caml_array_concat (l : 'a array list) : 'a array =
65
68
let caml_array_set xs index newval =
66
69
if index < 0 || index > = Caml_array_extern. length xs
67
70
then raise (Invalid_argument " index out of bounds" )
68
- else Caml_array_extern. unsafe_set xs index newval
71
+ else xs. ! ( index) < - newval
69
72
70
73
let caml_array_get xs index =
71
74
if index < 0 || index > = Caml_array_extern. length xs then
72
75
raise (Invalid_argument " index out of bounds" )
73
- else Caml_array_extern. unsafe_get xs index
76
+ else xs. ! ( index)
74
77
75
78
76
79
let caml_make_vect len init =
77
80
let b = Caml_array_extern. new_uninitialized len in
78
81
for i = 0 to len - 1 do
79
- Caml_array_extern. unsafe_set b i init
82
+ b. ! (i) < - init
80
83
done ;
81
84
b
82
85
83
86
let caml_make_float_vect len =
84
87
let b = Caml_array_extern. new_uninitialized len in
85
88
for i = 0 to len - 1 do
86
- Caml_array_extern. unsafe_set b i 0.
89
+ b. ! (i) < - 0.
87
90
done ;
88
91
b
89
92
90
93
let caml_array_blit a1 i1 a2 i2 len =
91
94
if i2 < = i1 then
92
95
for j = 0 to len - 1 do
93
- Caml_array_extern. unsafe_set a2 (j+ i2) ( Caml_array_extern. unsafe_get a1 (j+ i1) )
96
+ a2. ! (j+ i2) < - a1. ! (j+ i1)
94
97
done
95
98
else
96
99
for j = len - 1 downto 0 do
97
- Caml_array_extern. unsafe_set a2 (j+ i2) ( Caml_array_extern. unsafe_get a1 (j+ i1) )
100
+ a2 . ! (j+ i2) < - a1. ! (j+ i1)
98
101
done
99
102
0 commit comments