From bcc3814b58e9b198344bdaf6e7a916a354841275 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Fri, 3 Jan 2020 18:03:57 -0800 Subject: fixes #1104 move allocation of protocol objects to common core fixes #1103 respondent could inline backtrace --- src/protocol/pair0/pair.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) (limited to 'src/protocol/pair0') diff --git a/src/protocol/pair0/pair.c b/src/protocol/pair0/pair.c index 4e708a61..860ac17f 100644 --- a/src/protocol/pair0/pair.c +++ b/src/protocol/pair0/pair.c @@ -1,5 +1,5 @@ // -// Copyright 2018 Staysail Systems, Inc. +// Copyright 2020 Staysail Systems, Inc. // Copyright 2018 Capitar IT Group BV // // This software is supplied under the terms of the MIT License, a @@ -53,18 +53,14 @@ struct pair0_pipe { }; static int -pair0_sock_init(void **sp, nni_sock *nsock) +pair0_sock_init(void *arg, nni_sock *nsock) { - pair0_sock *s; + pair0_sock *s = arg; - if ((s = NNI_ALLOC_STRUCT(s)) == NULL) { - return (NNG_ENOMEM); - } nni_mtx_init(&s->mtx); s->ppipe = NULL; s->uwq = nni_sock_sendq(nsock); s->urq = nni_sock_recvq(nsock); - *sp = s; return (0); } @@ -74,7 +70,6 @@ pair0_sock_fini(void *arg) pair0_sock *s = arg; nni_mtx_fini(&s->mtx); - NNI_FREE_STRUCT(s); } static void @@ -97,18 +92,14 @@ pair0_pipe_fini(void *arg) nni_aio_fini(p->aio_recv); nni_aio_fini(p->aio_putq); nni_aio_fini(p->aio_getq); - NNI_FREE_STRUCT(p); } static int -pair0_pipe_init(void **pp, nni_pipe *npipe, void *psock) +pair0_pipe_init(void *arg, nni_pipe *npipe, void *psock) { - pair0_pipe *p; + pair0_pipe *p = arg; int rv; - if ((p = NNI_ALLOC_STRUCT(p)) == NULL) { - return (NNG_ENOMEM); - } if (((rv = nni_aio_init(&p->aio_send, pair0_send_cb, p)) != 0) || ((rv = nni_aio_init(&p->aio_recv, pair0_recv_cb, p)) != 0) || ((rv = nni_aio_init(&p->aio_getq, pair0_getq_cb, p)) != 0) || @@ -119,7 +110,6 @@ pair0_pipe_init(void **pp, nni_pipe *npipe, void *psock) p->npipe = npipe; p->psock = psock; - *pp = p; return (0); } @@ -262,6 +252,7 @@ pair0_sock_recv(void *arg, nni_aio *aio) } static nni_proto_pipe_ops pair0_pipe_ops = { + .pipe_size = sizeof(pair0_pipe), .pipe_init = pair0_pipe_init, .pipe_fini = pair0_pipe_fini, .pipe_start = pair0_pipe_start, @@ -277,6 +268,7 @@ static nni_option pair0_sock_options[] = { }; static nni_proto_sock_ops pair0_sock_ops = { + .sock_size = sizeof(pair0_sock), .sock_init = pair0_sock_init, .sock_fini = pair0_sock_fini, .sock_open = pair0_sock_open, -- cgit v1.2.3-70-g09d2