On Tue, Jan 03, 2006 at 07:00:15PM +0900, Mike McCormack wrote:
Many installers cause Wine's oleaut32 to output alot of FIXME messages like this:
fixme:ole:_copy_arg Should not use VariantChangeType here. (conversion from 0x4003 -> 0xb) 0000ffff
This message is somewhat frustrating, as although it warns of a potential problem, it provides no insight into the solution.
I found the patch that introduced the problem (using git):
git-whatchanged -p -C -S'Should not use VariantChangeType' commit hash -> 49eaa0db2b3f7443ead40ef4a5d5b3d650c11384
It removed an (IMO) slightly more useful message:
"argument was coerced in-place (0x%x -> 0x%x); source data has been modified!!!\n"
Can anybody help suggest the real way to fix the problem? Is it that we have to make a copy of the args array before modifying it? Maybe we can put a comment in the code about how to fix it, some somebody looking at it in the future will know how to solve it right?
I was not fully sure what problems might arise out of just copying the variant as I wrote this code. Its a pretty messy approach. It should work fine when the variant is self contained at least.
I think Rob wants to get rid of this function anyway.
Ciao, Marcus