[sgen] Pagesize is already cached in mono_pagesize
authorVlad Brezae <brezaevlad@gmail.com>
Thu, 17 Dec 2015 23:23:21 +0000 (01:23 +0200)
committerVlad Brezae <brezaevlad@gmail.com>
Thu, 17 Dec 2015 23:55:51 +0000 (01:55 +0200)
mono/sgen/sgen-los.c

index 4fe2e9c0d6333819cd80b8e43b51b2cfd1764be9..738d9b52884ec33b7b6bab7f5b82078f6b81cb24 100644 (file)
@@ -293,8 +293,6 @@ free_los_section_memory (LOSObject *obj, size_t size)
        add_free_chunk ((LOSFreeChunks*)obj, size);
 }
 
-static int pagesize;
-
 void
 sgen_los_free_object (LOSObject *obj)
 {
@@ -312,8 +310,7 @@ sgen_los_free_object (LOSObject *obj)
        free (obj);
 #else
        if (size > LOS_SECTION_OBJECT_LIMIT) {
-               if (!pagesize)
-                       pagesize = mono_pagesize ();
+               int pagesize = mono_pagesize ();
                size += sizeof (LOSObject);
                size = SGEN_ALIGN_UP_TO (size, pagesize);
                sgen_free_os_memory (obj, size, SGEN_ALLOC_HEAP);
@@ -370,8 +367,7 @@ sgen_los_alloc_large_inner (GCVTable vtable, size_t size)
 #else
        if (size > LOS_SECTION_OBJECT_LIMIT) {
                size_t alloc_size = size;
-               if (!pagesize)
-                       pagesize = mono_pagesize ();
+               int pagesize = mono_pagesize ();
                alloc_size += sizeof (LOSObject);
                alloc_size = SGEN_ALIGN_UP_TO (alloc_size, pagesize);
                if (sgen_memgov_try_alloc_space (alloc_size, SPACE_LOS)) {