diff options
author | Egor Tensin <Egor.Tensin@gmail.com> | 2023-05-13 10:58:41 +0200 |
---|---|---|
committer | Egor Tensin <Egor.Tensin@gmail.com> | 2023-05-13 11:37:46 +0200 |
commit | cd917f48454875ad6b7fc69455281d72760c44ee (patch) | |
tree | 70a7a43fe43b7f893468f9120def5513774a242c /src/msg.c | |
parent | add command module to handle request-response communications (diff) | |
download | cimple-cd917f48454875ad6b7fc69455281d72760c44ee.tar.gz cimple-cd917f48454875ad6b7fc69455281d72760c44ee.zip |
best practices & coding style fixes
* I don't really need to declare all variables at the top of the
function anymore.
* Default-initialize variables more.
* Don't set the output parameter until the object is completely
constructed.
Diffstat (limited to '')
-rw-r--r-- | src/msg.c | 27 |
1 files changed, 12 insertions, 15 deletions
@@ -30,13 +30,13 @@ const char **msg_get_words(const struct msg *msg) int msg_success(struct msg **msg) { - const char *argv[] = {"success", NULL}; + static const char *argv[] = {"success", NULL}; return msg_from_argv(msg, argv); } int msg_error(struct msg **msg) { - const char *argv[] = {"error", NULL}; + static const char *argv[] = {"error", NULL}; return msg_from_argv(msg, argv); } @@ -82,15 +82,13 @@ free_copied: int msg_copy(struct msg **_dest, const struct msg *src) { - struct msg *dest = NULL; int ret = 0; - *_dest = malloc(sizeof(struct msg)); - if (!_dest) { + struct msg *dest = malloc(sizeof(struct msg)); + if (!dest) { log_errno("malloc"); return -1; } - dest = *_dest; dest->argc = src->argc; @@ -98,6 +96,7 @@ int msg_copy(struct msg **_dest, const struct msg *src) if (ret < 0) goto free; + *_dest = dest; return 0; free: @@ -116,15 +115,13 @@ void msg_free(struct msg *msg) int msg_from_argv(struct msg **_msg, const char **argv) { - struct msg *msg = NULL; int ret = 0; - *_msg = malloc(sizeof(struct msg)); - if (!*_msg) { + struct msg *msg = malloc(sizeof(struct msg)); + if (!msg) { log_errno("malloc"); return -1; } - msg = *_msg; msg->argc = 0; for (const char **s = argv; *s; ++s) @@ -134,6 +131,7 @@ int msg_from_argv(struct msg **_msg, const char **argv) if (ret < 0) goto free; + *_msg = msg; return 0; free: @@ -200,7 +198,7 @@ free: int msg_send(int fd, const struct msg *msg) { - struct buf *buf; + struct buf *buf = NULL; int ret = 0; uint32_t size = calc_buf_size(msg); @@ -245,7 +243,6 @@ int msg_send_and_wait(int fd, const struct msg *request, struct msg **response) int msg_recv(int fd, struct msg **_msg) { - struct msg *msg = NULL; struct buf *buf = NULL; int ret = 0; @@ -253,13 +250,12 @@ int msg_recv(int fd, struct msg **_msg) if (ret < 0) return ret; - *_msg = malloc(sizeof(struct msg)); - if (!*_msg) { + struct msg *msg = malloc(sizeof(struct msg)); + if (!msg) { log_errno("malloc"); ret = -1; goto destroy_buf; } - msg = *_msg; msg->argc = calc_argv_len(buf_get_data(buf), buf_get_size(buf)); @@ -267,6 +263,7 @@ int msg_recv(int fd, struct msg **_msg) if (ret < 0) goto free_msg; + *_msg = msg; goto destroy_buf; free_msg: |