Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormonojenkins <jo.shields+jenkins@xamarin.com>2020-08-22 21:27:52 +0300
committerGitHub <noreply@github.com>2020-08-22 21:27:52 +0300
commiteb2267f30ba5e4c1df203df8fc2460217f87977a (patch)
treeca0ebb1d34f6e02f0c017764cdb2194b78913e62
parent6f0cc47bbfa92a621a280a36160b5016e8fe4c24 (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.c5
-rw-r--r--mono/metadata/object-internals.h2
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;