Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GetObjectReferenceForInterface improvements #1046

Merged
merged 4 commits into from
Nov 16, 2021

Conversation

manodasanW
Copy link
Member

  • Added a bunch of native events benchmarks
  • Added a new version of GetObjectReferenceForInterface which allows to get the object reference with the right vftbl already set to eliminate the need for doing a QI to get the right version of ObjectReference. Made use of it throughout.
  • Fixed a bug discovered with agile references where they can refer to ones which had their IObjectReference disposed when we were sharing them across instances.
  • Fixed a bug that got exposed after the agile reference fix where we were disposing the IObjectReference on the IAsyncAction RCW before the RCW was collected and thereby allowing for the ptr to be reused and running into issues with the cached RCW being returned when it shouldn't. That code was trying to do safe cleanup on STA, but runs into issues with getting disconnected from the RCW and the pointer being reused, so I left it to our typical code path to dispose which won't run into that issue. But it can run into the scenario where the apartment can be gone which we should monitor if it becomes an issue with regards to any leaks.

@manodasanW manodasanW merged commit 212b230 into master Nov 16, 2021
@manodasanW manodasanW deleted the manodasanw/getobjectreferenceimprovements branch November 16, 2021 06:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants