[PATCH 02/11] Constified numerous function parameters.

Andrew Clayton andrew at digital-domain.net
Thu Jun 16 01:00:52 UTC 2022


As was pointed out by the cppcheck[0] static code analysis utility we
can mark numerous function parameters as 'const'. This acts as a hint to
the compiler about our intentions and the compiler will tell us when we
deviate from them.

[0]: https://cppcheck.sourceforge.io/
---
 src/nxt_conf.c            | 10 +++++-----
 src/nxt_conf.h            |  6 +++---
 src/nxt_http.h            |  5 +++--
 src/nxt_http_parse.c      | 26 +++++++++++++-------------
 src/nxt_http_parse.h      |  2 +-
 src/nxt_http_request.c    | 12 ++++++------
 src/nxt_http_static.c     |  4 ++--
 src/nxt_mp.c              |  4 ++--
 src/nxt_port_memory_int.h |  2 +-
 src/nxt_port_socket.c     |  4 ++--
 src/nxt_string.c          |  2 +-
 src/nxt_string.h          |  2 +-
 src/nxt_unit.c            |  5 +++--
 13 files changed, 43 insertions(+), 41 deletions(-)

diff --git a/src/nxt_conf.c b/src/nxt_conf.c
index 79e776a..a44b8c7 100644
--- a/src/nxt_conf.c
+++ b/src/nxt_conf.c
@@ -102,7 +102,7 @@ typedef struct {
 static nxt_int_t nxt_conf_path_next_token(nxt_conf_path_parse_t *parse,
     nxt_str_t *token);
 
-static u_char *nxt_conf_json_skip_space(u_char *start, u_char *end);
+static u_char *nxt_conf_json_skip_space(u_char *start, const u_char *end);
 static u_char *nxt_conf_json_parse_value(nxt_mp_t *mp, nxt_conf_value_t *value,
     u_char *start, u_char *end, nxt_conf_json_error_t *error);
 static u_char *nxt_conf_json_parse_object(nxt_mp_t *mp, nxt_conf_value_t *value,
@@ -266,7 +266,7 @@ nxt_conf_create_object(nxt_mp_t *mp, nxt_uint_t count)
 
 void
 nxt_conf_set_member(nxt_conf_value_t *object, nxt_str_t *name,
-    nxt_conf_value_t *value, uint32_t index)
+    const nxt_conf_value_t *value, uint32_t index)
 {
     nxt_conf_object_member_t  *member;
 
@@ -367,7 +367,7 @@ nxt_conf_create_array(nxt_mp_t *mp, nxt_uint_t count)
 
 void
 nxt_conf_set_element(nxt_conf_value_t *array, nxt_uint_t index,
-    nxt_conf_value_t *value)
+    const nxt_conf_value_t *value)
 {
     array->u.array->elements[index] = *value;
 }
@@ -1271,7 +1271,7 @@ nxt_conf_json_parse(nxt_mp_t *mp, u_char *start, u_char *end,
 
 
 static u_char *
-nxt_conf_json_skip_space(u_char *start, u_char *end)
+nxt_conf_json_skip_space(u_char *start, const u_char *end)
 {
     u_char  *p, ch;
 
@@ -2605,7 +2605,7 @@ nxt_conf_json_escape(u_char *dst, u_char *src, size_t size)
 
 
 void
-nxt_conf_json_position(u_char *start, u_char *pos, nxt_uint_t *line,
+nxt_conf_json_position(u_char *start, const u_char *pos, nxt_uint_t *line,
     nxt_uint_t *column)
 {
     u_char      *p;
diff --git a/src/nxt_conf.h b/src/nxt_conf.h
index cfbc599..46effac 100644
--- a/src/nxt_conf.h
+++ b/src/nxt_conf.h
@@ -109,7 +109,7 @@ size_t nxt_conf_json_length(nxt_conf_value_t *value,
     nxt_conf_json_pretty_t *pretty);
 u_char *nxt_conf_json_print(u_char *p, nxt_conf_value_t *value,
     nxt_conf_json_pretty_t *pretty);
-void nxt_conf_json_position(u_char *start, u_char *pos, nxt_uint_t *line,
+void nxt_conf_json_position(u_char *start, const u_char *pos, nxt_uint_t *line,
     nxt_uint_t *column);
 
 nxt_int_t nxt_conf_validate(nxt_conf_validation_t *vldt);
@@ -125,7 +125,7 @@ NXT_EXPORT uint8_t nxt_conf_get_boolean(nxt_conf_value_t *value);
 NXT_EXPORT nxt_uint_t nxt_conf_object_members_count(nxt_conf_value_t *value);
 nxt_conf_value_t *nxt_conf_create_object(nxt_mp_t *mp, nxt_uint_t count);
 void nxt_conf_set_member(nxt_conf_value_t *object, nxt_str_t *name,
-    nxt_conf_value_t *value, uint32_t index);
+    const nxt_conf_value_t *value, uint32_t index);
 void nxt_conf_set_member_string(nxt_conf_value_t *object, nxt_str_t *name,
     nxt_str_t *value, uint32_t index);
 nxt_int_t nxt_conf_set_member_string_dup(nxt_conf_value_t *object, nxt_mp_t *mp,
@@ -137,7 +137,7 @@ void nxt_conf_set_member_null(nxt_conf_value_t *object, nxt_str_t *name,
 
 nxt_conf_value_t *nxt_conf_create_array(nxt_mp_t *mp, nxt_uint_t count);
 void nxt_conf_set_element(nxt_conf_value_t *array, nxt_uint_t index,
-    nxt_conf_value_t *value);
+    const nxt_conf_value_t *value);
 nxt_int_t nxt_conf_set_element_string_dup(nxt_conf_value_t *array, nxt_mp_t *mp,
     nxt_uint_t index, nxt_str_t *value);
 NXT_EXPORT nxt_uint_t nxt_conf_array_elements_count(nxt_conf_value_t *value);
diff --git a/src/nxt_http.h b/src/nxt_http.h
index 37c2732..218d453 100644
--- a/src/nxt_http.h
+++ b/src/nxt_http.h
@@ -370,8 +370,9 @@ nxt_int_t nxt_http_static_init(nxt_task_t *task, nxt_router_temp_conf_t *tmcf,
     nxt_http_action_t *action, nxt_http_action_conf_t *acf);
 nxt_int_t nxt_http_static_mtypes_init(nxt_mp_t *mp, nxt_lvlhsh_t *hash);
 nxt_int_t nxt_http_static_mtypes_hash_add(nxt_mp_t *mp, nxt_lvlhsh_t *hash,
-    nxt_str_t *exten, nxt_str_t *type);
-nxt_str_t *nxt_http_static_mtype_get(nxt_lvlhsh_t *hash, nxt_str_t *exten);
+    const nxt_str_t *exten, nxt_str_t *type);
+nxt_str_t *nxt_http_static_mtype_get(nxt_lvlhsh_t *hash,
+    const nxt_str_t *exten);
 
 nxt_http_action_t *nxt_http_application_handler(nxt_task_t *task,
     nxt_http_request_t *r, nxt_http_action_t *action);
diff --git a/src/nxt_http_parse.c b/src/nxt_http_parse.c
index 1ab6cc9..1bb4291 100644
--- a/src/nxt_http_parse.c
+++ b/src/nxt_http_parse.c
@@ -8,16 +8,16 @@
 
 
 static nxt_int_t nxt_http_parse_unusual_target(nxt_http_request_parse_t *rp,
-    u_char **pos, u_char *end);
+    u_char **pos, const u_char *end);
 static nxt_int_t nxt_http_parse_request_line(nxt_http_request_parse_t *rp,
-    u_char **pos, u_char *end);
+    u_char **pos, const u_char *end);
 static nxt_int_t nxt_http_parse_field_name(nxt_http_request_parse_t *rp,
-    u_char **pos, u_char *end);
+    u_char **pos, const u_char *end);
 static nxt_int_t nxt_http_parse_field_value(nxt_http_request_parse_t *rp,
-    u_char **pos, u_char *end);
-static u_char *nxt_http_lookup_field_end(u_char *p, u_char *end);
+    u_char **pos, const u_char *end);
+static u_char *nxt_http_lookup_field_end(u_char *p, const u_char *end);
 static nxt_int_t nxt_http_parse_field_end(nxt_http_request_parse_t *rp,
-    u_char **pos, u_char *end);
+    u_char **pos, const u_char *end);
 
 static nxt_int_t nxt_http_parse_complex_target(nxt_http_request_parse_t *rp);
 
