Merge pull request #2034 from alexrp/ctx-cleanup
authorRodrigo Kumpera <kumpera@gmail.com>
Tue, 22 Dec 2015 16:05:30 +0000 (11:05 -0500)
committerRodrigo Kumpera <kumpera@gmail.com>
Tue, 22 Dec 2015 16:05:30 +0000 (11:05 -0500)
[runtime] Actually clean up context-static data segments.

1  2 
mcs/class/corlib/System/Environment.cs
mono/metadata/appdomain.c
mono/metadata/domain-internals.h
mono/metadata/threads.c

Simple merge
Simple merge
index 75bdcb3d0e5dae3e3e04b65baa9f08964d7a1b6e,6dc723925b13e48635351bb6a9b24463d2b6c7fe..112c8779454ed5ef48ce13245dd4e04ada9483d5
@@@ -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;