summaryrefslogtreecommitdiff
path: root/src/binder/assemblybinder.cpp
diff options
context:
space:
mode:
authorGaurav Khanna <gkhanna@microsoft.com>2016-05-13 09:55:19 -0700
committerGaurav Khanna <gkhanna@microsoft.com>2016-05-15 10:53:25 -0700
commitdd9317c7958f4fb65f45420433c587ea5e122ab2 (patch)
tree1dec7f6a88917f795d93526071b0d20cfabd8e0a /src/binder/assemblybinder.cpp
parent48fa30ee5aa0b95a939934da40822f46b16ee807 (diff)
downloadcoreclr-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.cpp10
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);