summaryrefslogtreecommitdiffstats
path: root/stdlib/array.ml
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>1995-06-15 08:10:01 +0000
committerXavier Leroy <xavier.leroy@inria.fr>1995-06-15 08:10:01 +0000
commit9ef4bd08d158b513a349709f6e6b08aa37d2f190 (patch)
treef57443d0d2134f9feb35e64918c20b40e4cfc34e /stdlib/array.ml
parent00f1ca9d88753a8f1985862f5fd3ce3866a0c514 (diff)
Passage de {Array,String}.{get,set} en primitives C.
Renommage %array_get -> %array_unsafe_get, etc. git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@31 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'stdlib/array.ml')
-rw-r--r--stdlib/array.ml10
1 files changed, 7 insertions, 3 deletions
diff --git a/stdlib/array.ml b/stdlib/array.ml
index 3089e2f83..d539d76c6 100644
--- a/stdlib/array.ml
+++ b/stdlib/array.ml
@@ -1,10 +1,13 @@
(* Array operations *)
external length : 'a array -> int = "%array_length"
-external unsafe_get: 'a array -> int -> 'a = "%array_get"
-external unsafe_set: 'a array -> int -> 'a -> unit = "%array_set"
+external unsafe_get: 'a array -> int -> 'a = "%array_unsafe_get"
+external unsafe_set: 'a array -> int -> 'a -> unit = "%array_unsafe_set"
external new: int -> 'a -> 'a array = "make_vect"
+external get: 'a array -> int -> 'a = "array_get"
+external set: 'a array -> int -> 'a -> unit = "array_set"
+(*****
let get a n =
if n < 0 or n >= length a
then invalid_arg "Array.get"
@@ -14,6 +17,7 @@ let set a n v =
if n < 0 or n >= length a
then invalid_arg "Array.set"
else unsafe_set a n v
+*****)
let new_matrix sx sy init =
let res = new sx [||] in
@@ -37,7 +41,7 @@ let append a1 a2 =
if l1 = 0 & l2 = 0 then [||] else begin
let r = new (l1 + l2) (unsafe_get (if l1 > 0 then a1 else a2) 0) in
for i = 0 to l1 - 1 do unsafe_set r i (unsafe_get a1 i) done;
- for i = 0 to l2 - 1 do unsafe_set r (i + l1) (unsafe_get a1 i) done;
+ for i = 0 to l2 - 1 do unsafe_set r (i + l1) (unsafe_get a2 i) done;
r
end