git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@6437 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale 2007-11-29 18:41:40 +00:00
parent 873ea13898
commit 6e25cfa46a

View File

@ -133,6 +133,10 @@ struct input_callback_state {
JSObject *obj;
jsrefcount saveDepth;
void *extra;
struct js_session *jss_a;
struct js_session *jss_b;
JSObject *session_obj_a;
JSObject *session_obj_b;
};
struct fileio_obj {
@ -1019,6 +1023,12 @@ static switch_status_t js_common_callback(switch_core_session_t *session, void *
argv[argc++] = cb_state->arg;
}
if (cb_state->jss_a && cb_state->jss_a->session && cb_state->jss_a->session == session) {
argv[argc++] = OBJECT_TO_JSVAL(cb_state->session_obj_a);
} else if (cb_state->jss_b && cb_state->jss_b->session && cb_state->jss_b->session == session) {
argv[argc++] = OBJECT_TO_JSVAL(cb_state->session_obj_b);
}
if (jss->stack_depth > MAX_STACK_DEPTH) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Maximum recursive callback limit %d reached.\n", MAX_STACK_DEPTH);
jss->stack_depth--;
@ -3145,7 +3155,10 @@ static JSBool js_bridge(JSContext * cx, JSObject * obj, uintN argc, jsval * argv
cb_state.cx = cx;
cb_state.obj = obj;
cb_state.jss_a = jss_a;
cb_state.jss_b = jss_b;
cb_state.session_obj_a = session_obj_a;
cb_state.session_obj_b = session_obj_b;
cb_state.session_state = jss_a;
dtmf_func = js_collect_input_callback;
bp = &cb_state;