shdocvw: Implement IWebBrowser::ExecWB and IWebBrowser::QueryStatusWB.

Erich Hoover ehoover at
Fri Jan 28 13:35:38 CST 2011

On Fri, Jan 28, 2011 at 6:45 AM, Greg Geldorp <ggeldorp at> wrote:
> ...
> I started by running your test binary 10,000 times on W7PROX64. Not a single
> crash, so that looked kind of promising. Just to be sure, I then ran the
> binary on a dual-core Win7 x64 machine (the W7PROX64 VM has only one core
> assigned to it). This resulted in an immediate crash. Tried a few more times,
> it crashed 9 out of 10 times.
> To make sure that these crashes are related to your patch, I ran the test
> without your patch on the same dual-core machine. First few tries didn't
> produce crashes, I then ran it in a loop 10,000 times. Not a single crash.
> So, it looks like your patch introduces some multi-threading issue. I haven't
> investigated further, perhaps I'll have some time over the weekend to dig a
> bit deeper.

Hmm, interesting - thanks for taking a look into this, I really
appreciate it.  I ran a test on a different XP SP3 machine here (this
time a dual-core) and it worked just fine.  So, at first I thought
this must be an issue to the combination of multi-core and Windows 7.
However, if the location of the exception has anything to say about it
(crashing after test_Navigate2:test_LocationURL), then my guess would
be that it's because of the "wb" global.  I didn't notice this before
(or if I did, I forgot) but test_Navigate2:test_ready_state uses the
IWebBrowser2 "wb" global, which I did not initialize until after
test_Navigate2.  If you wouldn't mind giving it a try on your system
where the error is reproducible, I've attached a revised patch where
this variable is initialized properly.

Erich Hoover
ehoover at
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-shdocvw-Implement-IWebBrowser-ExecWB-and-IWebBrowser.patch
Type: text/x-patch
Size: 16766 bytes
Desc: not available
URL: <>

More information about the wine-devel mailing list