removed some vm-> pointers

Phil Dawes 2009-08-23 21:04:19 +01:00
parent 6e5ddc0c33
commit fcfd971108
10 changed files with 9 additions and 36 deletions

View File

@ -232,7 +232,7 @@ char *factorvm::unbox_alien()
VM_C_API char *unbox_alien() VM_C_API char *unbox_alien()
{ {
printf("*PHIL unbox_alien\n"); printf("*PHIL unbox_alien\n");fflush(stdout);
return vm->unbox_alien(); return vm->unbox_alien();
} }

View File

@ -33,7 +33,7 @@ const char *vm_executable_path()
if(strcmp(path, "unknown") == 0) if(strcmp(path, "unknown") == 0)
return NULL; return NULL;
return safe_strdup(path); return vm->safe_strdup(path);
} }
} }

View File

@ -31,7 +31,7 @@ const char *default_image_path()
const char *iter = path; const char *iter = path;
while(*iter) { len++; iter++; } while(*iter) { len++; iter++; }
char *new_path = (char *)safe_malloc(PATH_MAX + SUFFIX_LEN + 1); char *new_path = (char *)vm->safe_malloc(PATH_MAX + SUFFIX_LEN + 1);
memcpy(new_path,path,len + 1); memcpy(new_path,path,len + 1);
memcpy(new_path + len,SUFFIX,SUFFIX_LEN + 1); memcpy(new_path + len,SUFFIX,SUFFIX_LEN + 1);
return new_path; return new_path;

View File

@ -6,7 +6,7 @@ namespace factor
/* Snarfed from SBCL linux-so.c. You must free() this yourself. */ /* Snarfed from SBCL linux-so.c. You must free() this yourself. */
const char *vm_executable_path() const char *vm_executable_path()
{ {
char *path = (char *)safe_malloc(PATH_MAX + 1); char *path = (char *)vm->safe_malloc(PATH_MAX + 1);
int size = readlink("/proc/self/exe", path, PATH_MAX); int size = readlink("/proc/self/exe", path, PATH_MAX);
if (size < 0) if (size < 0)
@ -17,7 +17,7 @@ const char *vm_executable_path()
else else
{ {
path[size] = '\0'; path[size] = '\0';
return safe_strdup(path); return vm->safe_strdup(path);
} }
} }

View File

@ -58,7 +58,7 @@ void ffi_dlclose(dll *dll)
PRIMITIVE(existsp) PRIMITIVE(existsp)
{ {
struct stat sb; struct stat sb;
char *path = (char *)(untag_check<byte_array>(dpop()) + 1); char *path = (char *)(vm->untag_check<byte_array>(dpop()) + 1);
box_boolean(stat(path,&sb) >= 0); box_boolean(stat(path,&sb) >= 0);
} }
@ -79,7 +79,7 @@ segment *alloc_segment(cell size)
if(mprotect(array + pagesize + size,pagesize,PROT_NONE) == -1) if(mprotect(array + pagesize + size,pagesize,PROT_NONE) == -1)
fatal_error("Cannot protect high guard page",(cell)array); fatal_error("Cannot protect high guard page",(cell)array);
segment *retval = (segment *)safe_malloc(sizeof(segment)); segment *retval = (segment *)vm->safe_malloc(sizeof(segment));
retval->start = (cell)(array + pagesize); retval->start = (cell)(array + pagesize);
retval->size = size; retval->size = size;

View File

@ -40,7 +40,7 @@ typedef char symbol_char;
#define OPEN_READ(path) fopen(path,"rb") #define OPEN_READ(path) fopen(path,"rb")
#define OPEN_WRITE(path) fopen(path,"wb") #define OPEN_WRITE(path) fopen(path,"wb")
#define print_native_string(string) print_string(string) #define print_native_string(string) vm->print_string(string)
void start_thread(void *(*start_routine)(void *)); void start_thread(void *(*start_routine)(void *));

View File

@ -92,7 +92,7 @@ bool quotation_jit::stack_frame_p()
switch(tagged<object>(obj).type()) switch(tagged<object>(obj).type())
{ {
case WORD_TYPE: case WORD_TYPE:
if(untag<word>(obj)->subprimitive == F) if(myvm->untag<word>(obj)->subprimitive == F)
return true; return true;
break; break;
case QUOTATION_TYPE: case QUOTATION_TYPE:

View File

@ -64,20 +64,9 @@ template <typename TYPE> TYPE *factorvm::untag_check(cell value)
return tagged<TYPE>(value).untag_check(this); return tagged<TYPE>(value).untag_check(this);
} }
template <typename TYPE> TYPE *untag_check(cell value)
{
return vm->untag_check<TYPE>(value);
}
template <typename TYPE> TYPE *factorvm::untag(cell value) template <typename TYPE> TYPE *factorvm::untag(cell value)
{ {
return tagged<TYPE>(value).untagged(); return tagged<TYPE>(value).untagged();
} }
template <typename TYPE> TYPE *untag(cell value)
{
return vm->untag<TYPE>(value);
}
} }

View File

@ -11,11 +11,6 @@ void *factorvm::safe_malloc(size_t size)
return ptr; return ptr;
} }
void *safe_malloc(size_t size)
{
return vm->safe_malloc(size);
}
vm_char *factorvm::safe_strdup(const vm_char *str) vm_char *factorvm::safe_strdup(const vm_char *str)
{ {
vm_char *ptr = STRDUP(str); vm_char *ptr = STRDUP(str);
@ -23,10 +18,6 @@ vm_char *factorvm::safe_strdup(const vm_char *str)
return ptr; return ptr;
} }
vm_char *safe_strdup(const vm_char *str)
{
return vm->safe_strdup(str);
}
/* We don't use printf directly, because format directives are not portable. /* We don't use printf directly, because format directives are not portable.
Instead we define the common cases here. */ Instead we define the common cases here. */
@ -40,10 +31,6 @@ void factorvm::print_string(const char *str)
fputs(str,stdout); fputs(str,stdout);
} }
void print_string(const char *str)
{
return vm->print_string(str);
}
void factorvm::print_cell(cell x) void factorvm::print_cell(cell x)
{ {

View File

@ -1,7 +1,4 @@
namespace factor namespace factor
{ {
void *safe_malloc(size_t size);
vm_char *safe_strdup(const vm_char *str);
void print_string(const char *str);
} }