diff options
-rw-r--r-- | src/modules/rkt/rkt.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/src/modules/rkt/rkt.c b/src/modules/rkt/rkt.c index 41c47ad..23e2e71 100644 --- a/src/modules/rkt/rkt.c +++ b/src/modules/rkt/rkt.c @@ -171,15 +171,13 @@ typedef struct rkt_pipe_t { } ptr; const struct sync_track *track; - char track_name[]; } rkt_pipe_t; int rkt_stream_pipe_ctor(void *context, til_stream_t *stream, const void *owner, const void *owner_foo, const char *parent_path, uint32_t parent_hash, const til_tap_t *tap, const void **res_owner, const void **res_owner_foo, const til_tap_t **res_driving_tap) { rkt_context_t *ctxt = context; - rkt_pipe_t *rkt_pipe; - size_t track_name_len; + rkt_pipe_t *rkt_pipe; assert(stream); assert(tap); @@ -191,19 +189,14 @@ int rkt_stream_pipe_ctor(void *context, til_stream_t *stream, const void *owner, tap->type != TIL_TAP_TYPE_DOUBLE) return 0; /* not interesting to us */ - /* we take ownership, and create our own tap and rocket track to stow @ owner_foo */ + /* assume pipe ownership, create driving tap and rocket track to stow @ owner_foo */ - /* rocket has its own syntax for track names so instead of consttructing a concatenated path - * in til_stream_pipe_t and passing it to the ctor, just construct our own in the end of rkt_pipe_t - */ - track_name_len = strlen(parent_path) + 1 + strlen(tap->name) + 1; - rkt_pipe = calloc(1, sizeof(rkt_pipe_t) + track_name_len); + rkt_pipe = calloc(1, sizeof(rkt_pipe_t)); if (!rkt_pipe) return -ENOMEM; - snprintf(rkt_pipe->track_name, track_name_len, "%s:%s", parent_path, tap->name); rkt_pipe->tap = til_tap_init(ctxt, tap->type, &rkt_pipe->ptr, 1, &rkt_pipe->var, tap->name); - rkt_pipe->track = sync_get_track(ctxt->sync_device, rkt_pipe->track_name); + rkt_pipe->track = sync_get_trackf(ctxt->sync_device, "%s:%s", parent_path, tap->name); *res_owner = ctxt; *res_owner_foo = rkt_pipe; |