Commit 4c4cbe66 authored by Oswald Buddenhagen's avatar Oswald Buddenhagen Committed by Takashi Iwai
Browse files

ALSA: emux: simplify snd_sf_list.callback handling



Both drivers provide both sample_new and sample_free, and it makes no
sense to pretend that they could not. In fact, load_data() would already
crash if sample_new was null. So remove the remaining null checks.

Contrary to that, the emu10k1 driver actually has a null sample_reset,
though I'm not convinced that this inconsistency is justified.

Signed-off-by: default avatarOswald Buddenhagen <oswald.buddenhagen@gmx.de>
Message-ID: <20240406064830.1029573-18-oswald.buddenhagen@gmx.de>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 62001ad1
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -94,9 +94,7 @@ int snd_emux_register(struct snd_emux *emu, struct snd_card *card, int index, ch
	/* create soundfont list */
	memset(&sf_cb, 0, sizeof(sf_cb));
	sf_cb.private_data = emu;
	if (emu->ops.sample_new)
	sf_cb.sample_new = sf_sample_new;
	if (emu->ops.sample_free)
	sf_cb.sample_free = sf_sample_free;
	if (emu->ops.sample_reset)
		sf_cb.sample_reset = sf_sample_reset;
+5 −7
Original line number Diff line number Diff line
@@ -1051,7 +1051,7 @@ load_guspatch(struct snd_sf_list *sflist, const char __user *data, long count)
	/*
	 * load wave data
	 */
	if (smp->v.size > 0 && sflist->callback.sample_new) {
	if (smp->v.size > 0) {
		rc = sflist->callback.sample_new
			(sflist->callback.private_data, smp, sflist->memhdr,
			 data, count);
@@ -1416,7 +1416,6 @@ snd_sf_clear(struct snd_sf_list *sflist)
		}
		for (sp = sf->samples; sp; sp = nextsp) {
			nextsp = sp->next;
			if (sflist->callback.sample_free)
			sflist->callback.sample_free(sflist->callback.private_data,
						     sp, sflist->memhdr);
			kfree(sp);
@@ -1520,7 +1519,6 @@ snd_soundfont_remove_unlocked(struct snd_sf_list *sflist)
			nextsp = sp->next;
			sf->samples = nextsp;
			sflist->mem_used -= sp->v.truesize;
			if (sflist->callback.sample_free)
			sflist->callback.sample_free(sflist->callback.private_data,
						     sp, sflist->memhdr);
			kfree(sp);