for (i = 0; i < objd_table.allocated_len; i++) {
struct obj *obj = _objd_get(i);
- const struct objd_ops *ops;
- if (!obj)
- continue;
- ops = obj->u.s.ops;
- if (ops->release)
- ops->release(i);
+ (void) objd_unref(i);
}
free(objd_table.array);
objd_table.array = NULL;
chan_param->subbuf_size,
chan_param->num_subbuf,
chan_param->switch_timer_interval,
- chan_param->read_timer_interval);
+ chan_param->read_timer_interval,
+ &chan_param->shm_fd,
+ &chan_param->wait_fd,
+ &chan_param->memory_map_size);
if (!chan) {
ret = -EINVAL;
goto chan_error;
buf = priv->buf;
channel = priv->ltt_chan;
free(priv);
+ channel->ops->buffer_read_close(buf, channel->handle);
return objd_unref(channel->objd);
}