From 99cbc58db8b8bf00b665f8ac864da5dbec52f3dc Mon Sep 17 00:00:00 2001 From: Alexey Date: Sat, 29 Feb 2020 17:25:49 +0300 Subject: [PATCH] array: update `array.repeat` --- vlib/builtin/array.v | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/vlib/builtin/array.v b/vlib/builtin/array.v index a5e583e7e3..67c325109c 100644 --- a/vlib/builtin/array.v +++ b/vlib/builtin/array.v @@ -82,23 +82,22 @@ fn (a mut array) ensure_cap(required int) { a.cap = cap } -// array.repeat returns new array with the given array elements -// repeated `nr_repeat` times -pub fn (a array) repeat(nr_repeats int) array { - if nr_repeats < 0 { - panic('array.repeat: count is negative (count == nr_repeats)') +// repeat returns new array with the given array elements repeated given times. +pub fn (a array) repeat(count int) array { + if count < 0 { + panic('array.repeat: count is negative: $count') } - mut size := nr_repeats * a.len * a.element_size + mut size := count * a.len * a.element_size if size == 0 { size = a.element_size } arr := array{ - len: nr_repeats * a.len - cap: nr_repeats * a.len + len: count * a.len + cap: count * a.len element_size: a.element_size data: calloc(size) } - for i in 0..nr_repeats { + for i in 0..count { C.memcpy(arr.data + i * a.len * a.element_size, a.data, a.len * a.element_size) } return arr @@ -484,7 +483,7 @@ pub fn (a []int) reduce(iter fn(accum, curr int)int, accum_start int) int { for i in a { _accum = iter(_accum, i) } - + return _accum }