Commit Graph

80 Commits

Author SHA1 Message Date
Rémi Bernon 7b0a939a1f mscoree: Fallback to assembly name if codebase path is invalid.
Also use the InprocServer32 key values if there's no subkeys, as shown
by the test results.

L.A.Noire game crashes on startup after failing to load its ErrorHandler
assembly, that has an invalid CodeBase path in the registry.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-25 21:00:51 +01:00
Esme Povirk d5711a8151 mscoree: Implement GetTokenForVTableEntry.
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-20 22:54:02 +02:00
Nikolay Sivov 72d055854b ntdll: Use single field for misc flags in ComClass redirection section.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-11 21:03:34 +02:00
Vincent Povirk e3e0cb8ebc mscoree: Replace uses of mono_domain_assembly_open.
This function is only intended to be used for the entry point
assembly.

Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-20 12:36:05 +02:00
Vincent Povirk 049e50bcaa mscoree: Use mono_get_corlib to get mscorlib image.
Apparently, mono_domain_assembly_open is intended for the entry
point assembly only, and no longer works when mscorlib is passed
in.

Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-20 12:35:59 +02:00
Jacek Caban 8f155eea7b mscoree: Use wcstok_s instead of wcstok.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-20 19:32:02 +01:00
Vincent Povirk 22e58b11a7 mscoree: Remove appdomain tracking.
This didn't work correctly with multiple runtime versions. We
should rely on Mono to keep track of AppDomains.

Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-19 20:26:53 +01:00
Vincent Povirk a391492a96 mscoree: Ignore empty privatePath.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-05 23:36:23 +01:00
Vincent Povirk 1fddf230ff Revert "mscoree: Call mono_thread_manage in GC Unsafe mode.".
This reverts commit d10f2c0723.

The bug we were working around has been fixed in upstream Mono and
in Wine Mono 4.9.4.

Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-04 22:50:34 +01:00
Vincent Povirk d10f2c0723 mscoree: Call mono_thread_manage in GC Unsafe mode.
The mono_thread_manage API expects to be called in GC Unsafe mode.

This has been the case for a while, but for some reason it only
caused problems in the Mono merge I'm working on now.

