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)
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));
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;
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);
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)
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));
}
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;