[Bug 25206] Anarchy Online v18.4, Ingame browser crashes (Awesomium.dll)

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Nov 21 15:53:21 CST 2010


http://bugs.winehq.org/show_bug.cgi?id=25206

--- Comment #9 from ao_main at gmx.net 2010-11-21 15:53:21 CST ---
I did some inestigations:
- loading anarchy.exe using $WINEDEBUG=+loaddll yields the following:
----------
...
fixme:win:RegisterRawInputDevices (pRawInputDevices=0x33fd68, uiNumDevices=1,
cbSize=12) stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33ed80,0x00000000), stub!
fixme:ddraw:DirectDrawEnumerateExA flags 0x00000007 not handled
fixme:win:EnumDisplayDevicesW ((null),0,0x33e070,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33ea80,0x00000000), stub!
fixme:x11drv:X11DRV_desktop_SetCurrentMode Cannot change screen BPP from 32 to
16
fixme:d3d:swapchain_init Add OpenGL context recreation support to
context_validate_onscreen_formats
fixme:d3d_surface:IWineD3DBaseSurfaceImpl_Blt Can't handle WINEDDBLT_ASYNC flag
right now.
fixme:heap:HeapSetInformation 0x0 1 0x0 0
fixme:iphlpapi:NotifyAddrChange (Handle 0x79df490, overlapped 0x2e6b010): stub
-----------
And there it hangs. As stated, the Awesomium.dll throws only one line in its
log file:
-----------
[37:47:25651:FATAL:network_change_notifier_win.cc(54)] Check failed: 997L ==
ret (997 vs. 50)
-----------
network_change_notifier_win.cc is a chromium source file, the calling code
seems to be:
-----------
...
void NetworkChangeNotifierWin::Impl::WatchForAddressChange() {
  HANDLE handle = NULL;
  DWORD ret = NotifyAddrChange(&handle, &addr_overlapped_);
  CHECK_EQ(ERROR_IO_PENDING, ret);
  addr_watcher_.StartWatching(addr_overlapped_.hEvent, this);
}
...
-----------
The process anarchy.exe seems to hang at .StartWatching (its still in the
processlist. If i read it correct, the chromium code is installing a watcher
for changes in the address (DHCP). 
The log file entry in awesomium.dll comes from a failing CHECK_EQ (it expects
ERROR_IO_PENDING (997), but gets the handle created from the patched
iphlpapi_main.c:
-----------
DWORD WINAPI NotifyAddrChange(PHANDLE Handle, LPOVERLAPPED overlapped)
 {
   FIXME("(Handle %p, overlapped %p): stub\n", Handle, overlapped);
   *Handle = CreateEventW(NULL, FALSE, FALSE, NULL);
   return *Handle ? ERROR_IO_PENDING : ERROR_NOT_ENOUGH_MEMORY;
 }
-----------
The header documentation for NotifyAddrChange states that if the handle could
be returned, NO_ERROR shall be returned. The Patch returns either IO_PENDING or
NOT_ENOUGH_MEMORY. Can anybody have a look at this? I am just compiling with
-----------
   return *Handle ? NO_ERROR : ERROR_NOT_ENOUGH_MEMORY;
-----------
to test it out, but i am really a sorcerer's apprentice here.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list