diff options
author | Gaurav Khanna <gkhanna@microsoft.com> | 2016-05-13 09:55:19 -0700 |
---|---|---|
committer | Gaurav Khanna <gkhanna@microsoft.com> | 2016-05-15 10:53:25 -0700 |
commit | dd9317c7958f4fb65f45420433c587ea5e122ab2 (patch) | |
tree | 1dec7f6a88917f795d93526071b0d20cfabd8e0a /src/binder/assemblybinder.cpp | |
parent | 48fa30ee5aa0b95a939934da40822f46b16ee807 (diff) | |
download | coreclr-dd9317c7958f4fb65f45420433c587ea5e122ab2.tar.gz coreclr-dd9317c7958f4fb65f45420433c587ea5e122ab2.tar.bz2 coreclr-dd9317c7958f4fb65f45420433c587ea5e122ab2.zip |
Enable overriding assemblies from TPA
Diffstat (limited to 'src/binder/assemblybinder.cpp')
-rw-r--r-- | src/binder/assemblybinder.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/binder/assemblybinder.cpp b/src/binder/assemblybinder.cpp index 55d0147b07..70f698f10f 100644 --- a/src/binder/assemblybinder.cpp +++ b/src/binder/assemblybinder.cpp @@ -50,7 +50,9 @@ BOOL IsCompilationProcess(); #include "clrprivbindercoreclr.h" #include "clrprivbinderassemblyloadcontext.h" // Helper function in the VM, invoked by the Binder, to invoke the host assembly resolver -extern HRESULT RuntimeInvokeHostAssemblyResolver(INT_PTR pManagedAssemblyLoadContextToBindWithin, IAssemblyName *pIAssemblyName, ICLRPrivAssembly **ppLoadedAssembly); +extern HRESULT RuntimeInvokeHostAssemblyResolver(INT_PTR pManagedAssemblyLoadContextToBindWithin, + IAssemblyName *pIAssemblyName, CLRPrivBinderCoreCLR *pTPABinder, + BINDER_SPACE::AssemblyName *pAssemblyName, ICLRPrivAssembly **ppLoadedAssembly); // Helper to check if we have a host assembly resolver set extern BOOL RuntimeCanUseAppPathAssemblyResolver(DWORD adid); @@ -1814,6 +1816,7 @@ namespace BINDER_SPACE HRESULT AssemblyBinder::BindUsingHostAssemblyResolver (/* in */ INT_PTR pManagedAssemblyLoadContextToBindWithin, /* in */ AssemblyName *pAssemblyName, /* in */ IAssemblyName *pIAssemblyName, + /* in */ CLRPrivBinderCoreCLR *pTPABinder, /* out */ Assembly **ppAssembly) { HRESULT hr = E_FAIL; @@ -1821,9 +1824,10 @@ HRESULT AssemblyBinder::BindUsingHostAssemblyResolver (/* in */ INT_PTR pManaged _ASSERTE(pManagedAssemblyLoadContextToBindWithin != NULL); - // Call into the VM to use the HostAssemblyResolver and load the assembly + // RuntimeInvokeHostAssemblyResolver will perform steps 2-4 of CLRPrivBinderAssemblyLoadContext::BindAssemblyByName. ICLRPrivAssembly *pLoadedAssembly = NULL; - hr = RuntimeInvokeHostAssemblyResolver(pManagedAssemblyLoadContextToBindWithin, pIAssemblyName, &pLoadedAssembly); + hr = RuntimeInvokeHostAssemblyResolver(pManagedAssemblyLoadContextToBindWithin, pIAssemblyName, + pTPABinder, pAssemblyName, &pLoadedAssembly); if (SUCCEEDED(hr)) { _ASSERTE(pLoadedAssembly != NULL); |