mscoree: Accept "v4.0" as a runtime version in config files.
Vincent Povirk
madewokherd at gmail.com
Mon Jul 14 17:12:39 CDT 2014
For bug 34584.
-------------- next part --------------
From 52d962ba89581c11c6078df169393345b7c9b0bd Mon Sep 17 00:00:00 2001
From: Vincent Povirk <vincent at codeweavers.com>
Date: Mon, 14 Jul 2014 15:55:18 -0500
Subject: [PATCH] mscoree: Accept "v4.0" as a runtime version in config files.
---
dlls/mscoree/metahost.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/dlls/mscoree/metahost.c b/dlls/mscoree/metahost.c
index 4308c7d..465af90 100644
--- a/dlls/mscoree/metahost.c
+++ b/dlls/mscoree/metahost.c
@@ -961,14 +961,12 @@ static BOOL parse_runtime_version(LPCWSTR version, DWORD *major, DWORD *minor, D
return FALSE;
}
-HRESULT WINAPI CLRMetaHost_GetRuntime(ICLRMetaHost* iface,
- LPCWSTR pwzVersion, REFIID iid, LPVOID *ppRuntime)
+static HRESULT get_runtime(LPCWSTR pwzVersion, BOOL allow_short,
+ REFIID iid, LPVOID *ppRuntime)
{
int i;
DWORD major, minor, build;
- TRACE("%s %s %p\n", debugstr_w(pwzVersion), debugstr_guid(iid), ppRuntime);
-
if (!pwzVersion)
return E_POINTER;
@@ -983,7 +981,7 @@ HRESULT WINAPI CLRMetaHost_GetRuntime(ICLRMetaHost* iface,
for (i=0; i<NUM_RUNTIMES; i++)
{
if (runtimes[i].major == major && runtimes[i].minor == minor &&
- runtimes[i].build == build)
+ (runtimes[i].build == build || (allow_short && major >= 4 && build == 0)))
{
if (runtimes[i].found)
return ICLRRuntimeInfo_QueryInterface(&runtimes[i].ICLRRuntimeInfo_iface, iid,
@@ -1000,6 +998,14 @@ HRESULT WINAPI CLRMetaHost_GetRuntime(ICLRMetaHost* iface,
return CLR_E_SHIM_RUNTIME;
}
+HRESULT WINAPI CLRMetaHost_GetRuntime(ICLRMetaHost* iface,
+ LPCWSTR pwzVersion, REFIID iid, LPVOID *ppRuntime)
+{
+ TRACE("%s %s %p\n", debugstr_w(pwzVersion), debugstr_guid(iid), ppRuntime);
+
+ return get_runtime(pwzVersion, FALSE, iid, ppRuntime);
+}
+
HRESULT WINAPI CLRMetaHost_GetVersionFromFile(ICLRMetaHost* iface,
LPCWSTR pwzFilePath, LPWSTR pwzBuffer, DWORD *pcchBuffer)
{
@@ -1369,7 +1375,7 @@ HRESULT get_runtime_info(LPCWSTR exefile, LPCWSTR version, LPCWSTR config_file,
supported_runtime *entry;
LIST_FOR_EACH_ENTRY(entry, &parsed_config.supported_runtimes, supported_runtime, entry)
{
- hr = CLRMetaHost_GetRuntime(0, entry->version, &IID_ICLRRuntimeInfo, (void**)result);
+ hr = get_runtime(entry->version, TRUE, &IID_ICLRRuntimeInfo, (void**)result);
if (SUCCEEDED(hr))
{
found = TRUE;
--
1.8.3.2
More information about the wine-patches
mailing list