if (( context = se_tree_lookup32_array(ctxs_by_trx,trx_key) )) {
if (( context_p = se_tree_lookup32_array(ctxs,ctx_key) )) {
if (context != *context_p) {
- context = se_alloc(sizeof(gcp_ctx_t));
+ if(context->id != CHOOSE_CONTEXT) {
+ context = se_alloc(sizeof(gcp_ctx_t));
+ }
context->initial = m;
context->id = c_id;
context->cmds = NULL;
}
if (ctx_term->term->bir && ctx_term->term->nsap) {
- gchar* key = ep_strdup_printf("%s:%s",ctx_term->term->nsap,ctx_term->term->bir);
- g_ascii_strdown(key, -1);
+ gchar* tmp_key = ep_strdup_printf("%s:%s",ctx_term->term->nsap,ctx_term->term->bir);
+ gchar* key = g_ascii_strdown(tmp_key, -1);
alcap_tree_from_bearer_key(term_tree, gcp_tvb, key);
+ g_free(key);
}
}
}