mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-29 05:40:23 -04:00
llvm-clang-analyzer: drop a few unnecessary assignments and other trivial fixes
This commit is contained in:
parent
b2606cf641
commit
f5046759cd
20 changed files with 49 additions and 59 deletions
|
|
@ -2889,7 +2889,7 @@ static void profile_set_add_auto_pair(
|
|||
else
|
||||
name = pa_sprintf_malloc("input:%s", n->name);
|
||||
|
||||
if ((p = pa_hashmap_get(ps->profiles, name))) {
|
||||
if (pa_hashmap_get(ps->profiles, name)) {
|
||||
pa_xfree(name);
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1638,7 +1638,7 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
|
|||
const char *dev_id = NULL;
|
||||
pa_sample_spec ss, requested_ss;
|
||||
pa_channel_map map;
|
||||
uint32_t nfrags, hwbuf_size, frag_size, tsched_size, tsched_watermark;
|
||||
uint32_t nfrags, frag_size, tsched_size, tsched_watermark;
|
||||
snd_pcm_uframes_t period_frames, tsched_frames;
|
||||
size_t frame_size;
|
||||
pa_bool_t use_mmap = TRUE, b, use_tsched = TRUE, d, ignore_dB = FALSE;
|
||||
|
|
@ -1673,7 +1673,6 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca
|
|||
goto fail;
|
||||
}
|
||||
|
||||
hwbuf_size = frag_size * nfrags;
|
||||
period_frames = frag_size/frame_size;
|
||||
tsched_frames = tsched_size/frame_size;
|
||||
|
||||
|
|
|
|||
|
|
@ -1483,7 +1483,7 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
|
|||
const char *dev_id = NULL;
|
||||
pa_sample_spec ss, requested_ss;
|
||||
pa_channel_map map;
|
||||
uint32_t nfrags, hwbuf_size, frag_size, tsched_size, tsched_watermark;
|
||||
uint32_t nfrags, frag_size, tsched_size, tsched_watermark;
|
||||
snd_pcm_uframes_t period_frames, tsched_frames;
|
||||
size_t frame_size;
|
||||
pa_bool_t use_mmap = TRUE, b, use_tsched = TRUE, d, ignore_dB = FALSE;
|
||||
|
|
@ -1518,7 +1518,6 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p
|
|||
goto fail;
|
||||
}
|
||||
|
||||
hwbuf_size = frag_size * nfrags;
|
||||
period_frames = frag_size/frame_size;
|
||||
tsched_frames = tsched_size/frame_size;
|
||||
|
||||
|
|
|
|||
|
|
@ -900,7 +900,7 @@ void pa_alsa_init_proplist_ctl(pa_proplist *p, const char *name) {
|
|||
snd_ctl_card_info_alloca(&info);
|
||||
|
||||
if ((err = snd_ctl_open(&ctl, name, 0)) < 0) {
|
||||
pa_log_warn("Error opening low-level control device '%s'", name);
|
||||
pa_log_warn("Error opening low-level control device '%s': %s", name, snd_strerror(err));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -435,9 +435,7 @@ static int hal_device_add_all(struct userdata *u) {
|
|||
int i;
|
||||
|
||||
for (i = 0; i < n; i++) {
|
||||
struct device *d;
|
||||
|
||||
if ((d = hal_device_add(u, udis[i]))) {
|
||||
if (hal_device_add(u, udis[i])) {
|
||||
count++;
|
||||
pa_log_debug("Loaded device %s", udis[i]);
|
||||
} else
|
||||
|
|
|
|||
|
|
@ -332,7 +332,7 @@ static void command_moved(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa
|
|||
|
||||
static void command_stream_buffer_attr_changed(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tagstruct *t, void *userdata) {
|
||||
struct userdata *u = userdata;
|
||||
uint32_t channel, maxlength, tlength, fragsize, prebuf, minreq;
|
||||
uint32_t channel, maxlength, tlength = 0, fragsize, prebuf, minreq;
|
||||
pa_usec_t usec;
|
||||
|
||||
pa_assert(pd);
|
||||
|
|
@ -1097,7 +1097,7 @@ static void sink_input_info_cb(pa_pdispatch *pd, uint32_t command, uint32_t tag
|
|||
uint32_t idx, owner_module, client, sink;
|
||||
pa_usec_t buffer_usec, sink_usec;
|
||||
const char *name, *driver, *resample_method;
|
||||
pa_bool_t mute;
|
||||
pa_bool_t mute = FALSE;
|
||||
pa_sample_spec sample_spec;
|
||||
pa_channel_map channel_map;
|
||||
pa_cvolume volume;
|
||||
|
|
@ -1345,12 +1345,11 @@ static void command_subscribe_event(pa_pdispatch *pd, uint32_t command, uint32
|
|||
/* Called from main context */
|
||||
static void start_subscribe(struct userdata *u) {
|
||||
pa_tagstruct *t;
|
||||
uint32_t tag;
|
||||
pa_assert(u);
|
||||
|
||||
t = pa_tagstruct_new(NULL, 0);
|
||||
pa_tagstruct_putu32(t, PA_COMMAND_SUBSCRIBE);
|
||||
pa_tagstruct_putu32(t, tag = u->ctag++);
|
||||
pa_tagstruct_putu32(t, u->ctag++);
|
||||
pa_tagstruct_putu32(t, PA_SUBSCRIPTION_MASK_SERVER|
|
||||
#ifdef TUNNEL_SINK
|
||||
PA_SUBSCRIPTION_MASK_SINK_INPUT|PA_SUBSCRIPTION_MASK_SINK
|
||||
|
|
@ -1526,7 +1525,7 @@ static void setup_complete_callback(pa_pdispatch *pd, uint32_t command, uint32_t
|
|||
|
||||
reply = pa_tagstruct_new(NULL, 0);
|
||||
pa_tagstruct_putu32(reply, PA_COMMAND_SET_CLIENT_NAME);
|
||||
pa_tagstruct_putu32(reply, tag = u->ctag++);
|
||||
pa_tagstruct_putu32(reply, u->ctag++);
|
||||
|
||||
if (u->version >= 13) {
|
||||
pa_proplist *pl;
|
||||
|
|
@ -1753,7 +1752,6 @@ static void on_connection(pa_socket_client *sc, pa_iochannel *io, void *userdata
|
|||
static void sink_set_volume(pa_sink *sink) {
|
||||
struct userdata *u;
|
||||
pa_tagstruct *t;
|
||||
uint32_t tag;
|
||||
|
||||
pa_assert(sink);
|
||||
u = sink->userdata;
|
||||
|
|
@ -1761,7 +1759,7 @@ static void sink_set_volume(pa_sink *sink) {
|
|||
|
||||
t = pa_tagstruct_new(NULL, 0);
|
||||
pa_tagstruct_putu32(t, PA_COMMAND_SET_SINK_INPUT_VOLUME);
|
||||
pa_tagstruct_putu32(t, tag = u->ctag++);
|
||||
pa_tagstruct_putu32(t, u->ctag++);
|
||||
pa_tagstruct_putu32(t, u->device_index);
|
||||
pa_tagstruct_put_cvolume(t, &sink->real_volume);
|
||||
pa_pstream_send_tagstruct(u->pstream, t);
|
||||
|
|
@ -1771,7 +1769,6 @@ static void sink_set_volume(pa_sink *sink) {
|
|||
static void sink_set_mute(pa_sink *sink) {
|
||||
struct userdata *u;
|
||||
pa_tagstruct *t;
|
||||
uint32_t tag;
|
||||
|
||||
pa_assert(sink);
|
||||
u = sink->userdata;
|
||||
|
|
@ -1782,7 +1779,7 @@ static void sink_set_mute(pa_sink *sink) {
|
|||
|
||||
t = pa_tagstruct_new(NULL, 0);
|
||||
pa_tagstruct_putu32(t, PA_COMMAND_SET_SINK_INPUT_MUTE);
|
||||
pa_tagstruct_putu32(t, tag = u->ctag++);
|
||||
pa_tagstruct_putu32(t, u->ctag++);
|
||||
pa_tagstruct_putu32(t, u->device_index);
|
||||
pa_tagstruct_put_boolean(t, !!sink->muted);
|
||||
pa_pstream_send_tagstruct(u->pstream, t);
|
||||
|
|
|
|||
|
|
@ -57,7 +57,6 @@ int pa_base64_encode(const void *data, int size, char **str)
|
|||
|
||||
p = s = pa_xnew(char, size * 4 / 3 + 4);
|
||||
q = (const unsigned char *) data;
|
||||
i = 0;
|
||||
for (i = 0; i < size;) {
|
||||
c = q[i++];
|
||||
c *= 256;
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ static void publish_servers(struct userdata *u, pa_strlist *l) {
|
|||
|
||||
l = pa_strlist_reverse(l);
|
||||
s = pa_strlist_tostring(l);
|
||||
l = pa_strlist_reverse(l);
|
||||
pa_strlist_reverse(l);
|
||||
|
||||
pa_x11_set_prop(pa_x11_wrapper_get_display(u->x11_wrapper), "PULSE_SERVER", s);
|
||||
pa_xfree(s);
|
||||
|
|
|
|||
|
|
@ -120,10 +120,8 @@ static char* utf8_validate(const char *str, char *output) {
|
|||
size = 4;
|
||||
min = (1 << 16);
|
||||
val = (uint32_t) (*p & 0x07);
|
||||
} else {
|
||||
size = 1;
|
||||
} else
|
||||
goto error;
|
||||
}
|
||||
|
||||
p++;
|
||||
if (!is_continuation_char(*p))
|
||||
|
|
|
|||
|
|
@ -155,7 +155,7 @@ pa_volume_t pa_cvolume_min(const pa_cvolume *a) {
|
|||
|
||||
pa_volume_t pa_cvolume_max_mask(const pa_cvolume *a, const pa_channel_map *cm, pa_channel_position_mask_t mask) {
|
||||
pa_volume_t m = PA_VOLUME_MUTED;
|
||||
unsigned c, n;
|
||||
unsigned c;
|
||||
|
||||
pa_assert(a);
|
||||
|
||||
|
|
@ -164,7 +164,7 @@ pa_volume_t pa_cvolume_max_mask(const pa_cvolume *a, const pa_channel_map *cm, p
|
|||
|
||||
pa_return_val_if_fail(pa_cvolume_compatible_with_channel_map(a, cm), PA_VOLUME_MUTED);
|
||||
|
||||
for (c = n = 0; c < a->channels; c++) {
|
||||
for (c = 0; c < a->channels; c++) {
|
||||
|
||||
if (!(PA_CHANNEL_POSITION_MASK(cm->map[c]) & mask))
|
||||
continue;
|
||||
|
|
@ -178,7 +178,7 @@ pa_volume_t pa_cvolume_max_mask(const pa_cvolume *a, const pa_channel_map *cm, p
|
|||
|
||||
pa_volume_t pa_cvolume_min_mask(const pa_cvolume *a, const pa_channel_map *cm, pa_channel_position_mask_t mask) {
|
||||
pa_volume_t m = PA_VOLUME_MAX;
|
||||
unsigned c, n;
|
||||
unsigned c;
|
||||
|
||||
pa_assert(a);
|
||||
|
||||
|
|
@ -187,7 +187,7 @@ pa_volume_t pa_cvolume_min_mask(const pa_cvolume *a, const pa_channel_map *cm, p
|
|||
|
||||
pa_return_val_if_fail(pa_cvolume_compatible_with_channel_map(a, cm), PA_VOLUME_MUTED);
|
||||
|
||||
for (c = n = 0; c < a->channels; c++) {
|
||||
for (c = 0; c < a->channels; c++) {
|
||||
|
||||
if (!(PA_CHANNEL_POSITION_MASK(cm->map[c]) & mask))
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -591,13 +591,13 @@ static int set_scheduler(int rtprio) {
|
|||
sp.sched_priority = rtprio;
|
||||
|
||||
#ifdef SCHED_RESET_ON_FORK
|
||||
if ((r = pthread_setschedparam(pthread_self(), SCHED_RR|SCHED_RESET_ON_FORK, &sp)) == 0) {
|
||||
if (pthread_setschedparam(pthread_self(), SCHED_RR|SCHED_RESET_ON_FORK, &sp) == 0) {
|
||||
pa_log_debug("SCHED_RR|SCHED_RESET_ON_FORK worked.");
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
if ((r = pthread_setschedparam(pthread_self(), SCHED_RR, &sp)) == 0) {
|
||||
if (pthread_setschedparam(pthread_self(), SCHED_RR, &sp) == 0) {
|
||||
pa_log_debug("SCHED_RR worked.");
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -786,7 +786,6 @@ int pa_match(const char *expr, const char *v) {
|
|||
/* Try to parse a boolean string value.*/
|
||||
int pa_parse_boolean(const char *v) {
|
||||
const char *expr;
|
||||
int r;
|
||||
pa_assert(v);
|
||||
|
||||
/* First we check language independant */
|
||||
|
|
@ -798,12 +797,12 @@ int pa_parse_boolean(const char *v) {
|
|||
/* And then we check language dependant */
|
||||
if ((expr = nl_langinfo(YESEXPR)))
|
||||
if (expr[0])
|
||||
if ((r = pa_match(expr, v)) > 0)
|
||||
if (pa_match(expr, v) > 0)
|
||||
return 1;
|
||||
|
||||
if ((expr = nl_langinfo(NOEXPR)))
|
||||
if (expr[0])
|
||||
if ((r = pa_match(expr, v)) > 0)
|
||||
if (pa_match(expr, v) > 0)
|
||||
return 0;
|
||||
|
||||
errno = EINVAL;
|
||||
|
|
@ -1195,7 +1194,7 @@ char* pa_strip_nl(char *s) {
|
|||
|
||||
/* Create a temporary lock file and lock it. */
|
||||
int pa_lock_lockfile(const char *fn) {
|
||||
int fd = -1;
|
||||
int fd;
|
||||
pa_assert(fn);
|
||||
|
||||
for (;;) {
|
||||
|
|
@ -1238,8 +1237,6 @@ int pa_lock_lockfile(const char *fn) {
|
|||
fd = -1;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
fd = -1;
|
||||
}
|
||||
|
||||
return fd;
|
||||
|
|
|
|||
|
|
@ -130,15 +130,22 @@ void pa_flist_free(pa_flist *l, pa_free_cb_t free_cb) {
|
|||
}
|
||||
|
||||
int pa_flist_push(pa_flist*l, void *p) {
|
||||
unsigned idx, n, len;
|
||||
unsigned idx, n;
|
||||
pa_atomic_ptr_t*cells;
|
||||
#ifdef PROFILE
|
||||
unsigned len;
|
||||
#endif
|
||||
|
||||
pa_assert(l);
|
||||
pa_assert(p);
|
||||
|
||||
cells = PA_FLIST_CELLS(l);
|
||||
|
||||
n = len = l->size + N_EXTRA_SCAN - (unsigned) pa_atomic_load(&l->length);
|
||||
n = l->size + N_EXTRA_SCAN - (unsigned) pa_atomic_load(&l->length);
|
||||
|
||||
#ifdef PROFILE
|
||||
len = n;
|
||||
#endif
|
||||
|
||||
_Y;
|
||||
idx = reduce(l, (unsigned) pa_atomic_load(&l->write_idx));
|
||||
|
|
@ -171,14 +178,21 @@ int pa_flist_push(pa_flist*l, void *p) {
|
|||
}
|
||||
|
||||
void* pa_flist_pop(pa_flist*l) {
|
||||
unsigned idx, len, n;
|
||||
unsigned idx, n;
|
||||
pa_atomic_ptr_t *cells;
|
||||
#ifdef PROFILE
|
||||
unsigned len;
|
||||
#endif
|
||||
|
||||
pa_assert(l);
|
||||
|
||||
cells = PA_FLIST_CELLS(l);
|
||||
|
||||
n = len = (unsigned) pa_atomic_load(&l->length) + N_EXTRA_SCAN;
|
||||
n = (unsigned) pa_atomic_load(&l->length) + N_EXTRA_SCAN;
|
||||
|
||||
#ifdef PROFILE
|
||||
len = n;
|
||||
#endif
|
||||
|
||||
_Y;
|
||||
idx = reduce(l, (unsigned) pa_atomic_load(&l->read_idx));
|
||||
|
|
|
|||
|
|
@ -200,13 +200,13 @@ pa_memtrap *pa_memtrap_update(pa_memtrap *m, const void *start, size_t size) {
|
|||
goto unlock;
|
||||
|
||||
memtrap_unlink(m, j);
|
||||
j = pa_aupdate_write_swap(aupdate);
|
||||
pa_aupdate_write_swap(aupdate);
|
||||
|
||||
m->start = (void*) start;
|
||||
m->size = size;
|
||||
pa_atomic_store(&m->bad, 0);
|
||||
|
||||
j = pa_aupdate_write_swap(aupdate);
|
||||
pa_assert_se(pa_aupdate_write_swap(aupdate) == j);
|
||||
memtrap_link(m, j);
|
||||
|
||||
unlock:
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ static pid_t read_pid(const char *fn, int fd) {
|
|||
}
|
||||
|
||||
static int open_pid_file(const char *fn, int mode) {
|
||||
int fd = -1;
|
||||
int fd;
|
||||
|
||||
pa_assert(fn);
|
||||
|
||||
|
|
@ -123,8 +123,6 @@ static int open_pid_file(const char *fn, int mode) {
|
|||
fd = -1;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
fd = -1;
|
||||
}
|
||||
|
||||
return fd;
|
||||
|
|
|
|||
|
|
@ -771,7 +771,6 @@ static int esd_proto_stream_pan(connection *c, esd_proto_t request, const void *
|
|||
|
||||
memcpy(&rvolume, data, sizeof(uint32_t));
|
||||
rvolume = PA_MAYBE_UINT32_SWAP(c->swap_byte_order, rvolume);
|
||||
data = (const char*)data + sizeof(uint32_t);
|
||||
|
||||
if ((conn = pa_idxset_get_by_index(c->protocol->connections, idx)) && conn->sink_input) {
|
||||
pa_cvolume volume;
|
||||
|
|
@ -809,7 +808,6 @@ static int esd_proto_sample_pan(connection *c, esd_proto_t request, const void *
|
|||
|
||||
memcpy(&rvolume, data, sizeof(uint32_t));
|
||||
rvolume = PA_MAYBE_UINT32_SWAP(c->swap_byte_order, rvolume);
|
||||
data = (const char*)data + sizeof(uint32_t);
|
||||
|
||||
volume.values[0] = (lvolume*PA_VOLUME_NORM)/ESD_VOLUME_BASE;
|
||||
volume.values[1] = (rvolume*PA_VOLUME_NORM)/ESD_VOLUME_BASE;
|
||||
|
|
@ -1123,7 +1121,7 @@ static int do_read(connection *c) {
|
|||
ssize_t r;
|
||||
size_t l;
|
||||
void *p;
|
||||
size_t space;
|
||||
size_t space = 0;
|
||||
|
||||
pa_assert(c->input_memblockq);
|
||||
|
||||
|
|
|
|||
|
|
@ -628,7 +628,6 @@ static record_stream* record_stream_new(
|
|||
|
||||
record_stream *s;
|
||||
pa_source_output *source_output = NULL;
|
||||
size_t base;
|
||||
pa_source_output_new_data data;
|
||||
|
||||
pa_assert(c);
|
||||
|
|
@ -682,7 +681,7 @@ static record_stream* record_stream_new(
|
|||
0,
|
||||
s->buffer_attr.maxlength,
|
||||
0,
|
||||
base = pa_frame_size(&source_output->sample_spec),
|
||||
pa_frame_size(&source_output->sample_spec),
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@ static int do_read(connection *c) {
|
|||
ssize_t r;
|
||||
size_t l;
|
||||
void *p;
|
||||
size_t space;
|
||||
size_t space = 0;
|
||||
|
||||
connection_assert_ref(c);
|
||||
|
||||
|
|
|
|||
|
|
@ -1152,7 +1152,6 @@ pa_bool_t pa_sink_input_may_move_to(pa_sink_input *i, pa_sink *dest) {
|
|||
/* Called from main context */
|
||||
int pa_sink_input_start_move(pa_sink_input *i) {
|
||||
pa_source_output *o, *p = NULL;
|
||||
pa_sink *origin;
|
||||
int r;
|
||||
|
||||
pa_sink_input_assert_ref(i);
|
||||
|
|
@ -1166,8 +1165,6 @@ int pa_sink_input_start_move(pa_sink_input *i) {
|
|||
if ((r = pa_hook_fire(&i->core->hooks[PA_CORE_HOOK_SINK_INPUT_MOVE_START], i)) < 0)
|
||||
return r;
|
||||
|
||||
origin = i->sink;
|
||||
|
||||
/* Kill directly connected outputs */
|
||||
while ((o = pa_idxset_first(i->direct_outputs, NULL))) {
|
||||
pa_assert(o != p);
|
||||
|
|
|
|||
|
|
@ -202,8 +202,6 @@ static void connect_io_cb(pa_mainloop_api*m, pa_io_event *e, int fd, pa_io_event
|
|||
}
|
||||
|
||||
static int do_connect(pa_socket_client *c, const struct sockaddr *sa, socklen_t len) {
|
||||
int r;
|
||||
|
||||
pa_assert(c);
|
||||
pa_assert(PA_REFCNT_VALUE(c) >= 1);
|
||||
pa_assert(sa);
|
||||
|
|
@ -211,7 +209,7 @@ static int do_connect(pa_socket_client *c, const struct sockaddr *sa, socklen_t
|
|||
|
||||
pa_make_fd_nonblock(c->fd);
|
||||
|
||||
if ((r = connect(c->fd, sa, len)) < 0) {
|
||||
if (connect(c->fd, sa, len) < 0) {
|
||||
#ifdef OS_IS_WIN32
|
||||
if (WSAGetLastError() != EWOULDBLOCK) {
|
||||
pa_log_debug("connect(): %d", WSAGetLastError());
|
||||
|
|
|
|||
|
|
@ -406,7 +406,6 @@ static void context_state_callback(pa_context *c, void *userdata) {
|
|||
break;
|
||||
|
||||
case PA_CONTEXT_READY: {
|
||||
int r;
|
||||
pa_buffer_attr buffer_attr;
|
||||
|
||||
pa_assert(c);
|
||||
|
|
@ -443,13 +442,13 @@ static void context_state_callback(pa_context *c, void *userdata) {
|
|||
|
||||
if (mode == PLAYBACK) {
|
||||
pa_cvolume cv;
|
||||
if ((r = pa_stream_connect_playback(stream, device, latency > 0 ? &buffer_attr : NULL, flags, volume_is_set ? pa_cvolume_set(&cv, sample_spec.channels, volume) : NULL, NULL)) < 0) {
|
||||
if (pa_stream_connect_playback(stream, device, latency > 0 ? &buffer_attr : NULL, flags, volume_is_set ? pa_cvolume_set(&cv, sample_spec.channels, volume) : NULL, NULL) < 0) {
|
||||
pa_log(_("pa_stream_connect_playback() failed: %s"), pa_strerror(pa_context_errno(c)));
|
||||
goto fail;
|
||||
}
|
||||
|
||||
} else {
|
||||
if ((r = pa_stream_connect_record(stream, device, latency > 0 ? &buffer_attr : NULL, flags)) < 0) {
|
||||
if (pa_stream_connect_record(stream, device, latency > 0 ? &buffer_attr : NULL, flags) < 0) {
|
||||
pa_log(_("pa_stream_connect_record() failed: %s"), pa_strerror(pa_context_errno(c)));
|
||||
goto fail;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue