コード例 #1
0
ファイル: tree.c プロジェクト: kolab-groupware/cyrus-imapd
void free_test(test_t *t)
{
    if (t == NULL) return;

    switch (t->type) {
    case ANYOF:
    case ALLOF:
        free_tl(t->u.tl);
        break;

    case EXISTS:
        strarray_free(t->u.sl);
        break;

    case SIZE:
    case SFALSE:
    case STRUE:
        break;

    case HASFLAG:
    case HEADER:
        free(t->u.h.comparator);
        strarray_free(t->u.h.sl);
        strarray_free(t->u.h.pl);
        break;

    case ADDRESS:
    case ENVELOPE:
        free(t->u.ae.comparator);
        strarray_free(t->u.ae.sl);
        strarray_free(t->u.ae.pl);
        break;

    case BODY:
        free(t->u.b.comparator);
        strarray_free(t->u.b.content_types);
        strarray_free(t->u.b.pl);
        break;

    case NOT:
        free_test(t->u.t);
        break;

    case DATE:
        free(t->u.dt.header_name);
        /* fall-through */
    case CURRENTDATE:
        free(t->u.dt.comparator);
        free(t->u.dt.zone);
        strarray_free(t->u.dt.kl);
        break;
    }

    free(t);
}
コード例 #2
0
ファイル: automata.c プロジェクト: mrLite/C-ohjelmointi
void free_automaton(automaton* A) {
	int* final_states = A->final_states;
	s_table_element* symbol_table = A->symbol_table;
	state* state_table = A->state_table;
	int state_c = A->states;
	
	free(final_states);
	free(symbol_table);
	for(int i = 0; i < state_c; ++i) {
		free_tl(&state_table[i]);
	}
	free(state_table);
	return;
}
コード例 #3
0
ファイル: tree.c プロジェクト: pmhahn/cyrus-imapd
void free_test(test_t *t)
{
    if (t == NULL) return;

    switch (t->type) {
    case ANYOF:
    case ALLOF:
	free_tl(t->u.tl);
	break;

    case EXISTS:
	strarray_free(t->u.sl);
	break;

    case SIZE:
    case SFALSE:
    case STRUE:
	break;

    case HEADER:
	strarray_free(t->u.h.sl);
	strarray_free(t->u.h.pl);
	
	break;

    case ADDRESS:
    case ENVELOPE:
	free(t->u.ae.comparator);
	strarray_free(t->u.ae.sl);
	strarray_free(t->u.ae.pl);
	break;

    case BODY:
	strarray_free(t->u.b.content_types);
	strarray_free(t->u.b.pl);
	break;

    case NOT:
	free_test(t->u.t);
	break;
    }

    free(t);
}
コード例 #4
0
ファイル: tree.c プロジェクト: HaikuArchives/Beam
void free_test(test_t *t)
{
    if (t == NULL) return;

    switch (t->type) {
    case ANYOF:
    case ALLOF:
	free_tl(t->u.tl);
	break;

    case EXISTS:
	free_sl(t->u.sl);
	break;

    case SIZE:
    case SFALSE:
    case STRUE:
	break;

    case HEADER:
	free_sl(t->u.h.sl);
	free_pl(t->u.h.pl, t->u.h.comptag);
	break;

    case ADDRESS:
	free_sl(t->u.ae.sl);
	free_pl(t->u.ae.pl, t->u.ae.comptag);
	break;

    case NOT:
	free_test(t->u.t);
	break;
    }

    free(t);
}