James Hawkins : fusion: Handle loading 64-bit .NET assemblies.
Module: wine Branch: master Commit: dd9b0edb6f1cc22097ab7bca42aa0620c943d4bc URL: http://source.winehq.org/git/wine.git/?a=commit;h=dd9b0edb6f1cc22097ab7bca42... Author: James Hawkins <jhawkins(a)codeweavers.com> Date: Mon Aug 18 22:54:43 2008 -0500 fusion: Handle loading 64-bit .NET assemblies. --- dlls/fusion/assembly.c | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-) diff --git a/dlls/fusion/assembly.c b/dlls/fusion/assembly.c index ec86fd3..fc44e49 100644 --- a/dlls/fusion/assembly.c +++ b/dlls/fusion/assembly.c @@ -58,7 +58,7 @@ struct tagASSEMBLY HANDLE hmap; BYTE *data; - IMAGE_NT_HEADERS32 *nthdr; + IMAGE_NT_HEADERS *nthdr; IMAGE_COR20_HEADER *corhdr; METADATAHDR *metadatahdr; @@ -647,7 +647,15 @@ static HRESULT parse_pe_header(ASSEMBLY *assembly) if (!assembly->nthdr) return E_FAIL; - datadirs = assembly->nthdr->OptionalHeader.DataDirectory; + if (assembly->nthdr->FileHeader.Machine == IMAGE_FILE_MACHINE_AMD64) + { + IMAGE_OPTIONAL_HEADER64 *opthdr = + (IMAGE_OPTIONAL_HEADER64 *)&assembly->nthdr->OptionalHeader; + datadirs = opthdr->DataDirectory; + } + else + datadirs = assembly->nthdr->OptionalHeader.DataDirectory; + if (!datadirs) return E_FAIL;
participants (1)
-
Alexandre Julliard