microsoft / xlang

MIT License
875 stars 103 forks source link

Move to OS based dispenser #780

Closed JohnMcPMS closed 1 year ago

JohnMcPMS commented 1 year ago

Fixes #779

Change

Use MetaDataGetDispenser, as the OS does, to leverage a built-in version of the IMetaDataDispenser.

Validation

I have manually validated this change within another project.

JohnMcPMS commented 1 year ago

Additional validation: This change has been in use by WinAppSDK's fork: microsoft/windowsappsdk#1633

JohnMcPMS commented 1 year ago

Anything I can do to help expedite review of this change? It will be easier long term if we can pull it in through the official branch rather than making our own change downstream.

BenJKuhn commented 1 year ago

/azp run

kythant commented 1 year ago

/azp run xlang-CI-windows

manodasanW commented 1 year ago

/azp run

kythant commented 1 year ago

/azp run Undocked RegFree WinRT Nuget

BenJKuhn commented 1 year ago

/azp run Undocked RegFree WinRT Nuget

kythant commented 1 year ago

image S360 notice asks us to disable triggers from forks. This will need to be run manually.

JohnMcPMS commented 1 year ago

S360 notice asks us to disable triggers from forks. This will need to be run manually.

We (winget-cli) have it set to build automatically for team on triggers, but require the comment for external members. We have the fork builds enabled, and all work out of forks.

JohnMcPMS commented 1 year ago

I made another change here in the event that you wouldn't accept it with the test failures in the latest build. As pointed out to me by @ryfu-msft , we had debugged this earlier in our usage.

For Release builds on x64, a void function won't always set RAX to 0 by the time it returns (I don't know that Debug builds have to, but they seem to in VS). With PreserveSig=false, .Net is converting that errant RAX value into an HRESULT and throwing if it isn't 0.