]> git.alsa-project.org Git - alsa-oss.git/commitdiff
- fixed open problem (sw_params allocation)
authorJaroslav Kysela <perex@perex.cz>
Sun, 29 Feb 2004 19:33:54 +0000 (19:33 +0000)
committerJaroslav Kysela <perex@perex.cz>
Sun, 29 Feb 2004 19:33:54 +0000 (19:33 +0000)
- fixed memory leak (close)
- 1.0.3a version

alsa/pcm.c
configure.in

index c5c6377f9080f458c48007ff6ccd355077d787f0..2463cd38246faaf234be33198c6154a587c9a760 100644 (file)
@@ -428,6 +428,11 @@ int lib_oss_pcm_close(int fd)
                return -1;
        }
        dsp = xfd->dsp;
+       for (k = 0; k < 2; ++k) {
+               oss_dsp_stream_t *str = &dsp->streams[k];
+               if (str->sw_params)
+                       snd_pcm_sw_params_free(str->sw_params);
+       }
        for (k = 0; k < 2; ++k) {
                int err;
                oss_dsp_stream_t *str = &dsp->streams[k];
@@ -537,6 +542,10 @@ static int oss_dsp_open(int card, int device, int oflag, mode_t mode)
                result = snd_pcm_sw_params_malloc(&dsp->streams[k].sw_params);
                if (result < 0)
                        goto _error;
+       }
+       for (k = 0; k < 2; ++k) {
+               if (!(streams & (1 << k)))
+                       continue;
                result = snd_pcm_open(&dsp->streams[k].pcm, name, k, pcm_mode);
                if (result < 0) {
                        if (k == 1 && dsp->streams[0].pcm != NULL) {
index 8865f402f7ee3935997cbcbc50420cb60c517dfc..7d49512e435f83489f3edf12ea5cd680addc5627 100644 (file)
@@ -1,5 +1,5 @@
 AC_INIT(alsa/alsa-oss.c)
-AM_INIT_AUTOMAKE(alsa-oss, 1.0.3)
+AM_INIT_AUTOMAKE(alsa-oss, 1.0.3a)
 
 AC_PREFIX_DEFAULT(/usr)