From: Igor Sysoev Date: Tue, 4 Apr 2017 08:00:49 +0000 (+0300) Subject: Moving njs_array_prototype_fill() to appropriate place. X-Git-Tag: 0.1.10~2 X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=4765271c814bf49983d5ec6cf60599b6089f6e0f;p=njs.git Moving njs_array_prototype_fill() to appropriate place. --- diff --git a/njs/njs_array.c b/njs/njs_array.c index 84f7263f..3f02e2bb 100644 --- a/njs/njs_array.c +++ b/njs/njs_array.c @@ -1213,6 +1213,69 @@ done: } +static njs_ret_t +njs_array_prototype_fill(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs, + njs_index_t unused) +{ + nxt_int_t i, start, end, length; + njs_array_t *array; + + vm->retval = args[0]; + + if (nargs < 2 || !njs_is_array(&args[0])) { + return NXT_OK; + } + + array = args[0].data.u.array; + length = array->length; + + if (length == 0) { + return NXT_OK; + } + + start = 0; + end = length; + + if (nargs > 2) { + start = args[2].data.u.number; + + if (start > length) { + start = length; + } + + if (start < 0) { + start += length; + + if (start < 0) { + start = 0; + } + } + + if (nargs > 3) { + end = args[3].data.u.number; + + if (end > length) { + end = length; + } + + if (end < 0) { + end += length; + + if (end < 0) { + end = 0; + } + } + } + } + + for (i = start; i < end; i++) { + array->start[i] = args[1]; + } + + return NXT_OK; +} + + static njs_ret_t njs_array_prototype_for_each(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs, njs_index_t unused) @@ -1351,69 +1414,6 @@ njs_array_prototype_every_continuation(njs_vm_t *vm, njs_value_t *args, } -static njs_ret_t -njs_array_prototype_fill(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs, - njs_index_t unused) -{ - nxt_int_t i, start, end, length; - njs_array_t *array; - - vm->retval = args[0]; - - if (nargs < 2 || !njs_is_array(&args[0])) { - return NXT_OK; - } - - array = args[0].data.u.array; - length = array->length; - - if (length == 0) { - return NXT_OK; - } - - start = 0; - end = length; - - if (nargs > 2) { - start = args[2].data.u.number; - - if (start > length) { - start = length; - } - - if (start < 0) { - start += length; - - if (start < 0) { - start = 0; - } - } - - if (nargs > 3) { - end = args[3].data.u.number; - - if (end > length) { - end = length; - } - - if (end < 0) { - end += length; - - if (end < 0) { - end = 0; - } - } - } - } - - for (i = start; i < end; i++) { - array->start[i] = args[1]; - } - - return NXT_OK; -} - - static njs_ret_t njs_array_prototype_filter(njs_vm_t *vm, njs_value_t *args, nxt_uint_t nargs, njs_index_t unused)