diff options
| author | Garrett D'Amore <garrett@damore.org> | 2025-10-07 20:03:32 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2025-10-07 20:03:32 -0700 |
| commit | 3971d119c129bf5685f9fd14d0f1f785581c3565 (patch) | |
| tree | 12b08c053d07fab5af699229ef52e311b8182d56 /src/core | |
| parent | 07191755f3a38cbac48d15523095136f69d8f772 (diff) | |
| download | nng-3971d119c129bf5685f9fd14d0f1f785581c3565.tar.gz nng-3971d119c129bf5685f9fd14d0f1f785581c3565.tar.bz2 nng-3971d119c129bf5685f9fd14d0f1f785581c3565.zip | |
options: string options are passed by reference
This avoids needless allocations, and we offer for pipes (which need
this because they might be ephemeral) the get_strdup, get_strcpy,
and get_strlen forms. (Those do the copying or allocations while holding
the pipe reference.)
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/options.c | 12 | ||||
| -rw-r--r-- | src/core/stream.c | 8 |
2 files changed, 9 insertions, 11 deletions
diff --git a/src/core/options.c b/src/core/options.c index 23e63d1c..f3843c0d 100644 --- a/src/core/options.c +++ b/src/core/options.c @@ -1,5 +1,5 @@ // -// Copyright 2024 Staysail Systems, Inc. <info@staysail.tech> +// Copyright 2025 Staysail Systems, Inc. <info@staysail.tech> // Copyright 2018 Capitar IT Group BV <info@capitar.com> // Copyright 2018 Devolutions <info@devolutions.net> // @@ -9,9 +9,9 @@ // found online at https://opensource.org/licenses/MIT. // -#include "core/defs.h" -#include "core/nng_impl.h" +#include "defs.h" #include "nng/nng.h" +#include "nng_impl.h" #include <stdio.h> #include <string.h> @@ -174,16 +174,12 @@ nni_copyout_sockaddr( nng_err nni_copyout_str(const char *str, void *dst, size_t *szp, nni_type t) { - char *s; NNI_ARG_UNUSED(szp); if (t != NNI_TYPE_STRING) { return (NNG_EBADTYPE); } - if ((s = nni_strdup(str)) == NULL) { - return (NNG_ENOMEM); - } - *(char **) dst = s; + *(const char **) dst = str; return (NNG_OK); } diff --git a/src/core/stream.c b/src/core/stream.c index 61a8a3ba..572f28d1 100644 --- a/src/core/stream.c +++ b/src/core/stream.c @@ -368,7 +368,7 @@ nng_stream_get_size(nng_stream *s, const char *n, size_t *v) } nng_err -nng_stream_get_string(nng_stream *s, const char *n, char **v) +nng_stream_get_string(nng_stream *s, const char *n, const char **v) { return (nni_stream_get(s, n, v, NULL, NNI_TYPE_STRING)); } @@ -413,7 +413,8 @@ nng_stream_dialer_get_size(nng_stream_dialer *d, const char *n, size_t *v) } nng_err -nng_stream_dialer_get_string(nng_stream_dialer *d, const char *n, char **v) +nng_stream_dialer_get_string( + nng_stream_dialer *d, const char *n, const char **v) { return (nni_stream_dialer_get(d, n, v, NULL, NNI_TYPE_STRING)); } @@ -456,7 +457,8 @@ nng_stream_listener_get_size(nng_stream_listener *l, const char *n, size_t *v) } nng_err -nng_stream_listener_get_string(nng_stream_listener *l, const char *n, char **v) +nng_stream_listener_get_string( + nng_stream_listener *l, const char *n, const char **v) { return (nni_stream_listener_get(l, n, v, NULL, NNI_TYPE_STRING)); } |
