summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2014-10-02 10:13:14 +0200
committerBent Bisballe Nyeng <deva@aasimon.org>2014-10-02 10:13:14 +0200
commit596a9171c457771ba80b903acdebb7714391fecc (patch)
tree7ef4e4f18ea004202df20e16f0da879083754315 /src
parentecb0d28d90f58cd6b64a5111e0092c699fd1f280 (diff)
Fix getMuted() to not actually *set* mute state. Fix out-of-memory segfault.
Diffstat (limited to 'src')
-rw-r--r--src/audioio.cc13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/audioio.cc b/src/audioio.cc
index eec9836..55e0b90 100644
--- a/src/audioio.cc
+++ b/src/audioio.cc
@@ -77,16 +77,13 @@ struct aio_t *aio_init(int *err,
return NULL;
}
- struct aio_t *h = new aio_t;
- memset(h, 0, sizeof(struct aio_t));
- h->magic = MAGIC;
-
-
+ struct aio_t *h = (struct aio_t*)calloc(sizeof(struct aio_t), 1);
if(h == NULL) {
*err = OUT_OF_MEMORY;
return NULL;
}
+ h->magic = MAGIC;
h->device = new Device(device);
if(playback_device != NULL && strlen(playback_device) > 0) {
@@ -129,7 +126,7 @@ struct aio_t *aio_init(int *err,
if(h->source_mixer) delete h->source_mixer;
if(h->sink) delete h->sink;
if(h->sink_mixer) delete h->sink_mixer;
- delete h;
+ free(h);
return NULL;
}
@@ -290,7 +287,7 @@ int aio_get_mute(struct aio_t *h, const char *name, int *muted)
return NO_SUCH_CHANNEL;
}
- m->setMuted(muted);
+ *muted = m->muted()?1:0;
return 0;
}
@@ -324,7 +321,7 @@ int aio_close(struct aio_t *h)
if(h->source_mixer) delete h->source_mixer;
if(h->sink) delete h->sink;
if(h->sink_mixer) delete h->sink_mixer;
- delete h;
+ free(h);
return 0;
}