Welcome! Log In Create A New Profile

Advanced

[njs] Shell: moving njs_vm_opt_t initialisation to njs_create_vm().

Dmitry Volyntsev
November 09, 2023 03:00PM
details: https://hg.nginx.org/njs/rev/f6e0a7270492
branches:
changeset: 2231:f6e0a7270492
user: Dmitry Volyntsev <xeioex@nginx.com>
date: Thu Nov 09 11:49:25 2023 -0800
description:
Shell: moving njs_vm_opt_t initialisation to njs_create_vm().

diffstat:

external/njs_shell.c | 109 +++++++++++++++++++++++++-------------------------
1 files changed, 54 insertions(+), 55 deletions(-)

diffs (202 lines):

diff -r 9a886a575f61 -r f6e0a7270492 external/njs_shell.c
--- a/external/njs_shell.c Thu Nov 09 11:11:19 2023 -0800
+++ b/external/njs_shell.c Thu Nov 09 11:49:25 2023 -0800
@@ -101,9 +101,9 @@ static njs_int_t njs_console_init(njs_vm
static void njs_console_output(njs_vm_t *vm, njs_value_t *value,
njs_int_t ret);
static njs_int_t njs_externals_init(njs_vm_t *vm);
-static njs_vm_t *njs_create_vm(njs_opts_t *opts, njs_vm_opt_t *vm_options);
+static njs_vm_t *njs_create_vm(njs_opts_t *opts);
static void njs_process_output(njs_vm_t *vm, njs_value_t *value, njs_int_t ret);
-static njs_int_t njs_process_file(njs_opts_t *opts, njs_vm_opt_t *vm_options);
+static njs_int_t njs_process_file(njs_opts_t *opts);
static njs_int_t njs_process_script(njs_vm_t *vm, void *runtime,
const njs_str_t *script);

@@ -113,8 +113,7 @@ static njs_int_t njs_options_parse(njs_o
static void njs_options_free(njs_opts_t *opts);

#ifdef NJS_HAVE_READLINE
-static njs_int_t njs_interactive_shell(njs_opts_t *opts,
- njs_vm_opt_t *vm_options);
+static njs_int_t njs_interactive_shell(njs_opts_t *opts);
static njs_int_t njs_editline_init(void);
static char *njs_completion_generator(const char *text, int state);
#endif
@@ -303,13 +302,10 @@ static njs_console_t njs_console;
static njs_int_t
njs_main(njs_opts_t *opts)
{
- njs_vm_t *vm;
- njs_int_t ret;
- njs_vm_opt_t vm_options;
+ njs_vm_t *vm;
+ njs_int_t ret;

- njs_mm_denormals(opts.denormals);
-
- njs_vm_opt_init(&vm_options);
+ njs_mm_denormals(opts->denormals);

if (opts->file == NULL) {
if (opts->command.length != 0) {
@@ -328,47 +324,17 @@ njs_main(njs_opts_t *opts)
}
}

- vm_options.file.start = (u_char *) opts->file;
- vm_options.file.length = njs_strlen(opts->file);
-
- vm_options.init = 1;
- vm_options.interactive = opts->interactive;
- vm_options.disassemble = opts->disassemble;
- vm_options.backtrace = 1;
- vm_options.quiet = opts->quiet;
- vm_options.sandbox = opts->sandbox;
- vm_options.unsafe = !opts->safe;
- vm_options.module = opts->module;
-#ifdef NJS_DEBUG_GENERATOR
- vm_options.generator_debug = opts->generator_debug;
-#endif
-#ifdef NJS_DEBUG_OPCODE
- vm_options.opcode_debug = opts->opcode_debug;
-#endif
-
- vm_options.ops = &njs_console_ops;
- vm_options.addons = njs_console_addon_modules;
- vm_options.external = &njs_console;
- vm_options.argv = opts->argv;
- vm_options.argc = opts->argc;
- vm_options.ast = opts->ast;
- vm_options.unhandled_rejection = opts->unhandled_rejection;
-
- if (opts->stack_size != 0) {
- vm_options.max_stack_size = opts->stack_size;
- }
-
#if (!defined NJS_FUZZER_TARGET && defined NJS_HAVE_READLINE)

if (opts->interactive) {
- ret = njs_interactive_shell(opts, &vm_options);
+ ret = njs_interactive_shell(opts);

} else

#endif

if (opts->command.length != 0) {
- vm = njs_create_vm(opts, &vm_options);
+ vm = njs_create_vm(opts);
if (vm == NULL) {
return NJS_ERROR;
}
@@ -377,7 +343,7 @@ njs_main(njs_opts_t *opts)
njs_vm_destroy(vm);

} else {
- ret = njs_process_file(opts, &vm_options);
+ ret = njs_process_file(opts);
}

return ret;
@@ -751,15 +717,48 @@ njs_externals_init(njs_vm_t *vm)


static njs_vm_t *
-njs_create_vm(njs_opts_t *opts, njs_vm_opt_t *vm_options)
+njs_create_vm(njs_opts_t *opts)
{
- u_char *p, *start;
- njs_vm_t *vm;
- njs_int_t ret;
- njs_str_t path;
- njs_uint_t i;
+ u_char *p, *start;
+ njs_vm_t *vm;
+ njs_int_t ret;
+ njs_str_t path;
+ njs_uint_t i;
+ njs_vm_opt_t vm_options;
+
+ njs_vm_opt_init(&vm_options);
+
+ vm_options.file.start = (u_char *) opts->file;
+ vm_options.file.length = njs_strlen(opts->file);

- vm = njs_vm_create(vm_options);
+ vm_options.init = 1;
+ vm_options.interactive = opts->interactive;
+ vm_options.disassemble = opts->disassemble;
+ vm_options.backtrace = 1;
+ vm_options.quiet = opts->quiet;
+ vm_options.sandbox = opts->sandbox;
+ vm_options.unsafe = !opts->safe;
+ vm_options.module = opts->module;
+#ifdef NJS_DEBUG_GENERATOR
+ vm_options.generator_debug = opts->generator_debug;
+#endif
+#ifdef NJS_DEBUG_OPCODE
+ vm_options.opcode_debug = opts->opcode_debug;
+#endif
+
+ vm_options.ops = &njs_console_ops;
+ vm_options.addons = njs_console_addon_modules;
+ vm_options.external = &njs_console;
+ vm_options.argv = opts->argv;
+ vm_options.argc = opts->argc;
+ vm_options.ast = opts->ast;
+ vm_options.unhandled_rejection = opts->unhandled_rejection;
+
+ if (opts->stack_size != 0) {
+ vm_options.max_stack_size = opts->stack_size;
+ }
+
+ vm = njs_vm_create(&vm_options);
if (vm == NULL) {
njs_stderror("failed to create vm\n");
return NULL;
@@ -865,7 +864,7 @@ njs_process_events(void *runtime)


static njs_int_t
-njs_process_file(njs_opts_t *opts, njs_vm_opt_t *vm_options)
+njs_process_file(njs_opts_t *opts)
{
int fd;
char *file;
@@ -954,7 +953,7 @@ njs_process_file(njs_opts_t *opts, njs_v
source.length += n;
}

- vm = njs_create_vm(opts, vm_options);
+ vm = njs_create_vm(opts);
if (vm == NULL) {
ret = NJS_ERROR;
goto done;
@@ -976,7 +975,7 @@ njs_process_file(njs_opts_t *opts, njs_v
}
}

- ret = njs_process_script(vm, vm_options->external, &script);
+ ret = njs_process_script(vm, njs_vm_external_ptr(vm), &script);
if (ret != NJS_OK) {
ret = NJS_ERROR;
goto done;
@@ -1133,7 +1132,7 @@ free_line:


static njs_int_t
-njs_interactive_shell(njs_opts_t *opts, njs_vm_opt_t *vm_options)
+njs_interactive_shell(njs_opts_t *opts)
{
int flags;
fd_set fds;
@@ -1146,7 +1145,7 @@ njs_interactive_shell(njs_opts_t *opts,
return NJS_ERROR;
}

- vm = njs_create_vm(opts, vm_options);
+ vm = njs_create_vm(opts);
if (vm == NULL) {
return NJS_ERROR;
}
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[njs] Shell: moving njs_vm_opt_t initialisation to njs_create_vm().

Dmitry Volyntsev 318 November 09, 2023 03:00PM



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

Online Users

Guests: 237
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready