From 137cefad00162af19c4f3061b279074c161f4b1a Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Wed, 2 Dec 2015 13:22:42 -0500 Subject: [PATCH] core/array: fix implementation of naive copy_to to avoid overwriting Signed-off-by: Jean Privat --- lib/core/collection/array.nit | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/core/collection/array.nit b/lib/core/collection/array.nit index 0896bab..e8f57c0 100644 --- a/lib/core/collection/array.nit +++ b/lib/core/collection/array.nit @@ -112,10 +112,18 @@ abstract class AbstractArrayRead[E] fun copy_to(start: Int, len: Int, dest: AbstractArray[E], new_start: Int) do # TODO native one - var i = len - while i > 0 do - i -= 1 - dest[new_start+i] = self[start+i] + if start < new_start then + var i = len + while i > 0 do + i -= 1 + dest[new_start+i] = self[start+i] + end + else + var i = 0 + while i < len do + dest[new_start+i] = self[start+i] + i += 1 + end end end -- 1.7.9.5