Welcome! Log In Create A New Profile

Advanced

[njs] Adding const qualifiers njs_value_t arguments of public methods.

Dmitry Volyntsev
August 01, 2018 11:40AM
details: http://hg.nginx.org/njs/rev/72aa4d9aa606
branches:
changeset: 580:72aa4d9aa606
user: Dmitry Volyntsev <xeioex@nginx.com>
date: Wed Aug 01 18:05:01 2018 +0300
description:
Adding const qualifiers njs_value_t arguments of public methods.

This allows to use the result of safe njs_arg() macro in the
methods.

diffstat:

njs/njs.c | 10 +++++-----
njs/njs.h | 41 ++++++++++++++++++++---------------------
njs/njs_extern.c | 2 +-
njs/njs_function.c | 2 +-
njs/njs_function.h | 2 +-
njs/njs_vm.c | 26 +++++++++++++-------------
6 files changed, 41 insertions(+), 42 deletions(-)

diffs (284 lines):

diff -r c85b07c96e27 -r 72aa4d9aa606 njs/njs.c
--- a/njs/njs.c Tue Jul 31 21:11:44 2018 +0300
+++ b/njs/njs.c Wed Aug 01 18:05:01 2018 +0300
@@ -444,7 +444,7 @@ njs_vm_init(njs_vm_t *vm)


