Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/runtime.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Robinson <arobins@microsoft.com>2021-05-13 22:04:46 +0300
committerGitHub <noreply@github.com>2021-05-13 22:04:46 +0300
commitc1e7ca823f45082c3459e3211ece37456b2604dd (patch)
tree27006813192e83d56d3e03c990630a7cd433346f /src/coreclr/inc
parentd77854a16eaa29f1a141f1da267885dcf2675027 (diff)
Low level API support for Objective-C interop. (#52146)
* Add Objective-C interop support. * Include handling of HNDTYPE_REFCOUNTED when FEATURE_OBJCMARSHAL is defined (#47534) * Allow overriding of Objective-C message send P/Invokes (#47721) * Add new flag to MethodTable for types with ObjectiveCTrackedTypeAttribute. Discover attribute during type load and set bit. Update EagerFinalizer callout to query bit. * Add testing for API * Bridge API for propagating managed exception to native. * Update GCEE interface to support GCServer scenario for Objective-C. The new callbacks now fire when before the GC scans handles and is non-concurrent. * Comment added for ExceptionTracker non-NULL condition. Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com> Co-authored-by: Elinor Fung <elfung@microsoft.com> Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Diffstat (limited to 'src/coreclr/inc')
-rw-r--r--src/coreclr/inc/pinvokeoverride.h12
-rw-r--r--src/coreclr/inc/utilcode.h4
2 files changed, 12 insertions, 4 deletions
diff --git a/src/coreclr/inc/pinvokeoverride.h b/src/coreclr/inc/pinvokeoverride.h
index 525f976b3de..3cec8c5b498 100644
--- a/src/coreclr/inc/pinvokeoverride.h
+++ b/src/coreclr/inc/pinvokeoverride.h
@@ -15,8 +15,16 @@
class PInvokeOverride
{
public:
- static void SetPInvokeOverride(PInvokeOverrideFn* overrideImpl);
- static const void* GetMethodImpl(const char* libraryName, const char* entrypointName);
+ // Override source. This represents the priority order in which overrides will be called.
+ enum class Source
+ {
+ RuntimeConfiguration,
+ ObjectiveCInterop,
+ Last = ObjectiveCInterop,
+ };
+
+ static void SetPInvokeOverride(_In_ PInvokeOverrideFn* overrideImpl, _In_ Source source);
+ static const void* GetMethodImpl(_In_z_ const char* libraryName, _In_z_ const char* entrypointName);
};
#endif // _PINVOKEOVERRIDE_H_
diff --git a/src/coreclr/inc/utilcode.h b/src/coreclr/inc/utilcode.h
index 563fff829c9..a47034ee2e0 100644
--- a/src/coreclr/inc/utilcode.h
+++ b/src/coreclr/inc/utilcode.h
@@ -4715,12 +4715,12 @@ void* FindLocalizedFile(_In_z_ LPCWSTR wzResourceDllName, LocalizedFileHandler l
namespace Clr { namespace Util
{
-#ifdef FEATURE_COMINTEROP
+#ifdef HOST_WINDOWS
namespace Com
{
HRESULT FindInprocServer32UsingCLSID(REFCLSID rclsid, SString & ssInprocServer32Name);
}
-#endif // FEATURE_COMINTEROP
+#endif // HOST_WINDOWS
}}