emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/vm-limit.c,v


From: Chong Yidong
Subject: [Emacs-diffs] Changes to emacs/src/vm-limit.c,v
Date: Sat, 02 Aug 2008 22:35:21 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Chong Yidong <cyd>      08/08/02 22:35:21

Index: vm-limit.c
===================================================================
RCS file: /sources/emacs/emacs/src/vm-limit.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- vm-limit.c  14 May 2008 07:49:59 -0000      1.23
+++ vm-limit.c  2 Aug 2008 22:35:21 -0000       1.24
@@ -147,24 +147,21 @@
 #endif
   extern POINTER (*__morecore) ();
 
-
   register POINTER cp;
   unsigned long five_percent;
   unsigned long data_size;
   enum warnlevel new_warnlevel;
 
-#ifdef HAVE_GETRLIMIT
+  /* Cygwin has a faulty getrlimit implementation:
+     http://lists.gnu.org/archive/html/emacs-devel/2008-08/msg00125.html  */
+#if defined (HAVE_GETRLIMIT) && ! defined (CYGWIN)
   struct rlimit rlimit;
 
   getrlimit (RLIMIT_AS, &rlimit);
-
-  if (RLIM_INFINITY == rlimit.rlim_max)
-    return;
-
+  if (RLIM_INFINITY == rlimit.rlim_max
   /* This is a nonsensical case, but it happens -- rms.  */
-  if (rlimit.rlim_cur > rlimit.rlim_max)
+      || rlimit.rlim_cur > rlimit.rlim_max)
     return;
-
   five_percent = rlimit.rlim_max / 20;
   data_size = rlimit.rlim_cur;
 
@@ -189,14 +186,11 @@
     return;
 
   /* What level of warning does current memory usage demand?  */
-  if (data_size > five_percent * 19)
-    new_warnlevel = warned_95;
-  else if (data_size > five_percent * 17)
-    new_warnlevel = warned_85;
-  else if (data_size > five_percent * 15)
-    new_warnlevel = warned_75;
-  else
-    new_warnlevel = not_warned;
+  new_warnlevel
+    = (data_size > five_percent * 19) ? warned_95
+    : (data_size > five_percent * 17) ? warned_85
+    : (data_size > five_percent * 15) ? warned_75
+    : not_warned;
 
   /* If we have gone up a level, give the appropriate warning.  */
   if (new_warnlevel > warnlevel || new_warnlevel == warned_95)
@@ -233,8 +227,10 @@
        warnlevel = warned_85;
     }
 
+#if ! defined (HAVE_GETRLIMIT) || defined (CYGWIN)
   if (EXCEEDS_LISP_PTR (cp))
     (*warn_function) ("Warning: memory in use exceeds lisp pointer size");
+#endif
 }
 
 /* Enable memory usage warnings.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]