From: Dmitry Volyntsev Date: Wed, 7 Nov 2018 15:41:28 +0000 (+0300) Subject: Added njs_vm_retval_dump(). X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=3b94b49a54677ab26f7bcd542e0be97902d6ef7f;p=njs.git Added njs_vm_retval_dump(). --- diff --git a/njs/njs.c b/njs/njs.c index e63e12f7..4e789bb3 100644 --- a/njs/njs.c +++ b/njs/njs.c @@ -671,7 +671,21 @@ njs_vm_memory_error(njs_vm_t *vm) } -njs_ret_t njs_vm_retval_to_ext_string(njs_vm_t *vm, nxt_str_t *retval) +njs_ret_t +njs_vm_retval_to_ext_string(njs_vm_t *vm, nxt_str_t *dst) +{ + if (vm->top_frame == NULL) { + /* An exception was thrown during compilation. */ + + njs_vm_init(vm); + } + + return njs_vm_value_to_ext_string(vm, dst, &vm->retval, 1); +} + + +njs_ret_t +njs_vm_retval_dump(njs_vm_t *vm, nxt_str_t *dst, nxt_uint_t indent) { if (vm->top_frame == NULL) { /* An exception was thrown during compilation. */ @@ -679,7 +693,7 @@ njs_ret_t njs_vm_retval_to_ext_string(njs_vm_t *vm, nxt_str_t *retval) njs_vm_init(vm); } - return njs_vm_value_to_ext_string(vm, retval, &vm->retval, 1); + return njs_vm_value_dump(vm, dst, &vm->retval, 1); } diff --git a/njs/njs.h b/njs/njs.h index 3c2dd26f..11c7c5d6 100644 --- a/njs/njs.h +++ b/njs/njs.h @@ -200,8 +200,12 @@ NXT_EXPORT nxt_int_t njs_value_string_copy(njs_vm_t *vm, nxt_str_t *retval, NXT_EXPORT njs_ret_t njs_vm_value_to_ext_string(njs_vm_t *vm, nxt_str_t *dst, const njs_value_t *src, nxt_uint_t handle_exception); -NXT_EXPORT njs_ret_t njs_vm_retval_to_ext_string(njs_vm_t *vm, - nxt_str_t *retval); +NXT_EXPORT njs_ret_t njs_vm_retval_to_ext_string(njs_vm_t *vm, nxt_str_t *dst); + +NXT_EXPORT njs_ret_t njs_vm_value_dump(njs_vm_t *vm, nxt_str_t *dst, + const njs_value_t *value, nxt_uint_t indent); +NXT_EXPORT njs_ret_t njs_vm_retval_dump(njs_vm_t *vm, nxt_str_t *dst, + nxt_uint_t indent); NXT_EXPORT void njs_vm_memory_error(njs_vm_t *vm); @@ -226,8 +230,6 @@ NXT_EXPORT nxt_int_t njs_value_is_string(const njs_value_t *value); NXT_EXPORT nxt_int_t njs_value_is_object(const njs_value_t *value); NXT_EXPORT nxt_int_t njs_value_is_function(const njs_value_t *value); -NXT_EXPORT njs_ret_t njs_vm_value_dump(njs_vm_t *vm, nxt_str_t *retval, - const njs_value_t *value, nxt_uint_t indent); NXT_EXPORT njs_ret_t njs_vm_object_alloc(njs_vm_t *vm, njs_value_t *retval, ...); NXT_EXPORT njs_value_t *njs_vm_object_prop(njs_vm_t *vm, diff --git a/njs/njs_shell.c b/njs/njs_shell.c index c0dacc35..9de2ef8e 100644 --- a/njs/njs_shell.c +++ b/njs/njs_shell.c @@ -452,7 +452,7 @@ njs_process_script(njs_vm_t *vm, njs_opts_t *opts, const nxt_str_t *script, ret = njs_vm_run(vm); } - if (njs_vm_value_dump(vm, out, njs_vm_retval(vm), 1) != NXT_OK) { + if (njs_vm_retval_dump(vm, out, 1) != NXT_OK) { *out = nxt_string_value("failed to get retval from VM"); return NXT_ERROR; }