From 1521e09083573f423a9376a8c04d98fc0ac11920 Mon Sep 17 00:00:00 2001 From: Martin Pycko Date: Mon, 14 Jul 2003 17:17:05 +0000 Subject: [PATCH] pbx.c didn't get updated git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1188 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- pbx.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/pbx.c b/pbx.c index ce547edd58..9034762416 100755 --- a/pbx.c +++ b/pbx.c @@ -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;