We don't need a matching exit call because we're shutting down
the runtime anyway, and we can't change GC modes after the runtime
shuts down.

Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-27 19:20:35 +01:00
Gijs Vermeulen d7031be892 mscoree: Support loading assemblies from path specified in config file.
Signed-off-by: Gijs Vermeulen <gijsvrm@codeweavers.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-18 20:20:14 +02:00
Alexandre Julliard f89ab56ef6 mscoree: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-05 17:34:22 +02:00
Michael Stefaniuc 5bd1b2652c mscoree: Remove a redundant NULL check before heap_free().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-29 22:47:57 +02:00
Vincent Povirk fe4f00681e mscoree: Don't return from _CorExeMain.
Testing on Windows shows that unmanaged threads do not keep the
process open after a .NET program's entry point and all .NET
foreground threads have exited.

Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-04 19:16:19 +02:00
Vincent Povirk e41502b429 mscoree: Add support for config stream in GetRequestedRuntime.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=37751
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-25 12:30:12 +01:00
Fabian Maurer 6428c45667 mscoree: Allow loading of registration free .NET COM objects.
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-04 15:38:47 +01:00
Michael Stefaniuc d41e6cacae mscoree: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 11:58:03 +02:00
Michael Stefaniuc b412c166b3 mscoree: Use the more common ARRAY_SIZE spelling.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-06 19:44:26 +02:00
Vincent Povirk bce8330f99 mscoree: Mono renamed mono_trace_set_assembly.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-05 19:36:15 +02:00
Nikolay Sivov cee34cb141 mscoree: Free argument buffer on error (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-23 11:41:42 +01:00
Andrew Eikum 0ea8893e1c mscoree: Leave the last backslash on application base path.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-19 20:31:51 +01:00
Vincent Povirk 4dec065e2b mscoree: Restore previous domain whenever we set it.
Unmanaged APIs could be called directly or indirectly by managed code in
any domain, and we could create problems by not restoring the old one.

Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-09 18:41:05 +09:00
Charles Davis fdeaf812e2 mscoree: Implement ICorRuntimeHost::CreateDomain{, Ex}().
Signed-off-by: Charles Davis <cdavis5x@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-18 21:05:48 +09:00
Charles Davis c129cdf145 mscoree: Improve RuntimeHost_Invoke()'s error output a bit.
Signed-off-by: Charles Davis <cdavis5x@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-17 13:03:13 +09:00
Paul Gofman 98d5c4a90f mscoree: Call native DllEntryPoint when it is defined in COR header.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-04 14:41:00 +09:00
Paul Gofman 5dea748c5b mscoree: Add FixupVTable_Assembly function which takes preloaded assembly headers.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-04 14:40:49 +09:00
Paul Gofman 43c43179cd mscoree: Implement VTable fixup for x86_64 architecture.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-26 14:50:57 +09:00
Paul Gofman 9236a668e6 mscoree: Make vtable and tokens local declarations arch independent.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-26 14:49:05 +09:00
Andrew Eikum 4d44363e60 mscoree: Set config path for default app domain.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-13 15:48:39 +09:00
Vincent Povirk 5cd6db0349 mscoree: Remove the runtime version selection logic and just use 4.0.
Mono has removed support for the .NET 2.0 profile, so we'll have to be
using 4.0 for everything next time we want to update.
2015-03-26 14:21:33 +09:00
Michael Stefaniuc 60d54eee93 mscoree: Use SUCCEEDED instead of !FAILED. 2015-03-24 18:16:00 +09:00
Vincent Povirk 6ef156e656 mscoree: Use mono_runtime_quit in shutdown process. 2014-10-16 12:59:46 +09:00
Vincent Povirk 1986e496c7 mscoree: Factor out common code for calling .NET methods. 2014-08-18 21:33:05 +02:00
Vincent Povirk 88dfdded62 mscoree: Implement corruntimehost_CreateDomainSetup. 2014-08-18 21:33:02 +02:00
Vincent Povirk fb2f1f2b64 mscoree: Implement corruntimehost_Start. 2014-08-15 17:04:58 +02:00
Vincent Povirk 3a2e88534e mscoree: Fix runtime shutdown code. 2013-11-21 13:31:20 +01:00
Alistair Leslie-Hughes a3a19518f4 mscoree: Attempt to load the assembly from the application directory. 2013-11-20 19:38:21 +01:00
Francois Gouget fbe912d73b mscoree: RuntimeHost_Destroy() is not used anymore so remove it. 2013-10-28 10:42:00 +01:00
Vincent Povirk 5e81bad239 mscoree: Call Mono's System.Environment.Exit instead of duplicating it. 2013-10-25 13:35:36 +02:00
Vincent Povirk 770918a91b mscoree: Do a "normal" runtime shutdown from _CorExeMain.
This needs to work differently from CorExitProcess because we need to wait for
foreground threads and abort the rest.
2013-10-25 13:34:47 +02:00
Vincent Povirk 6b889fe918 mscoree: Remove support for multiple Mono ABI versions.
Having two instances of Mono loaded at once is problematic, and now that we
use the 2.0 runtime to support 1.x there's no need to support old versions.
2013-10-25 13:34:26 +02:00
Frédéric Delanoy 1214fb41dd mscoree: Use BOOL type where appropriate. 2013-10-08 09:09:36 +02:00
Daniel Jelinski 1319515173 mscoree: Search for COM classes by assembly name if CodeBase not found. 2013-06-05 20:30:58 +02:00
Michael Stefaniuc 7fdcb092b7 mscoree: Use assignment instead of memcpy to copy a struct. 2013-01-25 11:17:53 +01:00
Vincent Povirk b5c663ee1e mscoree: Preserve %ecx when calling ReallyFixupVTable. 2012-09-06 14:16:45 +02:00
Vincent Povirk f2437c2b32 mscoree: Add support for tracing the entry point assembly. 2012-09-05 11:47:44 +02:00
Vincent Povirk d5cec3b08e mscoree: Avoid calling mono_image_open_from_module_handle for libraries. 2012-08-20 20:18:40 +02:00
Nikolay Sivov de37c1d57f mscoree: Call interface methods properly. 2012-08-20 10:59:11 +02:00
Alistair Leslie-Hughes 85d49c5819 mscoree: Correct possible uninitialized variable (clang). 2012-06-07 16:07:07 +02:00
Michael Stefaniuc b168da7752 mscoree: Remove duplicated include. 2012-06-07 10:33:47 +02:00