diff options
author | monojenkins <jo.shields+jenkins@xamarin.com> | 2020-08-22 21:27:52 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-22 21:27:52 +0300 |
commit | eb2267f30ba5e4c1df203df8fc2460217f87977a (patch) | |
tree | ca0ebb1d34f6e02f0c017764cdb2194b78913e62 | |
parent | 6f0cc47bbfa92a621a280a36160b5016e8fe4c24 (diff) |
[mono] Don't leak coop handles, fix type in managed ALC struct (#20281)
The important change here is not leaking the coop handles, the other is because I'm too lazy to create two separate PRs for this.
Co-authored-by: CoffeeFlux <CoffeeFlux@users.noreply.github.com>
-rw-r--r-- | mono/metadata/assembly-load-context.c | 5 | ||||
-rw-r--r-- | mono/metadata/object-internals.h | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/mono/metadata/assembly-load-context.c b/mono/metadata/assembly-load-context.c index 7aa927d21af..e9334611d08 100644 --- a/mono/metadata/assembly-load-context.c +++ b/mono/metadata/assembly-load-context.c @@ -176,9 +176,10 @@ mono_alc_is_default (MonoAssemblyLoadContext *alc) MonoAssemblyLoadContext * mono_alc_from_gchandle (MonoGCHandle alc_gchandle) { + HANDLE_FUNCTION_ENTER (); MonoManagedAssemblyLoadContextHandle managed_alc = MONO_HANDLE_CAST (MonoManagedAssemblyLoadContext, mono_gchandle_get_target_handle (alc_gchandle)); - MonoAssemblyLoadContext *alc = (MonoAssemblyLoadContext *)MONO_HANDLE_GETVAL (managed_alc, native_assembly_load_context); - return alc; + MonoAssemblyLoadContext *alc = MONO_HANDLE_GETVAL (managed_alc, native_assembly_load_context); + HANDLE_FUNCTION_RETURN_VAL (alc); } MonoGCHandle diff --git a/mono/metadata/object-internals.h b/mono/metadata/object-internals.h index ff255bbbdc4..0175b9134d3 100644 --- a/mono/metadata/object-internals.h +++ b/mono/metadata/object-internals.h @@ -1663,7 +1663,7 @@ typedef struct { MonoEvent *resolving; MonoEvent *unloading; MonoString *name; - gpointer *native_assembly_load_context; + MonoAssemblyLoadContext *native_assembly_load_context; gint64 id; gint32 internal_state; MonoBoolean is_collectible; |