Rework channelnumber/samplesize detetion code's output variables a bit to
authorThomas Wouters <thomas@python.org>
Wed, 1 Mar 2006 22:45:36 +0000 (22:45 +0000)
committerThomas Wouters <thomas@python.org>
Wed, 1 Mar 2006 22:45:36 +0000 (22:45 +0000)
convince gcc (4.0.x) the variables are never used uninitialized (and raising
a proper exception if they ever are.)

Modules/linuxaudiodev.c
Modules/ossaudiodev.c

index f6d5b7d44b02223add9cfa7208b575e53ca62e4b..769451af8507607e6182e8cf06181ba35ea13ca9 100644 (file)
@@ -332,7 +332,6 @@ _ssize(lad_t *self, int *nchannels, int *ssize)
     default:
         return -EOPNOTSUPP;
     }
-    *nchannels = 0;
     if (ioctl(self->x_fd, SNDCTL_DSP_CHANNELS, nchannels) < 0)
         return -errno;
     return 0;
@@ -345,11 +344,11 @@ static PyObject *
 lad_bufsize(lad_t *self, PyObject *args)
 {
     audio_buf_info ai;
-    int nchannels, ssize;
+    int nchannels=0, ssize=0;
 
     if (!PyArg_ParseTuple(args, ":bufsize")) return NULL;
 
-    if (_ssize(self, &nchannels, &ssize) < 0) {
+    if (_ssize(self, &nchannels, &ssize) < 0 || !ssize || !nchannels) {
         PyErr_SetFromErrno(LinuxAudioError);
         return NULL;
     }
@@ -366,12 +365,12 @@ static PyObject *
 lad_obufcount(lad_t *self, PyObject *args)
 {
     audio_buf_info ai;
-    int nchannels, ssize;
+    int nchannels=0, ssize=0;
 
     if (!PyArg_ParseTuple(args, ":obufcount"))
         return NULL;
 
-    if (_ssize(self, &nchannels, &ssize) < 0) {
+    if (_ssize(self, &nchannels, &ssize) < 0 || !ssize || !nchannels) {
         PyErr_SetFromErrno(LinuxAudioError);
         return NULL;
     }
@@ -389,12 +388,12 @@ static PyObject *
 lad_obuffree(lad_t *self, PyObject *args)
 {
     audio_buf_info ai;
-    int nchannels, ssize;
+    int nchannels=0, ssize=0;
 
     if (!PyArg_ParseTuple(args, ":obuffree"))
         return NULL;
 
-    if (_ssize(self, &nchannels, &ssize) < 0) {
+    if (_ssize(self, &nchannels, &ssize) < 0 || !ssize || !nchannels) {
         PyErr_SetFromErrno(LinuxAudioError);
         return NULL;
     }
index 4c22b07fd866ecbdde707152467b23c1261e561d..ce8a0d07c1df2df29e3fc02f91326fe0e571c1fb 100644 (file)
@@ -569,7 +569,6 @@ _ssize(oss_audio_t *self, int *nchannels, int *ssize)
     default:
         return -EOPNOTSUPP;
     }
-    *nchannels = 0;
     if (ioctl(self->fd, SNDCTL_DSP_CHANNELS, nchannels) < 0)
         return -errno;
     return 0;
@@ -582,11 +581,11 @@ static PyObject *
 oss_bufsize(oss_audio_t *self, PyObject *args)
 {
     audio_buf_info ai;
-    int nchannels, ssize;
+    int nchannels=0, ssize=0;
 
     if (!PyArg_ParseTuple(args, ":bufsize")) return NULL;
 
-    if (_ssize(self, &nchannels, &ssize) < 0) {
+    if (_ssize(self, &nchannels, &ssize) < 0 || !nchannels || !ssize) {
         PyErr_SetFromErrno(PyExc_IOError);
         return NULL;
     }
@@ -603,12 +602,12 @@ static PyObject *
 oss_obufcount(oss_audio_t *self, PyObject *args)
 {
     audio_buf_info ai;
-    int nchannels, ssize;
+    int nchannels=0, ssize=0;
 
     if (!PyArg_ParseTuple(args, ":obufcount"))
         return NULL;
 
-    if (_ssize(self, &nchannels, &ssize) < 0) {
+    if (_ssize(self, &nchannels, &ssize) < 0 || !nchannels || !ssize) {
         PyErr_SetFromErrno(PyExc_IOError);
         return NULL;
     }
@@ -626,12 +625,12 @@ static PyObject *
 oss_obuffree(oss_audio_t *self, PyObject *args)
 {
     audio_buf_info ai;
-    int nchannels, ssize;
+    int nchannels=0, ssize=0;
 
     if (!PyArg_ParseTuple(args, ":obuffree"))
         return NULL;
 
-    if (_ssize(self, &nchannels, &ssize) < 0) {
+    if (_ssize(self, &nchannels, &ssize) < 0 || !nchannels || !ssize) {
         PyErr_SetFromErrno(PyExc_IOError);
         return NULL;
     }