nxt_int_t
-njs_vm_call(njs_vm_t *vm, njs_function_t *function, njs_value_t *args,
+njs_vm_call(njs_vm_t *vm, njs_function_t *function, const njs_value_t *args,
nxt_uint_t nargs)
{
u_char *current;
@@ -531,7 +531,7 @@ njs_vm_pending(njs_vm_t *vm)

nxt_int_t
njs_vm_post_event(njs_vm_t *vm, njs_vm_event_t vm_event,
- njs_value_t *args, nxt_uint_t nargs)
+ const njs_value_t *args, nxt_uint_t nargs)
{
njs_event_t *event;

@@ -654,9 +654,9 @@ njs_vm_retval(njs_vm_t *vm)


nxt_noinline void
-njs_vm_retval_set(njs_vm_t *vm, njs_value_t *value)
+njs_vm_retval_set(njs_vm_t *vm, const njs_value_t *value)
{
- vm->retval = *(njs_value_t *) value;
+ vm->retval = *value;
}


@@ -680,7 +680,7 @@ njs_ret_t njs_vm_retval_to_ext_string(nj


njs_value_t *
-njs_vm_object_prop(njs_vm_t *vm, njs_value_t *value, const nxt_str_t *key)
+njs_vm_object_prop(njs_vm_t *vm, const njs_value_t *value, const nxt_str_t *key)
{
nxt_int_t ret;
njs_object_prop_t *prop;
diff -r c85b07c96e27 -r 72aa4d9aa606 njs/njs.h
--- a/njs/njs.h Tue Jul 31 21:11:44 2018 +0300
+++ b/njs/njs.h Wed Aug 01 18:05:01 2018 +0300
@@ -48,8 +48,7 @@ typedef struct {
extern const njs_value_t njs_value_void;

#define njs_arg(args, nargs, n) \
- (njs_value_t *) ((n < nargs) ? njs_argument(args, n) \
- : &njs_value_void)
+ ((n < nargs) ? njs_argument(args, n) : &njs_value_void)

#define njs_value_assign(dst, src) \
*((njs_opaque_value_t *) dst) = *((njs_opaque_value_t *) src);
@@ -162,7 +161,7 @@ NXT_EXPORT void njs_vm_destroy(njs_vm_t
NXT_EXPORT nxt_int_t njs_vm_compile(njs_vm_t *vm, u_char **start, u_char *end);
NXT_EXPORT njs_vm_t *njs_vm_clone(njs_vm_t *vm, njs_external_ptr_t external);
NXT_EXPORT nxt_int_t njs_vm_call(njs_vm_t *vm, njs_function_t *function,
- njs_value_t *args, nxt_uint_t nargs);
+ const njs_value_t *args, nxt_uint_t nargs);

NXT_EXPORT njs_vm_event_t njs_vm_add_event(njs_vm_t *vm,
njs_function_t *function, njs_host_event_t host_ev,
@@ -170,7 +169,7 @@ NXT_EXPORT njs_vm_event_t njs_vm_add_eve
NXT_EXPORT void njs_vm_del_event(njs_vm_t *vm, njs_vm_event_t vm_event);
NXT_EXPORT nxt_int_t njs_vm_pending(njs_vm_t *vm);
NXT_EXPORT nxt_int_t njs_vm_post_event(njs_vm_t *vm, njs_vm_event_t vm_event,
- njs_value_t *args, nxt_uint_t nargs);
+ const njs_value_t *args, nxt_uint_t nargs);

NXT_EXPORT nxt_int_t njs_vm_run(njs_vm_t *vm);

@@ -179,7 +178,7 @@ NXT_EXPORT const njs_extern_t *njs_vm_ex
NXT_EXPORT nxt_int_t njs_vm_external_create(njs_vm_t *vm,
njs_value_t *value, const njs_extern_t *proto, njs_external_ptr_t object);
NXT_EXPORT nxt_int_t njs_vm_external_bind(njs_vm_t *vm,
- const nxt_str_t *var_name, njs_value_t *value);
+ const nxt_str_t *var_name, const njs_value_t *value);
NXT_EXPORT njs_external_ptr_t njs_vm_external(njs_vm_t *vm,
const njs_value_t *value);

@@ -188,7 +187,7 @@ NXT_EXPORT nxt_array_t *njs_vm_completio

NXT_EXPORT njs_function_t *njs_vm_function(njs_vm_t *vm, nxt_str_t *name);
NXT_EXPORT njs_value_t *njs_vm_retval(njs_vm_t *vm);
-NXT_EXPORT void njs_vm_retval_set(njs_vm_t *vm, njs_value_t *value);
+NXT_EXPORT void njs_vm_retval_set(njs_vm_t *vm, const njs_value_t *value);

NXT_EXPORT u_char * njs_string_alloc(njs_vm_t *vm, njs_value_t *value,
uint32_t size, uint32_t length);
@@ -196,7 +195,7 @@ NXT_EXPORT njs_ret_t njs_string_create(n
u_char *start, uint32_t size, uint32_t length);

NXT_EXPORT nxt_int_t njs_value_string_copy(njs_vm_t *vm, nxt_str_t *retval,
- njs_value_t *value, uintptr_t *next);
+ const njs_value_t *value, uintptr_t *next);

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);
@@ -212,24 +211,24 @@ NXT_EXPORT void njs_value_data_set(njs_v
NXT_EXPORT void njs_value_error_set(njs_vm_t *vm, njs_value_t *value,
const char *fmt, ...);

-NXT_EXPORT uint8_t njs_value_bool(njs_value_t *value);
-NXT_EXPORT double njs_value_number(njs_value_t *value);
-NXT_EXPORT void *njs_value_data(njs_value_t *value);
-NXT_EXPORT njs_function_t *njs_value_function(njs_value_t *value);
+NXT_EXPORT uint8_t njs_value_bool(const njs_value_t *value);
+NXT_EXPORT double njs_value_number(const njs_value_t *value);
+NXT_EXPORT void *njs_value_data(const njs_value_t *value);
+NXT_EXPORT njs_function_t *njs_value_function(const njs_value_t *value);

-NXT_EXPORT nxt_int_t njs_value_is_null(njs_value_t *value);
-NXT_EXPORT nxt_int_t njs_value_is_void(njs_value_t *value);
-NXT_EXPORT nxt_int_t njs_value_is_boolean(njs_value_t *value);
-NXT_EXPORT nxt_int_t njs_value_is_number(njs_value_t *value);
-NXT_EXPORT nxt_int_t njs_value_is_valid_number(njs_value_t *value);
-NXT_EXPORT nxt_int_t njs_value_is_string(njs_value_t *value);
-NXT_EXPORT nxt_int_t njs_value_is_object(njs_value_t *value);
-NXT_EXPORT nxt_int_t njs_value_is_function(njs_value_t *value);
+NXT_EXPORT nxt_int_t njs_value_is_null(const njs_value_t *value);
+NXT_EXPORT nxt_int_t njs_value_is_void(const njs_value_t *value);
+NXT_EXPORT nxt_int_t njs_value_is_boolean(const njs_value_t *value);
+NXT_EXPORT nxt_int_t njs_value_is_number(const njs_value_t *value);
+NXT_EXPORT nxt_int_t njs_value_is_valid_number(const njs_value_t *value);
+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_value_t *njs_vm_object_prop(njs_vm_t *vm, njs_value_t *value,
- const nxt_str_t *key);
+NXT_EXPORT njs_value_t *njs_vm_object_prop(njs_vm_t *vm,
+ const njs_value_t *value, const nxt_str_t *key);

extern const nxt_mem_proto_t njs_vm_mem_cache_pool_proto;

diff -r c85b07c96e27 -r 72aa4d9aa606 njs/njs_extern.c
--- a/njs/njs_extern.c Tue Jul 31 21:11:44 2018 +0300
+++ b/njs/njs_extern.c Wed Aug 01 18:05:01 2018 +0300
@@ -193,7 +193,7 @@ njs_vm_external_create(njs_vm_t *vm, njs

nxt_int_t
njs_vm_external_bind(njs_vm_t *vm, const nxt_str_t *var_name,
- njs_value_t *value)
+ const njs_value_t *value)
{
nxt_int_t ret;
njs_extern_value_t *ev;
diff -r c85b07c96e27 -r 72aa4d9aa606 njs/njs_function.c
--- a/njs/njs_function.c Tue Jul 31 21:11:44 2018 +0300
+++ b/njs/njs_function.c Wed Aug 01 18:05:01 2018 +0300
@@ -144,7 +144,7 @@ njs_function_native_frame(njs_vm_t *vm,

nxt_noinline njs_ret_t
njs_function_frame(njs_vm_t *vm, njs_function_t *function,
- const njs_value_t *this, njs_value_t *args, nxt_uint_t nargs,
+ const njs_value_t *this, const njs_value_t *args, nxt_uint_t nargs,
nxt_bool_t ctor)
{
size_t size;
diff -r c85b07c96e27 -r 72aa4d9aa606 njs/njs_function.h
--- a/njs/njs_function.h Tue Jul 31 21:11:44 2018 +0300
+++ b/njs/njs_function.h Wed Aug 01 18:05:01 2018 +0300
@@ -158,7 +158,7 @@ njs_ret_t njs_function_native_frame(njs_
const njs_value_t *this, njs_value_t *args, nxt_uint_t nargs,
size_t reserve, nxt_bool_t ctor);
njs_ret_t njs_function_frame(njs_vm_t *vm, njs_function_t *function,
- const njs_value_t *this, njs_value_t *args, nxt_uint_t nargs,
+ const njs_value_t *this, const njs_value_t *args, nxt_uint_t nargs,
nxt_bool_t ctor);
njs_ret_t njs_function_call(njs_vm_t *vm, njs_index_t retval, size_t advance);

diff -r c85b07c96e27 -r 72aa4d9aa606 njs/njs_vm.c
--- a/njs/njs_vm.c Tue Jul 31 21:11:44 2018 +0300
+++ b/njs/njs_vm.c Wed Aug 01 18:05:01 2018 +0300
@@ -3521,63 +3521,63 @@ memory_error:


nxt_noinline uint8_t
-njs_value_bool(njs_value_t *value)
+njs_value_bool(const njs_value_t *value)
{
return value->data.truth;
}


nxt_noinline double
-njs_value_number(njs_value_t *value)
+njs_value_number(const njs_value_t *value)
{
return value->data.u.number;
}


nxt_noinline void *
-njs_value_data(njs_value_t *value)
+njs_value_data(const njs_value_t *value)
{
return value->data.u.data;
}


nxt_noinline njs_function_t *
-njs_value_function(njs_value_t *value)
+njs_value_function(const njs_value_t *value)
{
return value->data.u.function;
}


nxt_noinline nxt_int_t
-njs_value_is_null(njs_value_t *value)
+njs_value_is_null(const njs_value_t *value)
{
return njs_is_null(value);
}


nxt_noinline nxt_int_t
-njs_value_is_void(njs_value_t *value)
+njs_value_is_void(const njs_value_t *value)
{
return njs_is_void(value);
}


nxt_noinline nxt_int_t
-njs_value_is_boolean(njs_value_t *value)
+njs_value_is_boolean(const njs_value_t *value)
{
return njs_is_boolean(value);
}


nxt_noinline nxt_int_t
-njs_value_is_number(njs_value_t *value)
+njs_value_is_number(const njs_value_t *value)
{
return njs_is_number(value);
}


nxt_noinline nxt_int_t
-njs_value_is_valid_number(njs_value_t *value)
+njs_value_is_valid_number(const njs_value_t *value)
{
return njs_is_number(value)
&& !isnan(value->data.u.number)
@@ -3586,28 +3586,28 @@ njs_value_is_valid_number(njs_value_t *v


nxt_noinline nxt_int_t
-njs_value_is_string(njs_value_t *value)
+njs_value_is_string(const njs_value_t *value)
{
return njs_is_string(value);
}


nxt_noinline nxt_int_t
-njs_value_is_object(njs_value_t *value)
+njs_value_is_object(const njs_value_t *value)
{
return njs_is_object(value);
}


nxt_noinline nxt_int_t
-njs_value_is_function(njs_value_t *value)
+njs_value_is_function(const njs_value_t *value)
{
return njs_is_function(value);
}


nxt_int_t
-njs_value_string_copy(njs_vm_t *vm, nxt_str_t *retval, njs_value_t *value,
+njs_value_string_copy(njs_vm_t *vm, nxt_str_t *retval, const njs_value_t *value,
uintptr_t *next)
{
uintptr_t n;
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[njs] Adding const qualifiers njs_value_t arguments of public methods.

Dmitry Volyntsev 369 August 01, 2018 11:40AM



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

Online Users

Guests: 282
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready