http://bugs.winehq.org/show_bug.cgi?id=12582
denis bonnenfant denis.bonnenfant@diderot.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jacek@codeweavers.com Component|urlmon |-unknown
--- Comment #6 from denis bonnenfant denis.bonnenfant@diderot.org 2008-05-12 16:39:27 --- the problem is mostly in this patch :
From: Jacek Caban jacek@codeweavers.com Date: Sat, 13 Oct 2007 01:58:55 +0000 (+0200) Subject: mshtml: Added IHTMLWindow2::get_option implementation. X-Git-Tag: wine-0.9.48~482 X-Git-Url: http://source.winehq.org/git/wine.git/?a=commitdiff_plain;h=954d4477b5054498...
setup_nswindow is called after HTMLWindow2_Release with a 0 refcount,
I was able to find a really dirty workaround :
in htmlwindows.c :
static ULONG WINAPI HTMLWindow2_Release(IHTMLWindow2 *iface) { HTMLWindow *This = HTMLWINDOW2_THIS(iface); LONG ref = InterlockedDecrement(&This->ref);
TRACE("(%p) ref=%d\n", This, ref); - if(!ref) { - list_remove(&This->entry); - heap_free(This); - } return ref; }
then there was another problem here, solved by suppressing the function...
in mshtml/navigate.c :
static HRESULT WINAPI BindStatusCallback_OnStartBinding(IBindStatusCallback *iface, DWORD dwReserved, IBinding *pbind) { BSCallback *This = STATUSCLB_THIS(iface); + FIXME("(%p)->(%d %p)\n", This, dwReserved, pbind); + return E_NOTIMPL; - TRACE("(%p)->(%d %p)\n", This, dwReserved, pbind); - - IBinding_AddRef(pbind); - This->binding = pbind; - - if(This->doc) - list_add_head(&This->doc->bindings, &This->entry); - - return This->vtbl->start_binding(This); }
It's really hacky but at least it doesn't segfault anymore !
hope that it may help somebody...