vm: take a page from code_heap for safepoints
							parent
							
								
									a8c481bee3
								
							
						
					
					
						commit
						4c8dec1e98
					
				| 
						 | 
				
			
			@ -9,12 +9,13 @@ code_heap::code_heap(cell size)
 | 
			
		|||
	seg = new segment(align_page(size),true);
 | 
			
		||||
	if(!seg) fatal_error("Out of memory in code_heap constructor",size);
 | 
			
		||||
 | 
			
		||||
	cell start = seg->start + seh_area_size;
 | 
			
		||||
	cell start = seg->start + getpagesize() + seh_area_size;
 | 
			
		||||
 | 
			
		||||
	allocator = new free_list_allocator<code_block>(seg->end - start,start);
 | 
			
		||||
 | 
			
		||||
	/* See os-windows-x86.64.cpp for seh_area usage */
 | 
			
		||||
	seh_area = (char *)seg->start;
 | 
			
		||||
	safepoint_page = (void *)seg->start;
 | 
			
		||||
	seh_area = (char *)seg->start + getpagesize();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
code_heap::~code_heap()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,6 +11,9 @@ struct code_heap {
 | 
			
		|||
	/* The actual memory area */
 | 
			
		||||
	segment *seg;
 | 
			
		||||
 | 
			
		||||
	/* Memory area reserved for safepoint guard page */
 | 
			
		||||
	void *safepoint_page;
 | 
			
		||||
 | 
			
		||||
	/* Memory area reserved for SEH. Only used on Windows */
 | 
			
		||||
	char *seh_area;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue