From e4bdbf150378c92ca685d5fa6b65176494758521 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bj=C3=B6rn=20Lindqvist?= Date: Mon, 21 Nov 2016 20:40:25 +0100 Subject: [PATCH] VM: better init of stdin, stdout and stderr --- vm/factor.cpp | 4 +++- vm/io.cpp | 7 ------- vm/vm.hpp | 1 - 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/vm/factor.cpp b/vm/factor.cpp index 89130caced..7ef57d1f12 100644 --- a/vm/factor.cpp +++ b/vm/factor.cpp @@ -71,13 +71,15 @@ void factor_vm::init_factor(vm_parameters* p) { init_contexts(p->datastack_size, p->retainstack_size, p->callstack_size); callbacks = new callback_heap(p->callback_size, this); load_image(p); - init_c_io(); max_pic_size = (int)p->max_pic_size; special_objects[OBJ_CELL_SIZE] = tag_fixnum(sizeof(cell)); special_objects[OBJ_ARGS] = false_object; special_objects[OBJ_EMBEDDED] = false_object; cell aliens[][2] = { + {OBJ_STDIN, (cell)stdin}, + {OBJ_STDOUT, (cell)stdout}, + {OBJ_STDERR, (cell)stderr}, {OBJ_CPU, (cell)FACTOR_CPU_STRING}, {OBJ_EXECUTABLE, (cell)safe_strdup(p->executable_path)}, {OBJ_IMAGE, (cell)safe_strdup(p->image_path)}, diff --git a/vm/io.cpp b/vm/io.cpp index 6f768b034c..ec3e2c0230 100644 --- a/vm/io.cpp +++ b/vm/io.cpp @@ -41,13 +41,6 @@ int raw_fclose(FILE* stream) { return 0; } - -void factor_vm::init_c_io() { - special_objects[OBJ_STDIN] = allot_alien(false_object, (cell)stdin); - special_objects[OBJ_STDOUT] = allot_alien(false_object, (cell)stdout); - special_objects[OBJ_STDERR] = allot_alien(false_object, (cell)stderr); -} - // Allocates memory void factor_vm::io_error_if_not_EINTR() { if (errno == EINTR) diff --git a/vm/vm.hpp b/vm/vm.hpp index e2a7872e41..1fdff17b77 100644 --- a/vm/vm.hpp +++ b/vm/vm.hpp @@ -527,7 +527,6 @@ struct factor_vm { } // io - void init_c_io(); void io_error_if_not_EINTR(); FILE* safe_fopen(char* filename, const char* mode); int safe_fgetc(FILE* stream); -- 2.34.1