Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.

[release/3.0] Opt COM methods out of the new Windows instance-method handling #24012

Conversation

jkoritzinsky
Copy link
Member

Some of our users (such as WPF), use a struct to wrap their HRESULT return types on COM members when they use PreserveSig. When we updated CoreCLR to correctly handle the Windows calling convention, we broke this behavior. Additonally, since #23816 didn't make it into release/3.0, this PR also fixes bugs related to enum returns on COM methods, which WPF also found.

Remove calls to tests that were verifying that COM follows the new behavior. (The tests are removed in the PR to master)

The release/3.0 side of #23974

@AaronRobinsonMSFT
Copy link
Member

cc @jeffschwMSFT

Copy link
Member

@jeffschwMSFT jeffschwMSFT left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Copy link
Member

@davidwrighton davidwrighton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm, possibly in master we should have acomment or documentation about this behavior difference between COM and thiscall, but we don't need such a change in preview 4.

@jkoritzinsky
Copy link
Member Author

WPF has confirmed that this fixes the 3 issues they reported. They'd like to do a full test run and sample validation run as well just to make sure everything is good.
cc: @miguep

@AaronRobinsonMSFT AaronRobinsonMSFT merged commit 9562c55 into dotnet:release/3.0 Apr 16, 2019
@jkoritzinsky jkoritzinsky deleted the com-legacy-windows-instance-method-abi-on-release-3.0 branch April 16, 2019 02:36
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants