summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBertrik Sikken <bertrik@sikken.nl>2010-08-23 20:09:58 +0000
committerBertrik Sikken <bertrik@sikken.nl>2010-08-23 20:09:58 +0000
commite70bc182cf86799e1e5fdc5ca7a29b74a860d864 (patch)
tree63af7fa2d41156e5feecf6d8ff3e45848060a822
parent8d5f159687b6abf3b5ad6b1681701a1b80423d92 (diff)
downloadrockbox-e70bc182cf86799e1e5fdc5ca7a29b74a860d864.tar.gz
rockbox-e70bc182cf86799e1e5fdc5ca7a29b74a860d864.zip
Reinitialise ogg_malloc system on each track change with the vorbis codec - part of FS #11533 by me
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27866 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/codecs/vorbis.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/apps/codecs/vorbis.c b/apps/codecs/vorbis.c
index 831021fe70..7435434721 100644
--- a/apps/codecs/vorbis.c
+++ b/apps/codecs/vorbis.c
@@ -127,8 +127,6 @@ enum codec_status codec_main(void)
127 goto exit; 127 goto exit;
128 } 128 }
129 129
130 ogg_malloc_init();
131
132#if defined(CPU_ARM) || defined(CPU_COLDFIRE) || defined(CPU_MIPS) 130#if defined(CPU_ARM) || defined(CPU_COLDFIRE) || defined(CPU_MIPS)
133 if (setjmp(rb_jump_buf) != 0) { 131 if (setjmp(rb_jump_buf) != 0) {
134 /* malloc failed; skip to next track */ 132 /* malloc failed; skip to next track */
@@ -138,6 +136,8 @@ enum codec_status codec_main(void)
138#endif 136#endif
139 137
140next_track: 138next_track:
139 ogg_malloc_init();
140
141 while (!*ci->taginfo_ready && !ci->stop_codec) 141 while (!*ci->taginfo_ready && !ci->stop_codec)
142 ci->sleep(1); 142 ci->sleep(1);
143 143
@@ -244,6 +244,7 @@ done:
244 DEBUGF("Vorbis: Memory max: %u\n", get_max_size(buf)); 244 DEBUGF("Vorbis: Memory max: %u\n", get_max_size(buf));
245 } 245 }
246#endif 246#endif
247 ogg_malloc_destroy();
247 248
248 if (ci->request_next_track()) { 249 if (ci->request_next_track()) {
249 /* Clean things up for the next track */ 250 /* Clean things up for the next track */
@@ -256,6 +257,5 @@ done:
256 } 257 }
257 258
258exit: 259exit:
259 ogg_malloc_destroy();
260 return error; 260 return error;
261} 261}