Title: [117133] branches/safari-536-branch/Source/_javascript_Core

Diff

Modified: branches/safari-536-branch/Source/_javascript_Core/ChangeLog (117132 => 117133)


--- branches/safari-536-branch/Source/_javascript_Core/ChangeLog	2012-05-15 20:07:31 UTC (rev 117132)
+++ branches/safari-536-branch/Source/_javascript_Core/ChangeLog	2012-05-15 20:09:13 UTC (rev 117133)
@@ -1,5 +1,24 @@
 2012-05-15  Lucas Forschler  <[email protected]>
 
+    Merge 116593
+
+    2012-05-09  Filip Pizlo  <[email protected]>
+
+            JIT memory allocator is not returning memory to the OS on Darwin
+            https://bugs.webkit.org/show_bug.cgi?id=86047
+            <rdar://problem/11414948>
+
+            Reviewed by Geoff Garen.
+
+            Work around the problem by using a different madvise() flag, but only for the JIT memory
+            allocator. Also put in ASSERTs that the call is actually working.
+
+            * jit/ExecutableAllocatorFixedVMPool.cpp:
+            (JSC::FixedVMPoolExecutableAllocator::notifyNeedPage):
+            (JSC::FixedVMPoolExecutableAllocator::notifyPageIsFree):
+
+2012-05-15  Lucas Forschler  <[email protected]>
+
     Merge 116565
 
     2012-05-09  Mark Hahnenberg  <[email protected]>

Modified: branches/safari-536-branch/Source/_javascript_Core/jit/ExecutableAllocatorFixedVMPool.cpp (117132 => 117133)


--- branches/safari-536-branch/Source/_javascript_Core/jit/ExecutableAllocatorFixedVMPool.cpp	2012-05-15 20:07:31 UTC (rev 117132)
+++ branches/safari-536-branch/Source/_javascript_Core/jit/ExecutableAllocatorFixedVMPool.cpp	2012-05-15 20:09:13 UTC (rev 117133)
@@ -78,12 +78,26 @@
     
     virtual void notifyNeedPage(void* page)
     {
+#if OS(DARWIN)
+        UNUSED_PARAM(page);
+#else
         m_reservation.commit(page, pageSize());
+#endif
     }
     
     virtual void notifyPageIsFree(void* page)
     {
+#if OS(DARWIN)
+        for (;;) {
+            int result = madvise(page, pageSize(), MADV_FREE);
+            if (!result)
+                return;
+            ASSERT(result == -1);
+            ASSERT(errno == EAGAIN);
+        }
+#else
         m_reservation.decommit(page, pageSize());
+#endif
     }
 
 private:
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to