[Bug 33887] New: Patches for marshaling VT_UNKNOWN in SAFEARRAYS
http://bugs.winehq.org/show_bug.cgi?id=33887 Bug #: 33887 Summary: Patches for marshaling VT_UNKNOWN in SAFEARRAYS Product: Wine Version: 1.6-rc3 Platform: x86-64 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: oleaut32 AssignedTo: wine-bugs(a)winehq.org ReportedBy: rosen.diankov(a)gmail.com Classification: Unclassified Many applications marshal SAFEARRAY structures with IUnknown interfaces in them. The following short patches in dlls/oleaut32/usrmarshal.c should implement support for them. One thing I'm not sure yet is if the marshaling requires 4-byte alignment. Seems to work as is though: in <code> ULONG WINAPI LPSAFEARRAY_UserSize(ULONG *pFlags, ULONG StartingSize, LPSAFEARRAY *ppsa) </code> add <code> case SF_UNKNOWN: case SF_DISPATCH: case SF_HAVEIID: { IUnknown** ppUnknown; FIXME("size interfaces 0x%x\n", sftype); for (ppUnknown = psa->pvData; ulCellCount; ulCellCount--, ppUnknown++) { size += interface_variant_size(pFlags, &IID_IUnknown, *ppUnknown); } break; } </code> In <code> unsigned char * WINAPI LPSAFEARRAY_UserMarshal(ULONG *pFlags, unsigned char *Buffer, LPSAFEARRAY *ppsa) </code> add <code> case SF_UNKNOWN: case SF_DISPATCH: case SF_HAVEIID: { IUnknown** ppUnknown; FIXME("marshal interfaces 0x%x\n", sftype); for (ppUnknown = psa->pvData; ulCellCount; ulCellCount--, ppUnknown++) { /* this should probably call WdtpInterfacePointer_UserMarshal in ole32.dll */ Buffer = interface_variant_marshal(pFlags, Buffer, &IID_IUnknown, *ppUnknown); } break; } </code> in <code> unsigned char * WINAPI LPSAFEARRAY_UserUnmarshal(ULONG *pFlags, unsigned char *Buffer, LPSAFEARRAY *ppsa) </code> <code> case SF_UNKNOWN: case SF_DISPATCH: case SF_HAVEIID: { IUnknown** ppUnknown; FIXME("unmarshal interfaces 0x%x\n", sftype); for (ppUnknown = (*ppsa)->pvData; cell_count; cell_count--, ppUnknown++) { /* this should probably call WdtpInterfacePointer_UserUnmarshal in ole32.dll */ Buffer = interface_variant_unmarshal(pFlags, Buffer, &IID_IUnknown, ppUnknown); } break; } </code> -- 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.
http://bugs.winehq.org/show_bug.cgi?id=33887 Rosen Diankov <rosen.diankov(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |major -- 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.
http://bugs.winehq.org/show_bug.cgi?id=33887 Nikolay Sivov <bunglehead(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID Severity|major |normal --- Comment #1 from Nikolay Sivov <bunglehead(a)gmail.com> 2013-06-26 02:23:00 CDT --- Patches are not picked up from bugzilla, you need to use wine-patches(a)winehq.org list instead, and wine-devel(a)winehq.org for reviews. Also this is not even patch, it should be a text file in diff format and it needs tests. -- 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.
http://bugs.winehq.org/show_bug.cgi?id=33887 Austin English <austinenglish(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #2 from Austin English <austinenglish(a)gmail.com> 2013-06-26 13:27:08 CDT --- Closing. -- 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.
http://bugs.winehq.org/show_bug.cgi?id=33887 Dan Kegel <dank(a)kegel.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dank(a)kegel.com --- Comment #3 from Dan Kegel <dank(a)kegel.com> 2013-07-01 10:32:08 CDT --- Just to be clear, the problem isn't invalid, it's the bug report that wasn't well-formed. I'd love to see a proper bug report with a recipe for reproducing the problem. Also, it's great that you sent patches to wine-patches, but you should include test cases in each patch. That might help settle the question of whether alignment is needed, too. -- 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.
participants (1)
-
wine-bugs@winehq.org