[WTF] Compilation fails with system malloc
authortpopela@redhat.com <tpopela@redhat.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 23 May 2017 07:17:28 +0000 (07:17 +0000)
committertpopela@redhat.com <tpopela@redhat.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 23 May 2017 07:17:28 +0000 (07:17 +0000)
https://bugs.webkit.org/show_bug.cgi?id=172445

Reviewed by Michael Catanzaro.

We are using the bmalloc even if the system malloc should be used.
Don't use bmalloc if the system malloc is requested and add the
missing implementation for computeRAMSize() on UNIX that's utilizing
the sysinfo() call.

* wtf/RAMSize.cpp:
(WTF::computeRAMSize):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@217270 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WTF/ChangeLog
Source/WTF/wtf/RAMSize.cpp

index e5ceeb9..ceaf988 100644 (file)
@@ -1,3 +1,18 @@
+2017-05-23  Tomas Popela  <tpopela@redhat.com>
+
+        [WTF] Compilation fails with system malloc
+        https://bugs.webkit.org/show_bug.cgi?id=172445
+
+        Reviewed by Michael Catanzaro.
+
+        We are using the bmalloc even if the system malloc should be used.
+        Don't use bmalloc if the system malloc is requested and add the
+        missing implementation for computeRAMSize() on UNIX that's utilizing
+        the sysinfo() call.
+
+        * wtf/RAMSize.cpp:
+        (WTF::computeRAMSize):
+
 2017-05-22  Brian Burg  <bburg@apple.com>
 
         Add a debugging macro that sleeps a thread until a debugger attaches
index b017a26..5d34d3b 100644 (file)
 
 #if OS(WINDOWS)
 #include <windows.h>
+#elif defined(USE_SYSTEM_MALLOC) && USE_SYSTEM_MALLOC
+#if OS(UNIX)
+#include <sys/sysinfo.h>
+#endif // OS(UNIX)
 #else
 #include <bmalloc/bmalloc.h>
 #endif
 
 namespace WTF {
-    
+
 #if OS(WINDOWS)
 static const size_t ramSizeGuess = 512 * MB;
 #endif
@@ -50,6 +54,14 @@ static size_t computeRAMSize()
     if (!result)
         return ramSizeGuess;
     return status.ullTotalPhys;
+#elif defined(USE_SYSTEM_MALLOC) && USE_SYSTEM_MALLOC
+#if OS(UNIX)
+    struct sysinfo si;
+    sysinfo(&si);
+    return si.totalram * si.mem_unit;
+#else
+#error "Missing a platform specific way of determining the available RAM"
+#endif // OS(UNIX)
 #else
     return bmalloc::api::availableMemory();
 #endif