diff options
author | Jeremy Koritzinsky <jkoritzinsky@gmail.com> | 2018-12-06 09:56:21 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-06 09:56:21 -0800 |
commit | 5955967d808d1d88ef927235276d3ca82b5d9363 (patch) | |
tree | 01eac29f273a440508969afecae331410aa6f63f /src/vm/mngstdinterfaces.cpp | |
parent | 045f470f71cfcedf3eb7ff248f25bf29619d9a88 (diff) | |
download | coreclr-5955967d808d1d88ef927235276d3ca82b5d9363.tar.gz coreclr-5955967d808d1d88ef927235276d3ca82b5d9363.tar.bz2 coreclr-5955967d808d1d88ef927235276d3ca82b5d9363.zip |
Port CustomMarshalers.dll to C# and .NET Core (#21343)
* Import CustomMarshalers from corefx PR.
* Add tests for marshalling IEnumerator and IEnumerable using the System.Runtime.InteropServices.CustomMarshalers.
* Verify that the marshaller is used in the managed -> native direction in the tests.
* Remove #if's
* PR Feedback.
* Move ComHelpers.h into interop common headers.
* Add some template machinery to ensure that we don't accidentally pass in an incorrect type into DoQueryInterface.
* Add VariantClear
* Make marshalers internal and root them in ILLinkTrim.xml
* Revert enable-if machinery.
* Add tests for the pass-through unwrapping done by the EnumeratorToEnumVariantMarshaler.
* Remove some of my helper code.
* Added todo about exposing EnumerableToDispatchMarshaler.
* PR Feedback.
* Removed the last placement new.
* Use the runtime hooks to enable us to not have to publically expose the custom marshalers.
* Remove out of date comments.
Diffstat (limited to 'src/vm/mngstdinterfaces.cpp')
-rw-r--r-- | src/vm/mngstdinterfaces.cpp | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/src/vm/mngstdinterfaces.cpp b/src/vm/mngstdinterfaces.cpp index 7e93877c91..11bc5bfad5 100644 --- a/src/vm/mngstdinterfaces.cpp +++ b/src/vm/mngstdinterfaces.cpp @@ -990,9 +990,7 @@ FCIMPL1(Object*, StdMngIEnumerable::GetEnumerator, Object* refThisUNSAFE) if (retVal == NULL) { - // In desktop CLR we'll attempt to call through IDispatch(DISPID_NEWENUM) - // This is not supported in CoreCLR - COMPlusThrow(kPlatformNotSupportedException, IDS_EE_ERROR_IDISPATCH); + retVal = ObjectToOBJECTREF((Object*)GetEnumeratorWorker(args)); } GCPROTECT_END(); |