diff options
author | Luqun Lou <luqunl@microsoft.com> | 2017-10-17 07:03:54 +0300 |
---|---|---|
committer | Luqun Lou <luqunl@microsoft.com> | 2017-10-17 07:03:54 +0300 |
commit | 990f55966aa7daef1e312c12e73c624ed02c789e (patch) | |
tree | 87d2b591085747ddb7dc7b4f1da8bb97ceef47d4 /src/System.Private.Reflection.Execution | |
parent | ce1d3e31090e2ace1bd2ac7e9fddaca0b1f70738 (diff) |
Fix For Bug#507240 Marshal.IsComObject fails for __ComObject in x-plat MCG
Yi/Alan/Tyler found out this bug and the root cause--- IsComObject(Type t) only check whether t is subclass of __ComObject or not --- IsSubclassOf fails if type is exactly __ComObject: https://msdn.microsoft.com/en-us/library/system.type.issubclassof%28v=vs.110%29.aspx
the fix is to add a check to see whether type itself is __ComObject or not.
Changes:
1. Unify IsCOMObject and IsComObject into IsComObject. don't confuse ourselves
2. Move McgComHelpers.IsComObject into McgMarshal.IsComObject
TODO:
1. Consider to split McgMarshal.cs into McgMarshal.Pinvoke.cs/McgMarshal.Com.cs/McgMarshal.WinRT.cs/McgMarshal.Common.cs
[tfs-changeset: 1678276]
Diffstat (limited to 'src/System.Private.Reflection.Execution')
-rw-r--r-- | src/System.Private.Reflection.Execution/src/Internal/Reflection/Execution/ExecutionEnvironmentImplementation.Interop.cs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/System.Private.Reflection.Execution/src/Internal/Reflection/Execution/ExecutionEnvironmentImplementation.Interop.cs b/src/System.Private.Reflection.Execution/src/Internal/Reflection/Execution/ExecutionEnvironmentImplementation.Interop.cs index 0fb7029d9..a8f668627 100644 --- a/src/System.Private.Reflection.Execution/src/Internal/Reflection/Execution/ExecutionEnvironmentImplementation.Interop.cs +++ b/src/System.Private.Reflection.Execution/src/Internal/Reflection/Execution/ExecutionEnvironmentImplementation.Interop.cs @@ -16,7 +16,7 @@ namespace Internal.Reflection.Execution { public sealed override bool IsCOMObject(Type type) { - return McgMarshal.IsCOMObject(type); + return McgMarshal.IsComObject(type); } } } |