}
groups.pgroups = (snd_mixer_gid_t *)g_malloc(groups.groups_over
*sizeof(snd_mixer_eid_t));
- if( groups.pgroups == NULL ) {
+ if( groups.pgroups == NULL && groups.groups_over) {
fprintf(stderr,nomem_msg);
snd_ctl_close(p_handle);
snd_mixer_close(m_handle);
}
es.pelements = (snd_mixer_eid_t *)g_malloc(
es.elements_over * sizeof(snd_mixer_eid_t));
- if( es.pelements == NULL ) {
+ if( es.pelements == NULL && es.elements_over) {
fprintf(stderr,nomem_msg);
snd_ctl_close(p_handle);
snd_mixer_close(m_handle);
return -1;
}
es_nums = (int *)g_malloc(es.elements * sizeof(int));
- if( es_nums == NULL ) {
+ if( es_nums == NULL && es.elements) {
fprintf(stderr,nomem_msg);
snd_ctl_close(p_handle);
snd_mixer_close(m_handle);
}
group->g.pelements = (snd_mixer_eid_t *)g_malloc(
group->g.elements_over*sizeof(snd_mixer_eid_t));
- if( group->g.pelements == NULL ) {
+ if( group->g.pelements == NULL && group->g.elements_over) {
snd_ctl_close(p_handle);
fprintf(stderr,nomem_msg);
snd_mixer_close(m_handle);
}
group->e=(s_element_t *)g_malloc(group->g.elements_size*
sizeof(s_element_t));
- if( group->e == NULL ) {
+ if( group->e == NULL && group->g.elements_size) {
fprintf(stderr,nomem_msg);
snd_ctl_close(p_handle);
snd_mixer_close(m_handle);
w = (int)(1.5 *
(float)card[i].mixer[j].info.elements /
(float)card[i].mixer[j].info.groups);
-
- /* Compute the number of groups in a column */
- col = (card[i].mixer[j].info.groups + w - 1)/ w;
+ if (w == 0)
+ col = 0;
+ else
+ /* Compute the number of groups in a column */
+ col = (card[i].mixer[j].info.groups + w - 1)/ w;
/* Create the main bounding box */
hbox = gtk_hbox_new(FALSE, 0);