summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/binder/clrprivbindercoreclr.cpp4
-rw-r--r--src/vm/assemblynative.cpp7
2 files changed, 7 insertions, 4 deletions
diff --git a/src/binder/clrprivbindercoreclr.cpp b/src/binder/clrprivbindercoreclr.cpp
index b7a6807520..d756454edb 100644
--- a/src/binder/clrprivbindercoreclr.cpp
+++ b/src/binder/clrprivbindercoreclr.cpp
@@ -159,8 +159,8 @@ HRESULT CLRPrivBinderCoreCLR::BindUsingPEImage( /* in */ PEImage *pPEImage,
{
if (pCoreCLRFoundAssembly->GetIsInGAC())
{
- // If we were able to bind to a TPA assembly, then fail the load
- IF_FAIL_GO(HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND));
+ *ppAssembly = pCoreCLRFoundAssembly.Extract();
+ goto Exit;
}
}
}
diff --git a/src/vm/assemblynative.cpp b/src/vm/assemblynative.cpp
index ed5cd7207a..b9079ec06a 100644
--- a/src/vm/assemblynative.cpp
+++ b/src/vm/assemblynative.cpp
@@ -507,9 +507,12 @@ Assembly* AssemblyNative::LoadFromPEImage(ICLRPrivBinder* pBinderContext, PEImag
spec.GetFileOrDisplayName(0, name);
COMPlusThrowHR(COR_E_FILELOAD, dwMessageID, name);
}
+
+ BINDER_SPACE::Assembly* assem;
+ assem = BINDER_SPACE::GetAssemblyFromPrivAssemblyFast(pAssembly);
- PEAssemblyHolder pPEAssembly(PEAssembly::Open(pParentAssembly, pILImage, pNIImage, pAssembly, FALSE));
-
+ PEAssemblyHolder pPEAssembly(PEAssembly::Open(pParentAssembly, assem->GetPEImage(), assem->GetNativePEImage(), pAssembly, FALSE));
+
GCX_COOP();
IApplicationSecurityDescriptor *pDomainSecDesc = pCurDomain->GetSecurityDescriptor();