pbx.c didn't get updated
authorMartin Pycko <martinp@digium.com>
Mon, 14 Jul 2003 17:17:05 +0000 (17:17 +0000)
committerMartin Pycko <martinp@digium.com>
Mon, 14 Jul 2003 17:17:05 +0000 (17:17 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1188 65c4cc65-6c06-0410-ace0-fbb531ad65f3

pbx.c

diff --git a/pbx.c b/pbx.c
index ce547ed..9034762 100755 (executable)
--- 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;