]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
wrong fix to avoid seg. The threadstate needs to be moved to the private so that...
authorMichael Jerris <mike@jerris.com>
Tue, 18 Dec 2007 18:14:00 +0000 (18:14 +0000)
committerMichael Jerris <mike@jerris.com>
Tue, 18 Dec 2007 18:14:00 +0000 (18:14 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@6870 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/switch_cpp.cpp

index 110518fcc9a969371eb2a855671ffc70dade89c8..5b6739f41c8daa76999f8161121c0befd18a0d87 100644 (file)
@@ -326,7 +326,7 @@ int CoreSession::originate(CoreSession *a_leg_session,
        // no valid channel.  since the threadstate is stored in the channel, and there 
        // is none, if we try to call begin_alllow_threads it will fail miserably.
        // use the 'a leg session' to do the thread swapping stuff.
-    a_leg_session->begin_allow_threads();
+    if (a_leg_session) a_leg_session->begin_allow_threads();
 
        if (switch_core_new_memory_pool(&pool) != SWITCH_STATUS_SUCCESS) {
                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "OH OH no pool\n");
@@ -347,11 +347,11 @@ int CoreSession::originate(CoreSession *a_leg_session,
 
        }
 
-    a_leg_session->end_allow_threads();
+    if (a_leg_session) a_leg_session->end_allow_threads();
        return SWITCH_STATUS_SUCCESS;
 
  failed:
-    a_leg_session->end_allow_threads();
+    if (a_leg_session) a_leg_session->end_allow_threads();
        return SWITCH_STATUS_FALSE;
 }