Skip to content

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