Fixing compile errors on Windows
							parent
							
								
									786b9096e2
								
							
						
					
					
						commit
						6e26c7b554
					
				| 
						 | 
				
			
			@ -6,5 +6,5 @@ EXE_EXTENSION=.exe
 | 
			
		|||
CONSOLE_EXTENSION=.com
 | 
			
		||||
DLL_EXTENSION=.dll
 | 
			
		||||
SHARED_DLL_EXTENSION=.dll
 | 
			
		||||
LINKER = $(CC) -shared -mno-cygwin -o 
 | 
			
		||||
LINKER = $(CPP) -shared -mno-cygwin -o 
 | 
			
		||||
LINK_WITH_ENGINE = -l$(DLL_PREFIX)factor$(DLL_SUFFIX)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -128,7 +128,7 @@ PRIMITIVE(dlsym)
 | 
			
		|||
	gc_root<byte_array> name(dpop());
 | 
			
		||||
	name.untag_check();
 | 
			
		||||
 | 
			
		||||
	vm_char *sym = (vm_char *)(name.untagged() + 1);
 | 
			
		||||
	symbol_char *sym = name->data<symbol_char>();
 | 
			
		||||
 | 
			
		||||
	if(library.value() == F)
 | 
			
		||||
		box_alien(ffi_dlsym(NULL,sym));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,7 +17,7 @@ long exception_handler(PEXCEPTION_POINTERS pe)
 | 
			
		|||
	CONTEXT *c = (CONTEXT*)pe->ContextRecord;
 | 
			
		||||
 | 
			
		||||
	if(in_code_heap_p(c->EIP))
 | 
			
		||||
		signal_callstack_top = (void *)c->ESP;
 | 
			
		||||
		signal_callstack_top = (stack_frame *)c->ESP;
 | 
			
		||||
	else
 | 
			
		||||
		signal_callstack_top = NULL;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -43,7 +43,7 @@ long exception_handler(PEXCEPTION_POINTERS pe)
 | 
			
		|||
 | 
			
		||||
void c_to_factor_toplevel(cell quot)
 | 
			
		||||
{
 | 
			
		||||
	if(!AddVectoredExceptionHandler(0, (void*)exception_handler))
 | 
			
		||||
	if(!AddVectoredExceptionHandler(0, exception_handler))
 | 
			
		||||
		fatal_error("AddVectoredExceptionHandler failed", 0);
 | 
			
		||||
	c_to_factor(quot);
 | 
			
		||||
	RemoveVectoredExceptionHandler((void*)exception_handler);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,8 +5,8 @@
 | 
			
		|||
#define UNICODE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <shellapi.h>
 | 
			
		||||
#include <windows.h>
 | 
			
		||||
#include <shellapi.h>
 | 
			
		||||
 | 
			
		||||
namespace factor
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,12 +14,12 @@ void init_ffi(void)
 | 
			
		|||
 | 
			
		||||
void ffi_dlopen(dll *dll)
 | 
			
		||||
{
 | 
			
		||||
	dll->dll = LoadLibraryEx(alien_offset(dll->path), NULL, 0);
 | 
			
		||||
	dll->dll = LoadLibraryEx((WCHAR *)alien_offset(dll->path), NULL, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void *ffi_dlsym(dll *dll, symbol_char *symbol)
 | 
			
		||||
{
 | 
			
		||||
	return GetProcAddress(dll ? (HMODULE)dll->dll : hFactorDll, symbol);
 | 
			
		||||
	return (void *)GetProcAddress(dll ? (HMODULE)dll->dll : hFactorDll, symbol);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ffi_dlclose(dll *dll)
 | 
			
		||||
| 
						 | 
				
			
			@ -93,7 +93,8 @@ const vm_char *vm_executable_path(void)
 | 
			
		|||
 | 
			
		||||
PRIMITIVE(existsp)
 | 
			
		||||
{
 | 
			
		||||
	vm_char *path = (vm_char *)(untag_check<byte_array>(dpop()) + 1);
 | 
			
		||||
	vm_char *path = untag_check<byte_array>(dpop())->data<vm_char>();
 | 
			
		||||
	wprintf(L"existsp: path is %s\n",path);
 | 
			
		||||
	box_boolean(windows_stat(path));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -113,7 +114,7 @@ segment *alloc_segment(cell size)
 | 
			
		|||
		getpagesize(), PAGE_NOACCESS, &ignore))
 | 
			
		||||
		fatal_error("Cannot allocate high guard page", (cell)mem);
 | 
			
		||||
 | 
			
		||||
	segment *block = safe_malloc(sizeof(segment));
 | 
			
		||||
	segment *block = (segment *)safe_malloc(sizeof(segment));
 | 
			
		||||
 | 
			
		||||
	block->start = (cell)mem + getpagesize();
 | 
			
		||||
	block->size = size;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue