diff options
author | Martin Pycko <martinp@digium.com> | 2003-07-14 17:17:05 +0000 |
---|---|---|
committer | Martin Pycko <martinp@digium.com> | 2003-07-14 17:17:05 +0000 |
commit | 1521e09083573f423a9376a8c04d98fc0ac11920 (patch) | |
tree | 3ef5fd08664045d2be2376aef061b98130f67662 /pbx.c | |
parent | f4341a13d0ec2ff8c0e0e83fff59fbbd1b487f95 (diff) |
pbx.c didn't get updated
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1188 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'pbx.c')
-rwxr-xr-x | pbx.c | 18 |
1 files changed, 13 insertions, 5 deletions
@@ -2741,14 +2741,22 @@ struct ast_context *ast_context_create(struct ast_context **extcontexts, char *n void __ast_context_destroy(struct ast_context *con, char *registrar, int lock); -void ast_merge_contexts_and_delete(struct ast_context **extcontexts) { +void ast_merge_contexts_and_delete(struct ast_context **extcontexts, char *registrar) { struct ast_context *tmp, *lasttmp = NULL; tmp = *extcontexts; ast_pthread_mutex_lock(&conlock); - while (tmp) { - __ast_context_destroy(tmp,tmp->registrar,0); - lasttmp = tmp; - tmp = tmp->next; + if (registrar) { + __ast_context_destroy(NULL,registrar,0); + while (tmp) { + lasttmp = tmp; + tmp = tmp->next; + } + } else { + while (tmp) { + __ast_context_destroy(tmp,tmp->registrar,0); + lasttmp = tmp; + tmp = tmp->next; + } } if (lasttmp) { lasttmp->next = contexts; |