]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-4591
authorJeff Lenk <jeff@jefflenk.com>
Fri, 7 Sep 2012 23:28:06 +0000 (18:28 -0500)
committerJeff Lenk <jeff@jefflenk.com>
Fri, 7 Sep 2012 23:28:06 +0000 (18:28 -0500)
src/mod/languages/mod_managed/managed/ManagedSession.cs

index 9629215c70e4dfda1c303cdd0344ecb908b0844b..bed7a03878e014d748cd56cd40a9dc535ab073b0 100644 (file)
@@ -139,16 +139,13 @@ namespace FreeSWITCH.Native
         // The delegate needs to be stored so it doesn't get GC'd, so we can't just return GetFunctionPointerForDelegate right away.\r
 \r
         /// <summary>Wraps a nice handler into a delegate suitable for reverse P/Invoke. This only currently works well for hangup/reporting handlers.</summary>\r
-        public static switch_state_handler_t_delegate CreateStateHandlerDelegate(Action<ManagedSession> handler) {\r
+               public static switch_state_handler_t_delegate CreateStateHandlerDelegate(ManagedSession sess, Action<ManagedSession> handler)\r
+               {\r
             // We create a ManagedSession on top of the session so callbacks can use it "nicely"\r
             // Then we sort of dispose it.\r
             switch_state_handler_t_delegate del = ptr => {\r
-                using (var sess = new ManagedSession(new SWIGTYPE_p_switch_core_session(ptr, false))) {\r
                     handler(sess);\r
-                    sess.SetAutoHangup(false);\r
-                    sess.destroy();\r
                     return switch_status_t.SWITCH_STATUS_SUCCESS;\r
-                }\r
             };\r
             return del;\r
         }\r
@@ -187,7 +184,7 @@ namespace FreeSWITCH.Native
             var bleg = new ManagedSession();\r
 \r
             bleg.originate_ondestroy_delegate = bleg.originate_ondestroy_method;\r
-            bleg.originate_onhangup_delegate = CreateStateHandlerDelegate(sess_b => {\r
+            bleg.originate_onhangup_delegate = CreateStateHandlerDelegate(bleg, sess_b => {\r
                 if (onHangup != null) {\r
                     onHangup(sess_b);\r
                 }\r