Welcome! Log In Create A New Profile

Advanced

[njs] Refactored out njs_function_apply().

Dmitry Volyntsev
January 10, 2019 11:02AM
details: https://hg.nginx.org/njs/rev/7029ec713458
branches:
changeset: 722:7029ec713458
user: hongzhidao <hongzhidao@gmail.com>
date: Tue Jan 08 06:14:36 2019 +0800
description:
Refactored out njs_function_apply().

As a variant of njs_function_activate().

diffstat:

njs/njs_function.c | 42 +++---------------------------------------
njs/njs_function.h | 13 ++++++++++---
2 files changed, 13 insertions(+), 42 deletions(-)

diffs (96 lines):

diff -r d357ff6b4fe3 -r 7029ec713458 njs/njs_function.c
--- a/njs/njs_function.c Tue Jan 08 06:14:36 2019 +0800
+++ b/njs/njs_function.c Tue Jan 08 06:14:36 2019 +0800
@@ -393,42 +393,6 @@ njs_function_frame_alloc(njs_vm_t *vm, s


nxt_noinline njs_ret_t
-njs_function_apply(njs_vm_t *vm, njs_function_t *function, njs_value_t *args,
- nxt_uint_t nargs, njs_index_t retval)
-{
- njs_ret_t ret;
- njs_continuation_t *cont;
-
- if (function->native) {
- ret = njs_function_native_frame(vm, function, &args[0], &args[1],
- nargs - 1, NJS_CONTINUATION_SIZE, 0);
- if (ret != NJS_OK) {
- return ret;
- }
-
- cont = njs_vm_continuation(vm);
-
- cont->function = function->u.native;
- cont->args_types = function->args_types;
- cont->retval = retval;
-
- cont->return_address = vm->current;
- vm->current = (u_char *) njs_continuation_nexus;
-
- return NJS_APPLIED;
- }
-
- ret = njs_function_frame(vm, function, &args[0], &args[1], nargs - 1, 0);
-
- if (nxt_fast_path(ret == NXT_OK)) {
- return njs_function_call(vm, retval, 0);
- }
-
- return ret;
-}
-
-
-nxt_noinline njs_ret_t
njs_function_call(njs_vm_t *vm, njs_index_t retval, size_t advance)
{
size_t size;
@@ -978,9 +942,9 @@ njs_function_prototype_apply(njs_vm_t *v


njs_ret_t
-njs_function_activate(njs_vm_t *vm, njs_function_t *function, njs_value_t *this,
- const njs_value_t *args, nxt_uint_t nargs, njs_index_t retval,
- size_t advance)
+njs_function_activate(njs_vm_t *vm, njs_function_t *function,
+ const njs_value_t *this, const njs_value_t *args, nxt_uint_t nargs,
+ njs_index_t retval, size_t advance)
{
njs_ret_t ret;
njs_continuation_t *cont;
diff -r d357ff6b4fe3 -r 7029ec713458 njs/njs_function.h
--- a/njs/njs_function.h Tue Jan 08 06:14:36 2019 +0800
+++ b/njs/njs_function.h Tue Jan 08 06:14:36 2019 +0800
@@ -162,8 +162,6 @@ njs_value_t *njs_function_property_proto
njs_value_t *value);
njs_ret_t njs_function_constructor(njs_vm_t *vm, njs_value_t *args,
nxt_uint_t nargs, njs_index_t unused);
-njs_ret_t njs_function_apply(njs_vm_t *vm, njs_function_t *function,
- njs_value_t *args, nxt_uint_t nargs, njs_index_t retval);
njs_ret_t njs_function_native_frame(njs_vm_t *vm, njs_function_t *function,
const njs_value_t *this, const njs_value_t *args, nxt_uint_t nargs,
size_t reserve, nxt_bool_t ctor);
@@ -171,7 +169,7 @@ njs_ret_t njs_function_frame(njs_vm_t *v
const njs_value_t *this, const njs_value_t *args, nxt_uint_t nargs,
nxt_bool_t ctor);
njs_ret_t njs_function_activate(njs_vm_t *vm, njs_function_t *function,
- njs_value_t *this, const njs_value_t *args, nxt_uint_t nargs,
+ const njs_value_t *this, const njs_value_t *args, nxt_uint_t nargs,
njs_index_t retval, size_t advance);
njs_ret_t njs_function_call(njs_vm_t *vm, njs_index_t retval, size_t advance);
njs_ret_t njs_function_native_call(njs_vm_t *vm, njs_function_native_t native,
@@ -180,6 +178,15 @@ njs_ret_t njs_function_native_call(njs_v
void njs_function_frame_free(njs_vm_t *vm, njs_native_frame_t *frame);


+nxt_inline njs_ret_t
+njs_function_apply(njs_vm_t *vm, njs_function_t *function,
+ const njs_value_t *args, nxt_uint_t nargs, njs_index_t retval)
+{
+ return njs_function_activate(vm, function, &args[0], &args[1], nargs - 1,
+ retval, 0);
+}
+
+
nxt_inline njs_native_frame_t *
njs_function_previous_frame(njs_native_frame_t *frame)
{
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[njs] Refactored out njs_function_apply().

Dmitry Volyntsev 111 January 10, 2019 11:02AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 65
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready