File webkitgtk-commit-size.patch of Package webkitgtk

From: Mike Gorse <mgorse@suse.com>
Date: Thu Apr 10 16:45:50 CDT 2014
Subject: [patch] Set the commit size to the kernel page size

Ppc and other architectures support multiple page sizes, so we
should not try to predict the kernel page size at runtime.

Patch adapted from https://bugzilla.redhat.com/show_bug.cgi?id=1074093.
diff -ur webkitgtk-2.2.6.orig/Source/JavaScriptCore/interpreter/JSStack.cpp webkitgtk-2.2.6/Source/JavaScriptCore/interpreter/JSStack.cpp
--- webkitgtk-2.2.6.orig/Source/JavaScriptCore/interpreter/JSStack.cpp	2014-03-19 02:53:02.000000000 -0500
+++ webkitgtk-2.2.6/Source/JavaScriptCore/interpreter/JSStack.cpp	2014-04-10 16:57:20.555885207 -0500
@@ -49,7 +49,9 @@
 {
     ASSERT(capacity && isPageAligned(capacity));
 
-    m_reservation = PageReservation::reserve(roundUpAllocationSize(capacity * sizeof(Register), commitSize), OSAllocator::JSVMStackPages);
+    // TODO how to set it only one time commitSize (replaced here by commitsize)
+    size_t commitsize = pageSize();
+    m_reservation = PageReservation::reserve(roundUpAllocationSize(capacity * sizeof(Register), commitsize), OSAllocator::JSVMStackPages);
     m_end = static_cast<Register*>(m_reservation.base());
     m_commitEnd = static_cast<Register*>(m_reservation.base());
 
@@ -75,10 +77,12 @@
         return true;
     }
 
+    // TODO how to set it only one time commitSize (replaced here by commitsize)
+    size_t commitsize = pageSize();
     // Compute the chunk size of additional memory to commit, and see if we
     // have it is still within our budget. If not, we'll fail to grow and
     // return false.
-    long delta = roundUpAllocationSize(reinterpret_cast<char*>(newEnd) - reinterpret_cast<char*>(m_commitEnd), commitSize);
+    long delta = roundUpAllocationSize(reinterpret_cast<char*>(newEnd) - reinterpret_cast<char*>(m_commitEnd), commitsize);
     if (reinterpret_cast<char*>(m_commitEnd) + delta > reinterpret_cast<char*>(m_useableEnd))
         return false;
 
openSUSE Build Service is sponsored by