Exemple #1
0
SRD_PRIV void srd_inst_free_all(GSList *stack)
{
	GSList *l;
	struct srd_decoder_inst *di;

	di = NULL;
	for (l = stack ? stack : di_list; di == NULL && l != NULL; l = l->next) {
		di = l->data;
		if (di->next_di)
			srd_inst_free_all(di->next_di);
		srd_inst_free(di);
	}
	if (!stack) {
		g_slist_free(di_list);
		di_list = NULL;
	}
}
Exemple #2
0
/** @private */
SRD_PRIV void srd_inst_free_all(struct srd_session *sess, GSList *stack)
{
	GSList *l;
	struct srd_decoder_inst *di;

	if (session_is_valid(sess) != SRD_OK) {
		srd_err("Invalid session.");
		return;
	}

	di = NULL;
	for (l = stack ? stack : sess->di_list; di == NULL && l != NULL; l = l->next) {
		di = l->data;
		if (di->next_di)
			srd_inst_free_all(sess, di->next_di);
		srd_inst_free(di);
	}
	if (!stack) {
		g_slist_free(sess->di_list);
		sess->di_list = NULL;
	}
}