2012-05-22 Geoffrey Garen <ggaren@apple.com>
authorggaren@apple.com <ggaren@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 22 May 2012 20:20:34 +0000 (20:20 +0000)
committerggaren@apple.com <ggaren@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 22 May 2012 20:20:34 +0000 (20:20 +0000)
        Build fix.

        * wtf/RAMSize.cpp:
        (WTF::computeRAMSize): sysctl expects a uint64_t, so use that and then
        cast back to size_t. Since it's coneivable that a 32bit process would
        run on a system with more than 4GB RAM, I added a paranoid check for
        that condition.

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

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

index 07b4889..71cf6be 100644 (file)
@@ -1,3 +1,13 @@
+2012-05-22  Geoffrey Garen  <ggaren@apple.com>
+
+        Build fix.
+
+        * wtf/RAMSize.cpp:
+        (WTF::computeRAMSize): sysctl expects a uint64_t, so use that and then
+        cast back to size_t. Since it's coneivable that a 32bit process would
+        run on a system with more than 4GB RAM, I added a paranoid check for
+        that condition.
+
 2012-05-22  Jessie Berlin  <jberlin@apple.com>
 
         Build fix.
index e077261..a6d1f64 100644 (file)
@@ -45,7 +45,7 @@ static size_t computeRAMSize()
 {
 #if OS(DARWIN)
     int mib[2];
-    size_t ramSize;
+    uint64_t ramSize;
     size_t length;
 
     mib[0] = CTL_HW;
@@ -54,7 +54,7 @@ static size_t computeRAMSize()
     int sysctlResult = sysctl(mib, 2, &ramSize, &length, 0, 0);
     if (sysctlResult == -1)
         return ramSizeGuess;
-    return ramSize;
+    return ramSize > std::numeric_limits<size_t>::max() ? std::numeric_limits<size_t>::max() : static_cast<size_t>(ramSize);
 #elif OS(UNIX)
     long pages = sysconf(_SC_PHYS_PAGES);
     long pageSize = sysconf(_SC_PAGE_SIZE);