howto fix bug 13462

Rob Shearman robertshearman at gmail.com
Mon Sep 15 10:49:47 CDT 2008


2008/9/15 Louis Lenders <xerox_xerox2000 at yahoo.co.uk>:
> Rob Shearman <robertshearman <at> gmail.com> writes:
>> I suggest you write a test case that replicates what the application
>> does and either send it to wine-patches with appropriate todo_wine's
>> or attach it to the bug.
>
> Well, it looks like the app is only checking if the uuid of the interface is
> defined using Context_QueryInterface, and that's about it.
> It doesn't really seem to try to use anything from it, as Erich's initial hack
> is already enough to get the apps running as well (this
> one:http://bugs.winehq.org/attachment.cgi?id=13379)

That's fine. You can still add a test that does the same as what the app does.

>> It might help you understand what needs to be done or it will help
>> someone else implement the functionality that is causing the
>> application to fail.
>
> So as far as i can tell, the functionality doesn't need to be implemented at
> all, it's just enough to fake as if it would exist, by returning S_OK, when
> Context_QueryInterface is called for this specific uuid.

That's not acceptable as that change will cause applications that do
use the returned interface to either crash on a NULL pointer (if you
set *ppv to NULL and return S_OK) or stack corruption (if you return a
pointer to the wrong interface). You will be turning a known
unimplemented feature into a buggy feature which will be harder to fix
later.

> So what now?

If running the tests on Windows show that the interface in question is
implemented for the Context object then add that interface to the
object with stubbed functions.

-- 
Rob Shearman



More information about the wine-devel mailing list