another minor ast_channel memory size decrease... for nearly all channels, 'dialcontext' is only going to be set once during the channel's lifetime, so make it a string field instead of a char array
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@126960 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
parent
f2e96029e7
commit
432dce19e4
|
@ -639,7 +639,7 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in,
|
||||||
OPT_CALLEE_PARK | OPT_CALLER_PARK |
|
OPT_CALLEE_PARK | OPT_CALLER_PARK |
|
||||||
OPT_CALLEE_MIXMONITOR | OPT_CALLER_MIXMONITOR |
|
OPT_CALLEE_MIXMONITOR | OPT_CALLER_MIXMONITOR |
|
||||||
DIAL_NOFORWARDHTML);
|
DIAL_NOFORWARDHTML);
|
||||||
ast_copy_string(c->dialcontext, "", sizeof(c->dialcontext));
|
ast_string_field_set(c, dialcontext, "");
|
||||||
ast_copy_string(c->exten, "", sizeof(c->exten));
|
ast_copy_string(c->exten, "", sizeof(c->exten));
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
|
@ -677,7 +677,7 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in,
|
||||||
OPT_CALLEE_PARK | OPT_CALLER_PARK |
|
OPT_CALLEE_PARK | OPT_CALLER_PARK |
|
||||||
OPT_CALLEE_MIXMONITOR | OPT_CALLER_MIXMONITOR |
|
OPT_CALLEE_MIXMONITOR | OPT_CALLER_MIXMONITOR |
|
||||||
DIAL_NOFORWARDHTML);
|
DIAL_NOFORWARDHTML);
|
||||||
ast_copy_string(c->dialcontext, "", sizeof(c->dialcontext));
|
ast_string_field_set(c, dialcontext, "");
|
||||||
ast_copy_string(c->exten, "", sizeof(c->exten));
|
ast_copy_string(c->exten, "", sizeof(c->exten));
|
||||||
if (CAN_EARLY_BRIDGE(peerflags))
|
if (CAN_EARLY_BRIDGE(peerflags))
|
||||||
/* Setup early bridge if appropriate */
|
/* 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);
|
ast_app_group_set_channel(tc, outbound_group);
|
||||||
|
|
||||||
/* Inherit context and extension */
|
/* Inherit context and extension */
|
||||||
if (!ast_strlen_zero(chan->macrocontext))
|
ast_string_field_set(tc, dialcontext, ast_strlen_zero(chan->macrocontext) ? chan->context : chan->macrocontext);
|
||||||
ast_copy_string(tc->dialcontext, chan->macrocontext, sizeof(tc->dialcontext));
|
|
||||||
else
|
|
||||||
ast_copy_string(tc->dialcontext, chan->context, sizeof(tc->dialcontext));
|
|
||||||
if (!ast_strlen_zero(chan->macroexten))
|
if (!ast_strlen_zero(chan->macroexten))
|
||||||
ast_copy_string(tc->exten, chan->macroexten, sizeof(tc->exten));
|
ast_copy_string(tc->exten, chan->macroexten, sizeof(tc->exten));
|
||||||
else
|
else
|
||||||
|
|
|
@ -2205,10 +2205,7 @@ static int ring_entry(struct queue_ent *qe, struct callattempt *tmp, int *busies
|
||||||
/* Inherit context and extension */
|
/* Inherit context and extension */
|
||||||
ast_channel_lock(qe->chan);
|
ast_channel_lock(qe->chan);
|
||||||
macrocontext = pbx_builtin_getvar_helper(qe->chan, "MACRO_CONTEXT");
|
macrocontext = pbx_builtin_getvar_helper(qe->chan, "MACRO_CONTEXT");
|
||||||
if (!ast_strlen_zero(macrocontext))
|
ast_string_field_set(tmp->chan, dialcontext, ast_strlen_zero(macrocontext) ? qe->chan->context : 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));
|
|
||||||
macroexten = pbx_builtin_getvar_helper(qe->chan, "MACRO_EXTEN");
|
macroexten = pbx_builtin_getvar_helper(qe->chan, "MACRO_EXTEN");
|
||||||
if (!ast_strlen_zero(macroexten))
|
if (!ast_strlen_zero(macroexten))
|
||||||
ast_copy_string(tmp->chan->exten, macroexten, sizeof(tmp->chan->exten));
|
ast_copy_string(tmp->chan->exten, macroexten, sizeof(tmp->chan->exten));
|
||||||
|
|
|
@ -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(call_forward); /*!< Where to forward to if asked to dial on this interface */
|
||||||
AST_STRING_FIELD(uniqueid); /*!< Unique Channel Identifier */
|
AST_STRING_FIELD(uniqueid); /*!< Unique Channel Identifier */
|
||||||
AST_STRING_FIELD(parkinglot); /*! Default parking lot, if empty, default parking lot */
|
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 */
|
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 exten[AST_MAX_EXTENSION]; /*!< Dialplan: Current extension number */
|
||||||
char macrocontext[AST_MAX_CONTEXT]; /*!< Macro: Current non-macro context. See app_macro.c */
|
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 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 */
|
char emulate_dtmf_digit; /*!< Digit being emulated */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Reference in New Issue