seg = NULL;
}
-void factor_vm::init_callbacks(cell size) {
- callbacks = new callback_heap(size, this);
-}
-
bool callback_heap::return_takes_param_p() {
#if defined(FACTOR_X86) || defined(FACTOR_AMD64)
return true;
namespace factor {
-void factor_vm::init_card_decks() {
- cards_offset = (cell)data->cards - addr_to_card(data->start);
- decks_offset = (cell)data->decks - addr_to_deck(data->start);
-}
-
data_heap::data_heap(bump_allocator* vm_nursery,
cell young_size_,
cell aging_size_,
void factor_vm::set_data_heap(data_heap* data_) {
data = data_;
- init_card_decks();
+ cards_offset = (cell)data->cards - addr_to_card(data->start);
+ decks_offset = (cell)data->decks - addr_to_deck(data->start);
}
void factor_vm::init_data_heap(cell young_size, cell aging_size,
if (SSCANF(str, arg, &val) > 0) {
*value = val;
return true;
- } else
- return false;
+ }
+ return false;
}
void factor_vm::init_parameters_from_args(vm_parameters* p, int argc,
srand((unsigned int)nano_count());
init_ffi();
init_contexts(p->datastack_size, p->retainstack_size, p->callstack_size);
- init_callbacks(p->callback_size);
+ callbacks = new callback_heap(p->callback_size, this);
load_image(p);
init_c_io();
init_inline_caching((int)p->max_pic_size);
bignum* bignum_gcd(bignum* a_, bignum* b_);
//data heap
- void init_card_decks();
void set_data_heap(data_heap* data_);
void init_data_heap(cell young_size, cell aging_size, cell tenured_size);
void primitive_size();
data_heap_room data_room();
void primitive_data_room();
- void begin_scan();
- void end_scan();
cell instances(cell type);
void primitive_all_instances();
void primitive_code_blocks();
// callbacks
- void init_callbacks(cell size);
void primitive_free_callback();
void primitive_callback();
void primitive_callback_room();