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

Implement new COM interop API for RCW/CCW creation/management #32091

Merged
merged 83 commits into from
Mar 7, 2020

Commits on Mar 7, 2020

  1. Add API to SPCL.

    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    6dae493 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    aa43ec8 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    e8846f1 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    7e0c328 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    a1b0507 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    39d5155 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    8e4e655 View commit details
    Browse the repository at this point in the history
  8. Add project for testing ComWrappers API.

    Add test for the ComWrappers.GetIUnknownImpl() API.
    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    1e88958 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    c375198 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    2b118c6 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    705d02f View commit details
    Browse the repository at this point in the history
  12. Implement the runtime interation for managed object wrapper creation.

    Update InteropSyncBlockInfo to hold onto wrapper instance.
    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    7ec6cc9 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    67949a7 View commit details
    Browse the repository at this point in the history
  14. Make managed object wrappers persistent until the associated managed …

    …object is finalized.
    
    Remove the CreateComInterfaceFlags.IgnoreCache
    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    4ed9275 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    9249f51 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    2a22388 View commit details
    Browse the repository at this point in the history
  17. Remove unnecessary GCProtect sections.

    Allocate External Object Context cache.
    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    33720f7 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    1a87a11 View commit details
    Browse the repository at this point in the history
  19. Rename ExtObjCxtIterator to RuntimeCallContext.

    Add API for creating a Reference between an External Object and a MOW.
    Update the existing RCWRefCache to work with the new InteropLib API.
    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    dbfa73f View commit details
    Browse the repository at this point in the history
  20. Change the CreateReference() API to an informing style API (i.e. Foun…

    …dReferencePath).
    
      - This permits the runtime to make the decision on if the connection is meaningful.
    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    1073eba View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    0d80d43 View commit details
    Browse the repository at this point in the history
  22. Place all exported functions into a single compilation unit for Inter…

    …opLib.
    
    Add Begin/End reference tracking APIs.
    Expose Global Pegging value to InteropLib.
    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    152a5e4 View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    1bfb390 View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    3792204 View commit details
    Browse the repository at this point in the history
  25. Update public API

    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    c83e6ec View commit details
    Browse the repository at this point in the history
  26. Add support for checking if an external object implements the

      IReferenceTracker interface from the runtime side.
    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    d402fec View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    e508c34 View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    46c357c View commit details
    Browse the repository at this point in the history
  29. TEST - WIP

    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    0d3b9cf View commit details
    Browse the repository at this point in the history
  30. Reduce uses of GetReferenceTracker() - unsafe function.

    Update CreateWrapperForExternal() to return a result struct with
      extra details.
    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    6e41699 View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    4a58326 View commit details
    Browse the repository at this point in the history
  32. Configuration menu
    Copy the full SHA
    f40127f View commit details
    Browse the repository at this point in the history
  33. Configuration menu
    Copy the full SHA
    a023e85 View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    942b19e View commit details
    Browse the repository at this point in the history
  35. Spelling mistake.

    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    76eae00 View commit details
    Browse the repository at this point in the history
  36. Configuration menu
    Copy the full SHA
    fa9af01 View commit details
    Browse the repository at this point in the history
  37. Configuration menu
    Copy the full SHA
    c00ebd2 View commit details
    Browse the repository at this point in the history
  38. Add error message to managed resources.

    Variable name feedback.
    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    4eb1240 View commit details
    Browse the repository at this point in the history
  39. Configuration menu
    Copy the full SHA
    61dc744 View commit details
    Browse the repository at this point in the history
  40. Configuration menu
    Copy the full SHA
    4d41a28 View commit details
    Browse the repository at this point in the history
  41. Configuration menu
    Copy the full SHA
    241e204 View commit details
    Browse the repository at this point in the history
  42. Change EnsureActiveWrapperAndAddRef() API to take an indirect OBJECTREF

      and only create an OBJECTHANDLE if needed.
    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    aeb9403 View commit details
    Browse the repository at this point in the history
  43. Fix Release builds

    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    362ea4b View commit details
    Browse the repository at this point in the history
  44. Configuration menu
    Copy the full SHA
    4d4d395 View commit details
    Browse the repository at this point in the history
  45. Update src/coreclr/src/interop/comwrappers.h

    Co-Authored-By: Jan Kotas <jkotas@microsoft.com>
    AaronRobinsonMSFT and jkotas committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    5a9cbb4 View commit details
    Browse the repository at this point in the history
  46. Configuration menu
    Copy the full SHA
    48a1480 View commit details
    Browse the repository at this point in the history
  47. Configuration menu
    Copy the full SHA
    4bea8da View commit details
    Browse the repository at this point in the history
  48. Configuration menu
    Copy the full SHA
    1bfea8c View commit details
    Browse the repository at this point in the history
  49. Configuration menu
    Copy the full SHA
    1bb76c9 View commit details
    Browse the repository at this point in the history
  50. Release build fixes

    Some CRST functions don't exist in Release builds.
    Change usage of COMPlusThrow() to COMPlusThrowHR().
    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    96ca3dc View commit details
    Browse the repository at this point in the history
  51. Configuration menu
    Copy the full SHA
    c05b565 View commit details
    Browse the repository at this point in the history
  52. Configuration menu
    Copy the full SHA
    6e4fcce View commit details
    Browse the repository at this point in the history
  53. Configuration menu
    Copy the full SHA
    2006fc6 View commit details
    Browse the repository at this point in the history
  54. Configuration menu
    Copy the full SHA
    0041a35 View commit details
    Browse the repository at this point in the history
  55. Configuration menu
    Copy the full SHA
    05c0035 View commit details
    Browse the repository at this point in the history
  56. Configuration menu
    Copy the full SHA
    8a69732 View commit details
    Browse the repository at this point in the history
  57. Configuration menu
    Copy the full SHA
    e8d616c View commit details
    Browse the repository at this point in the history
  58. Configuration menu
    Copy the full SHA
    b8703b1 View commit details
    Browse the repository at this point in the history
  59. Acquire RefCache at the same time as creating ObjectCache. This avoids

      the need to handle a possible OOM at an inconvenient time.
    Only define IsLockHeld() function in debug build.
    Make usage of NULL consistent in interface cpp file.
    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    07cbc68 View commit details
    Browse the repository at this point in the history
  60. Configuration menu
    Copy the full SHA
    c609b1c View commit details
    Browse the repository at this point in the history
  61. Configuration menu
    Copy the full SHA
    20a5385 View commit details
    Browse the repository at this point in the history
  62. Configuration menu
    Copy the full SHA
    8e97865 View commit details
    Browse the repository at this point in the history
  63. Configuration menu
    Copy the full SHA
    5fa679c View commit details
    Browse the repository at this point in the history
  64. Review feedback.

    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    e836507 View commit details
    Browse the repository at this point in the history
  65. Configuration menu
    Copy the full SHA
    e60bce2 View commit details
    Browse the repository at this point in the history
  66. Revert "Add Type? to the GetOrCreateObjectForComInstance() API call."

    This reverts commit d0f6a5b04adbaa8e53445e4474780a9182ff8bde.
    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    75e8401 View commit details
    Browse the repository at this point in the history
  67. Update GetOrCreateObjectForComInstance() to accept 'object?' as the

     defined wrapper. This will indicate to skip calling CallObject().
    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    33194f9 View commit details
    Browse the repository at this point in the history
  68. Configuration menu
    Copy the full SHA
    7147244 View commit details
    Browse the repository at this point in the history
  69. Configuration menu
    Copy the full SHA
    1d87df4 View commit details
    Browse the repository at this point in the history
  70. Configuration menu
    Copy the full SHA
    17b5404 View commit details
    Browse the repository at this point in the history
  71. Configuration menu
    Copy the full SHA
    9cc5ccc View commit details
    Browse the repository at this point in the history
  72. Configuration menu
    Copy the full SHA
    1ae8587 View commit details
    Browse the repository at this point in the history
  73. Merge conflict.

    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    96fa8cc View commit details
    Browse the repository at this point in the history
  74. Review feedback.

    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    fc2f20a View commit details
    Browse the repository at this point in the history
  75. Configuration menu
    Copy the full SHA
    9c4ecd5 View commit details
    Browse the repository at this point in the history
  76. Style and name.

    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    bc25078 View commit details
    Browse the repository at this point in the history
  77. Configuration menu
    Copy the full SHA
    d96ef4b View commit details
    Browse the repository at this point in the history
  78. Missed static

    AaronRobinsonMSFT committed Mar 7, 2020
    Configuration menu
    Copy the full SHA
    bfa455d View commit details
    Browse the repository at this point in the history
  79. Configuration menu
    Copy the full SHA
    b7c5c44 View commit details
    Browse the repository at this point in the history
  80. Configuration menu
    Copy the full SHA
    f305cb0 View commit details
    Browse the repository at this point in the history
  81. Configuration menu
    Copy the full SHA
    642ca9b View commit details
    Browse the repository at this point in the history
  82. Configuration menu
    Copy the full SHA
    fa45add View commit details
    Browse the repository at this point in the history
  83. Configuration menu
    Copy the full SHA
    c7c6839 View commit details
    Browse the repository at this point in the history