Merge branch 'master' of git://factorcode.org/git/factor

db4
Doug Coleman 2008-07-26 12:26:42 -05:00
commit 345c7d4d1a
5 changed files with 17 additions and 4 deletions

View File

@ -19,8 +19,13 @@ load-help? off
[ [
[ [
! Rehash hashtables, since bootstrap.image creates them ! Rehash hashtables, since bootstrap.image creates them
! using the host image's hashing algorithms ! using the host image's hashing algorithms. We don't
[ hashtable? ] instances [ rehash ] each ! use each-object here since the catch stack isn't yet
! set up.
begin-scan
[ hashtable? ] pusher [ (each-object) ] dip
end-scan
[ rehash ] each
boot boot
] % ] %

View File

@ -1,5 +1,12 @@
#include "master.h" #include "master.h"
void out_of_memory(void)
{
fprintf(stderr,"Out of memory\n\n");
dump_generations();
exit(1);
}
void fatal_error(char* msg, CELL tagged) void fatal_error(char* msg, CELL tagged)
{ {
fprintf(stderr,"fatal_error: %s %lx\n",msg,tagged); fprintf(stderr,"fatal_error: %s %lx\n",msg,tagged);

View File

@ -19,6 +19,7 @@ typedef enum
ERROR_MEMORY, ERROR_MEMORY,
} F_ERRORTYPE; } F_ERRORTYPE;
void out_of_memory(void);
void fatal_error(char* msg, CELL tagged); void fatal_error(char* msg, CELL tagged);
void critical_error(char* msg, CELL tagged); void critical_error(char* msg, CELL tagged);
DECLARE_PRIMITIVE(die); DECLARE_PRIMITIVE(die);

View File

@ -174,7 +174,7 @@ F_SEGMENT *alloc_segment(CELL size)
MAP_ANON | MAP_PRIVATE,-1,0); MAP_ANON | MAP_PRIVATE,-1,0);
if(array == (char*)-1) if(array == (char*)-1)
fatal_error("Out of memory in alloc_segment",0); out_of_memory();
if(mprotect(array,pagesize,PROT_NONE) == -1) if(mprotect(array,pagesize,PROT_NONE) == -1)
fatal_error("Cannot protect low guard page",(CELL)array); fatal_error("Cannot protect low guard page",(CELL)array);

View File

@ -171,7 +171,7 @@ F_SEGMENT *alloc_segment(CELL size)
if((mem = (char *)VirtualAlloc(NULL, getpagesize() * 2 + size, if((mem = (char *)VirtualAlloc(NULL, getpagesize() * 2 + size,
MEM_COMMIT, PAGE_EXECUTE_READWRITE)) == 0) MEM_COMMIT, PAGE_EXECUTE_READWRITE)) == 0)
fatal_error("Out of memory in alloc_segment",0); out_of_memory();
if (!VirtualProtect(mem, getpagesize(), PAGE_NOACCESS, &ignore)) if (!VirtualProtect(mem, getpagesize(), PAGE_NOACCESS, &ignore))
fatal_error("Cannot allocate low guard page", (CELL)mem); fatal_error("Cannot allocate low guard page", (CELL)mem);