/* Functions for memory limit warnings.
Copyright (C) 1990, 1992, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
- 2008 Free Software Foundation, Inc.
+ 2008, 2009, 2010 Free Software Foundation, Inc.
This file is part of GNU Emacs.
#ifdef emacs
#include <config.h>
+#include <setjmp.h>
#include "lisp.h"
#endif
available, which causes bogus "past 95% of memory limit"
warnings. Try to overcome that via circumstantial evidence. */
lim1 = info.available_memory;
- lim2 = info.available_physical_pages * 4096;
+ lim2 = info.available_physical_pages;
/* DPMI Spec: "Fields that are unavailable will hold -1." */
if ((long)lim1 == -1L)
lim1 = 0;
if ((long)lim2 == -1L)
lim2 = 0;
+ else
+ lim2 *= 4096;
/* Surely, the available memory is at least what we have physically
available, right? */
- if (lim1 > lim2)
+ if (lim1 >= lim2)
lim_data = lim1;
else
lim_data = lim2;
/* Don't believe they will give us more that 0.5 GB. */
- if (lim_data > 512 * 1024 * 1024)
- lim_data = 512 * 1024 * 1024;
+ if (lim_data > 512U * 1024U * 1024U)
+ lim_data = 512U * 1024U * 1024U;
+}
+
+unsigned long
+ret_lim_data ()
+{
+ get_lim_data ();
+ return lim_data;
}
#else /* not MSDOS */
static void