From 9948772a6ba90200cbef7bcc68a110638c3c605c Mon Sep 17 00:00:00 2001 From: Monty Date: Mon, 26 Apr 2010 14:24:08 +0000 Subject: [PATCH] One of the Mozilla fixes for #1573 (working around liboggplay ignoring an error return value) broke chaining by causing vorbis_synthesis_init() to fail on a second call. Fixed. svn path=/trunk/vorbis/; revision=17177 --- lib/block.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/block.c b/lib/block.c index 88d1e43..4f78360 100644 --- a/lib/block.c +++ b/lib/block.c @@ -232,16 +232,17 @@ static int _vds_shared_init(vorbis_dsp_state *v,vorbis_info *vi,int encp){ v->analysisp=1; }else{ /* finish the codebooks */ - if(!ci->fullbooks) + if(!ci->fullbooks){ ci->fullbooks=_ogg_calloc(ci->books,sizeof(*ci->fullbooks)); - for(i=0;ibooks;i++){ - if(ci->book_param[i]==NULL) - goto abort_books; - if(vorbis_book_init_decode(ci->fullbooks+i,ci->book_param[i])) - goto abort_books; + for(i=0;ibooks;i++){ + if(ci->book_param[i]==NULL) + goto abort_books; + if(vorbis_book_init_decode(ci->fullbooks+i,ci->book_param[i])) + goto abort_books; /* decode codebooks are now standalone after init */ - vorbis_staticbook_destroy(ci->book_param[i]); - ci->book_param[i]=NULL; + vorbis_staticbook_destroy(ci->book_param[i]); + ci->book_param[i]=NULL; + } } } -- 2.7.4