internal static void on_address_change(IntPtr gcHandlePtr, IntPtr browser, IntPtr frame, IntPtr url_str, int url_length) { var self = (CfxDisplayHandler)System.Runtime.InteropServices.GCHandle.FromIntPtr(gcHandlePtr).Target; if (self == null) { return; } var e = new CfxOnAddressChangeEventArgs(browser, frame, url_str, url_length); var eventHandler = self.m_OnAddressChange; if (eventHandler != null) { eventHandler(self, e); } e.m_isInvalid = true; if (e.m_browser_wrapped == null) { CfxApi.cfx_release(e.m_browser); } if (e.m_frame_wrapped == null) { CfxApi.cfx_release(e.m_frame); } }
internal static void on_address_change(IntPtr gcHandlePtr, IntPtr browser, out int browser_release, IntPtr frame, out int frame_release, IntPtr url_str, int url_length) { var self = (CfxDisplayHandler)System.Runtime.InteropServices.GCHandle.FromIntPtr(gcHandlePtr).Target; if (self == null || self.CallbacksDisabled) { browser_release = 1; frame_release = 1; return; } var e = new CfxOnAddressChangeEventArgs(browser, frame, url_str, url_length); self.m_OnAddressChange?.Invoke(self, e); e.m_isInvalid = true; browser_release = e.m_browser_wrapped == null? 1 : 0; frame_release = e.m_frame_wrapped == null? 1 : 0; }