From 6e26c7b55407175f8440eb17df52d92caae7ba91 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 5 May 2009 13:03:24 -0500 Subject: [PATCH] Fixing compile errors on Windows --- vm/Config.windows | 2 +- vm/alien.cpp | 2 +- vm/os-windows-nt.cpp | 4 ++-- vm/os-windows-nt.hpp | 2 +- vm/os-windows.cpp | 9 +++++---- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/vm/Config.windows b/vm/Config.windows index cdb72f4e24..b0b1352cb2 100644 --- a/vm/Config.windows +++ b/vm/Config.windows @@ -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) diff --git a/vm/alien.cpp b/vm/alien.cpp index 06dee31a14..1eb9c5a68d 100755 --- a/vm/alien.cpp +++ b/vm/alien.cpp @@ -128,7 +128,7 @@ PRIMITIVE(dlsym) gc_root name(dpop()); name.untag_check(); - vm_char *sym = (vm_char *)(name.untagged() + 1); + symbol_char *sym = name->data(); if(library.value() == F) box_alien(ffi_dlsym(NULL,sym)); diff --git a/vm/os-windows-nt.cpp b/vm/os-windows-nt.cpp index 0a63dce513..5e0a4c70c6 100755 --- a/vm/os-windows-nt.cpp +++ b/vm/os-windows-nt.cpp @@ -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); diff --git a/vm/os-windows-nt.hpp b/vm/os-windows-nt.hpp index 107e42ea2e..2765f0a180 100755 --- a/vm/os-windows-nt.hpp +++ b/vm/os-windows-nt.hpp @@ -5,8 +5,8 @@ #define UNICODE #endif -#include #include +#include namespace factor { diff --git a/vm/os-windows.cpp b/vm/os-windows.cpp index 796a1c7184..001b48ab4d 100755 --- a/vm/os-windows.cpp +++ b/vm/os-windows.cpp @@ -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(dpop()) + 1); + vm_char *path = untag_check(dpop())->data(); + 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;