another minor ast_channel memory size decrease... for nearly all channels, 'dialconte...
authorKevin P. Fleming <kpfleming@digium.com>
Tue, 1 Jul 2008 16:16:36 +0000 (16:16 +0000)
committerKevin P. Fleming <kpfleming@digium.com>
Tue, 1 Jul 2008 16:16:36 +0000 (16:16 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@126960 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_dial.c
apps/app_queue.c
include/asterisk/channel.h

index b7cafd0..370ac71 100644 (file)
@@ -639,7 +639,7 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in,
                                                OPT_CALLEE_PARK | OPT_CALLER_PARK |
                                                OPT_CALLEE_MIXMONITOR | OPT_CALLER_MIXMONITOR |
                                                DIAL_NOFORWARDHTML);
-                                       ast_copy_string(c->dialcontext, "", sizeof(c->dialcontext));
+                                       ast_string_field_set(c, dialcontext, "");
                                        ast_copy_string(c->exten, "", sizeof(c->exten));
                                }
                                continue;
@@ -677,7 +677,7 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in,
                                                        OPT_CALLEE_PARK | OPT_CALLER_PARK |
                                                        OPT_CALLEE_MIXMONITOR | OPT_CALLER_MIXMONITOR |
                                                        DIAL_NOFORWARDHTML);
-                                               ast_copy_string(c->dialcontext, "", sizeof(c->dialcontext));
+                                               ast_string_field_set(c, dialcontext, "");
                                                ast_copy_string(c->exten, "", sizeof(c->exten));
                                                if (CAN_EARLY_BRIDGE(peerflags))
                                                        /* Setup early bridge if appropriate */
@@ -1513,10 +1513,7 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags
                        ast_app_group_set_channel(tc, outbound_group);
 
                /* Inherit context and extension */
-               if (!ast_strlen_zero(chan->macrocontext))
-                       ast_copy_string(tc->dialcontext, chan->macrocontext, sizeof(tc->dialcontext));
-               else
-                       ast_copy_string(tc->dialcontext, chan->context, sizeof(tc->dialcontext));
+               ast_string_field_set(tc, dialcontext, ast_strlen_zero(chan->macrocontext) ? chan->context : chan->macrocontext);
                if (!ast_strlen_zero(chan->macroexten))
                        ast_copy_string(tc->exten, chan->macroexten, sizeof(tc->exten));
                else
index da58c10..872dc49 100644 (file)
@@ -2205,10 +2205,7 @@ static int ring_entry(struct queue_ent *qe, struct callattempt *tmp, int *busies
        /* Inherit context and extension */
        ast_channel_lock(qe->chan);
        macrocontext = pbx_builtin_getvar_helper(qe->chan, "MACRO_CONTEXT");
-       if (!ast_strlen_zero(macrocontext))
-               ast_copy_string(tmp->chan->dialcontext, macrocontext, sizeof(tmp->chan->dialcontext));
-       else
-               ast_copy_string(tmp->chan->dialcontext, qe->chan->context, sizeof(tmp->chan->dialcontext));
+       ast_string_field_set(tmp->chan, dialcontext, ast_strlen_zero(macrocontext) ? qe->chan->context : macrocontext);
        macroexten = pbx_builtin_getvar_helper(qe->chan, "MACRO_EXTEN");
        if (!ast_strlen_zero(macroexten))
                ast_copy_string(tmp->chan->exten, macroexten, sizeof(tmp->chan->exten));
index e7cade4..5923f7c 100644 (file)
@@ -469,6 +469,7 @@ struct ast_channel {
                AST_STRING_FIELD(call_forward);         /*!< Where to forward to if asked to dial on this interface */
                AST_STRING_FIELD(uniqueid);             /*!< Unique Channel Identifier */
                AST_STRING_FIELD(parkinglot);           /*! Default parking lot, if empty, default parking lot  */
+               AST_STRING_FIELD(dialcontext);          /*!< Dial: Extension context that we were called from */
        );
        
        struct timeval whentohangup;                    /*!< Non-zero, set to actual time when channel is to be hung up */
@@ -530,7 +531,6 @@ struct ast_channel {
        char exten[AST_MAX_EXTENSION];                  /*!< Dialplan: Current extension number */
        char macrocontext[AST_MAX_CONTEXT];             /*!< Macro: Current non-macro context. See app_macro.c */
        char macroexten[AST_MAX_EXTENSION];             /*!< Macro: Current non-macro extension. See app_macro.c */
-       char dialcontext[AST_MAX_CONTEXT];              /*!< Dial: Extension context that we were called from */
        char emulate_dtmf_digit;                        /*!< Digit being emulated */
 };