From: Rodrigo Kumpera Date: Tue, 22 Dec 2015 16:05:30 +0000 (-0500) Subject: Merge pull request #2034 from alexrp/ctx-cleanup X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=mono.git;a=commitdiff_plain;h=e137ff6f7e2594d3ce96b4c74b528d26cc80e11d Merge pull request #2034 from alexrp/ctx-cleanup [runtime] Actually clean up context-static data segments. --- e137ff6f7e2594d3ce96b4c74b528d26cc80e11d diff --cc mono/metadata/threads.c index 75bdcb3d0e5,6dc723925b1..112c8779454 --- a/mono/metadata/threads.c +++ b/mono/metadata/threads.c @@@ -4047,18 -3931,15 +4084,15 @@@ free_thread_static_data_helper (gpointe /* * LOCKING: requires that threads_mutex is held */ - static gboolean + static void free_context_static_data_helper (gpointer key, gpointer value, gpointer user) { - uint32_t gch = GPOINTER_TO_INT (key); - MonoAppContext *ctx = (MonoAppContext *) mono_gchandle_get_target (gch); + MonoAppContext *ctx = (MonoAppContext *) mono_gchandle_get_target (GPOINTER_TO_INT (key)); - if (!ctx) { - mono_gchandle_free (gch); - return TRUE; // Remove this key/value pair - } + if (!ctx) + return; - OffsetSize *data = user; + OffsetSize *data = (OffsetSize *)user; int idx = ACCESS_SPECIAL_STATIC_OFFSET (data->offset, index); int off = ACCESS_SPECIAL_STATIC_OFFSET (data->offset, offset); char *ptr;