Skip to content

Commit ee527d3

Browse files
committed
Free the slab buffer on error
1 parent 870cc04 commit ee527d3

File tree

1 file changed

+2
-0
lines changed
  • ports/zephyr-cp/common-hal/audiobusio

1 file changed

+2
-0
lines changed

ports/zephyr-cp/common-hal/audiobusio/I2SOut.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ static void audio_thread_func(void *self_in, void *unused1, void *unused2) {
131131
int ret = i2s_write(self->i2s_dev, next_buffer, self->block_size);
132132
if (ret < 0) {
133133
printk("i2s_write failed: %d\n", ret);
134+
k_mem_slab_free(&self->mem_slab, next_buffer);
134135
// Error writing, stop playback
135136
self->playing = false;
136137
break;
@@ -210,6 +211,7 @@ void common_hal_audiobusio_i2sout_play(audiobusio_i2sout_obj_t *self,
210211
ret = i2s_write(self->i2s_dev, buf, block_size);
211212
if (ret < 0) {
212213
printk("i2s_write failed: %d\n", ret);
214+
k_mem_slab_free(&self->mem_slab, buf);
213215
common_hal_audiobusio_i2sout_stop(self);
214216
raise_zephyr_error(ret);
215217
}

0 commit comments

Comments
 (0)