(line-number-display-limit): Doc fix.
[bpt/emacs.git] / src / vm-limit.c
index ea99ebd..eb43e83 100644 (file)
@@ -15,10 +15,11 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with GNU Emacs; see the file COPYING.  If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
 
 #ifdef emacs
-#include "config.h"
+#include <config.h>
 #include "lisp.h"
 #endif
 
@@ -44,25 +45,23 @@ static int warnlevel;
    0 means don't issue them.  */
 static void (*warn_function) ();
 
-extern POINTER sbrk ();
-
 /* Get more memory space, complaining if we're near the end. */
 
-static POINTER
-morecore_with_warning (size)
-     register int size;
+static void
+check_memory_limits ()
 {
-  POINTER result;
+  extern POINTER (*__morecore) ();
+
   register POINTER cp;
-  int five_percent;
-  int data_size;
+  unsigned long five_percent;
+  unsigned long data_size;
 
   if (lim_data == 0)
     get_lim_data ();
   five_percent = lim_data / 20;
 
   /* Find current end of memory and issue warning if getting near max */
-  cp = sbrk (0);
+  cp = (char *) (*__morecore) (0);
   data_size = (char *) cp - (char *) data_space_start;
 
   if (warn_function)
@@ -112,11 +111,6 @@ morecore_with_warning (size)
 
   if (EXCEEDS_LISP_PTR (cp))
     (*warn_function) ("Warning: memory in use exceeds lisp pointer size");
-
-  result = sbrk (size);
-  if (result == (POINTER) -1)
-    return NULL;
-  return result;
 }
 
 /* Cause reinitialization based on job parameters;
@@ -127,7 +121,7 @@ memory_warnings (start, warnfun)
      POINTER start;
      void (*warnfun) ();
 {
-  extern POINTER (* __morecore) ();     /* From gmalloc.c */
+  extern void (* __after_morecore_hook) ();     /* From gmalloc.c */
 
   if (start)
     data_space_start = start;
@@ -135,5 +129,10 @@ memory_warnings (start, warnfun)
     data_space_start = start_of_data ();
 
   warn_function = warnfun;
-  __morecore = &morecore_with_warning;
+  __after_morecore_hook = check_memory_limits;
+
+#ifdef WINDOWSNT
+  /* Force data limit to be recalculated on each run.  */
+  lim_data = 0;
+#endif
 }