@@ -62,7 +62,7 @@ static const uint8_t  nxt_http_target_chars[256] nxt_aligned(64) = {
 
 
 nxt_inline nxt_http_target_traps_e
-nxt_http_parse_target(u_char **pos, u_char *end)
+nxt_http_parse_target(u_char **pos, const u_char *end)
 {
     u_char      *p;
     nxt_uint_t  trap;
@@ -158,7 +158,7 @@ nxt_http_parse_fields(nxt_http_request_parse_t *rp, nxt_buf_mem_t *b)
 
 static nxt_int_t
 nxt_http_parse_request_line(nxt_http_request_parse_t *rp, u_char **pos,
-    u_char *end)
+    const u_char *end)
 {
     u_char                   *p, ch, *after_slash, *args;
     nxt_int_t                rc;
@@ -479,7 +479,7 @@ nxt_http_parse_request_line(nxt_http_request_parse_t *rp, u_char **pos,
 
 static nxt_int_t
 nxt_http_parse_unusual_target(nxt_http_request_parse_t *rp, u_char **pos,
-    u_char *end)
+    const u_char *end)
 {
     u_char  *p, ch;
 
@@ -517,7 +517,7 @@ nxt_http_parse_unusual_target(nxt_http_request_parse_t *rp, u_char **pos,
 
 static nxt_int_t
 nxt_http_parse_field_name(nxt_http_request_parse_t *rp, u_char **pos,
-    u_char *end)
+    const u_char *end)
 {
     u_char    *p, c;
     size_t    len;
@@ -624,7 +624,7 @@ nxt_http_parse_field_name(nxt_http_request_parse_t *rp, u_char **pos,
 
 static nxt_int_t
 nxt_http_parse_field_value(nxt_http_request_parse_t *rp, u_char **pos,
-    u_char *end)
+    const u_char *end)
 {
     u_char  *p, *start, ch;
     size_t  len;
@@ -704,7 +704,7 @@ nxt_http_parse_field_value(nxt_http_request_parse_t *rp, u_char **pos,
 
 
 static u_char *
-nxt_http_lookup_field_end(u_char *p, u_char *end)
+nxt_http_lookup_field_end(u_char *p, const u_char *end)
 {
     while (nxt_fast_path(end - p >= 16)) {
 
@@ -771,7 +771,7 @@ nxt_http_lookup_field_end(u_char *p, u_char *end)
 
 static nxt_int_t
 nxt_http_parse_field_end(nxt_http_request_parse_t *rp, u_char **pos,
-    u_char *end)
+    const u_char *end)
 {
     u_char            *p;
     nxt_http_field_t  *field;
diff --git a/src/nxt_http_parse.h b/src/nxt_http_parse.h
index 3cd9bd1..2b71446 100644
--- a/src/nxt_http_parse.h
+++ b/src/nxt_http_parse.h
@@ -35,7 +35,7 @@ typedef union {
 
 struct nxt_http_request_parse_s {
     nxt_int_t                 (*handler)(nxt_http_request_parse_t *rp,
-                                         u_char **pos, u_char *end);
+                                         u_char **pos, const u_char *end);
 
     nxt_str_t                 method;
 
diff --git a/src/nxt_http_request.c b/src/nxt_http_request.c
index 0eacf62..df17fd2 100644
--- a/src/nxt_http_request.c
+++ b/src/nxt_http_request.c
@@ -26,11 +26,11 @@ static u_char *nxt_http_date_cache_handler(u_char *buf, nxt_realtime_t *now,
 
 static nxt_http_name_value_t *nxt_http_argument(nxt_array_t *array,
     u_char *name, size_t name_length, uint32_t hash, u_char *start,
-    u_char *end);
+    const u_char *end);
 static nxt_int_t nxt_http_cookie_parse(nxt_array_t *cookies, u_char *start,
-    u_char *end);
+    const u_char *end);
 static nxt_http_name_value_t *nxt_http_cookie(nxt_array_t *array, u_char *name,
-    size_t name_length, u_char *start, u_char *end);
+    size_t name_length, u_char *start, const u_char *end);
 
 
 #define NXT_HTTP_COOKIE_HASH                                                  \
@@ -876,7 +876,7 @@ nxt_http_arguments_parse(nxt_http_request_t *r)
 
 static nxt_http_name_value_t *
 nxt_http_argument(nxt_array_t *array, u_char *name, size_t name_length,
-    uint32_t hash, u_char *start, u_char *end)
+    uint32_t hash, u_char *start, const u_char *end)
 {
     size_t                 length;
     nxt_http_name_value_t  *nv;
@@ -945,7 +945,7 @@ nxt_http_cookies_parse(nxt_http_request_t *r)
 
 
 static nxt_int_t
-nxt_http_cookie_parse(nxt_array_t *cookies, u_char *start, u_char *end)
+nxt_http_cookie_parse(nxt_array_t *cookies, u_char *start, const u_char *end)
 {
     size_t                 name_length;
     u_char                 c, *p, *name;
@@ -994,7 +994,7 @@ nxt_http_cookie_parse(nxt_array_t *cookies, u_char *start, u_char *end)
 
 static nxt_http_name_value_t *
 nxt_http_cookie(nxt_array_t *array, u_char *name, size_t name_length,
-    u_char *start, u_char *end)
+    u_char *start, const u_char *end)
 {
     u_char                 c, *p;
     uint32_t               hash;
diff --git a/src/nxt_http_static.c b/src/nxt_http_static.c
index 61dd0cb..7c7991f 100644
--- a/src/nxt_http_static.c
+++ b/src/nxt_http_static.c
@@ -1023,7 +1023,7 @@ typedef struct {
 
 nxt_int_t
 nxt_http_static_mtypes_hash_add(nxt_mp_t *mp, nxt_lvlhsh_t *hash,
-    nxt_str_t *exten, nxt_str_t *type)
+    const nxt_str_t *exten, nxt_str_t *type)
 {
     nxt_lvlhsh_query_t       lhq;
     nxt_http_static_mtype_t  *mtype;
@@ -1048,7 +1048,7 @@ nxt_http_static_mtypes_hash_add(nxt_mp_t *mp, nxt_lvlhsh_t *hash,
 
 
 nxt_str_t *
-nxt_http_static_mtype_get(nxt_lvlhsh_t *hash, nxt_str_t *exten)
+nxt_http_static_mtype_get(nxt_lvlhsh_t *hash, const nxt_str_t *exten)
 {
     nxt_lvlhsh_query_t       lhq;
     nxt_http_static_mtype_t  *mtype;
diff --git a/src/nxt_mp.c b/src/nxt_mp.c
index d0de2c0..2bd8cde 100644
--- a/src/nxt_mp.c
+++ b/src/nxt_mp.c
@@ -155,7 +155,7 @@ static void *nxt_mp_alloc_large(nxt_mp_t *mp, size_t alignment, size_t size,
     nxt_bool_t freeable);
 static intptr_t nxt_mp_rbtree_compare(nxt_rbtree_node_t *node1,
     nxt_rbtree_node_t *node2);
-static nxt_mp_block_t *nxt_mp_find_block(nxt_rbtree_t *tree, u_char *p);
+static nxt_mp_block_t *nxt_mp_find_block(nxt_rbtree_t *tree, const u_char *p);
 static const char *nxt_mp_chunk_free(nxt_mp_t *mp, nxt_mp_block_t *cluster,
     u_char *p);
 
@@ -830,7 +830,7 @@ nxt_mp_free(nxt_mp_t *mp, void *p)
 
 
 static nxt_mp_block_t *
-nxt_mp_find_block(nxt_rbtree_t *tree, u_char *p)
+nxt_mp_find_block(nxt_rbtree_t *tree, const u_char *p)
 {
     nxt_mp_block_t     *block;
     nxt_rbtree_node_t  *node, *sentinel;
diff --git a/src/nxt_port_memory_int.h b/src/nxt_port_memory_int.h
index c84615d..21a05b1 100644
--- a/src/nxt_port_memory_int.h
+++ b/src/nxt_port_memory_int.h
@@ -100,7 +100,7 @@ nxt_inline void
 nxt_port_mmap_set_chunk_free(nxt_free_map_t *m, nxt_chunk_id_t c);
 
 nxt_inline nxt_chunk_id_t
-nxt_port_mmap_chunk_id(nxt_port_mmap_header_t *hdr, u_char *p)
+nxt_port_mmap_chunk_id(nxt_port_mmap_header_t *hdr, const u_char *p)
 {
     u_char  *mm_start;
 
diff --git a/src/nxt_port_socket.c b/src/nxt_port_socket.c
index 2a51dfb..5752d5a 100644
--- a/src/nxt_port_socket.c
+++ b/src/nxt_port_socket.c
@@ -19,7 +19,7 @@ static uint8_t nxt_port_enqueue_buf(nxt_task_t *task, nxt_port_msg_t *pm,
     void *qbuf, nxt_buf_t *b);
 static nxt_int_t nxt_port_msg_chk_insert(nxt_task_t *task, nxt_port_t *port,
     nxt_port_send_msg_t *msg);
-static nxt_port_send_msg_t *nxt_port_msg_alloc(nxt_port_send_msg_t *m);
+static nxt_port_send_msg_t *nxt_port_msg_alloc(const nxt_port_send_msg_t *m);
 static void nxt_port_write_handler(nxt_task_t *task, void *obj, void *data);
 static nxt_port_send_msg_t *nxt_port_msg_first(nxt_port_t *port);
 nxt_inline void nxt_port_msg_close_fd(nxt_port_send_msg_t *msg);
@@ -332,7 +332,7 @@ nxt_port_msg_chk_insert(nxt_task_t *task, nxt_port_t *port,
 
 
 static nxt_port_send_msg_t *
-nxt_port_msg_alloc(nxt_port_send_msg_t *m)
+nxt_port_msg_alloc(const nxt_port_send_msg_t *m)
 {
     nxt_port_send_msg_t  *msg;
 
diff --git a/src/nxt_string.c b/src/nxt_string.c
index b7aef79..4d89c23 100644
--- a/src/nxt_string.c
+++ b/src/nxt_string.c
@@ -338,7 +338,7 @@ nxt_rmemstrn(const u_char *s, const u_char *end, const char *ss, size_t length)
 
 
 size_t
-nxt_str_strip(u_char *start, u_char *end)
+nxt_str_strip(const u_char *start, u_char *end)
 {
     u_char  *p;
 
diff --git a/src/nxt_string.h b/src/nxt_string.h
index 80cdbb5..a8673c6 100644
--- a/src/nxt_string.h
+++ b/src/nxt_string.h
@@ -96,7 +96,7 @@ NXT_EXPORT u_char *nxt_memcasestrn(const u_char *s, const u_char *end,
     const char *ss, size_t length);
 NXT_EXPORT u_char *nxt_rmemstrn(const u_char *s, const u_char *end,
     const char *ss, size_t length);
-NXT_EXPORT size_t nxt_str_strip(u_char *start, u_char *end);
+NXT_EXPORT size_t nxt_str_strip(const u_char *start, u_char *end);
 
 
 typedef struct {
diff --git a/src/nxt_unit.c b/src/nxt_unit.c
index f183ac6..4be0906 100644
--- a/src/nxt_unit.c
+++ b/src/nxt_unit.c
@@ -196,7 +196,8 @@ static int nxt_unit_request_hash_add(nxt_unit_ctx_t *ctx,
 static nxt_unit_request_info_t *nxt_unit_request_hash_find(
     nxt_unit_ctx_t *ctx, uint32_t stream, int remove);
 
-static char * nxt_unit_snprint_prefix(char *p, char *end, pid_t pid, int level);
+static char * nxt_unit_snprint_prefix(char *p, const char *end, pid_t pid,
+    int level);
 static void *nxt_unit_lvlhsh_alloc(void *data, size_t size);
 static void nxt_unit_lvlhsh_free(void *data, void *p);
 static int nxt_unit_memcasecmp(const void *p1, const void *p2, size_t length);
@@ -6666,7 +6667,7 @@ static const char * nxt_unit_log_levels[] = {
 
 
 static char *
-nxt_unit_snprint_prefix(char *p, char *end, pid_t pid, int level)
+nxt_unit_snprint_prefix(char *p, const char *end, pid_t pid, int level)
 {
     struct tm        tm;
     struct timespec  ts;
-- 
2.36.1



More information about the unit mailing list