VM: merge of clone_object() and primitive_clone()

char-rename
Björn Lindqvist 2016-10-09 11:17:30 +02:00
parent 8a720c7889
commit 98db13fe9d
2 changed files with 5 additions and 8 deletions

View File

@ -45,21 +45,19 @@ void factor_vm::primitive_set_slot() {
}
// Allocates memory
cell factor_vm::clone_object(cell obj_) {
data_root<object> obj(obj_, this);
void factor_vm::primitive_clone() {
data_root<object> obj(ctx->peek(), this);
if (immediate_p(obj.value()))
return obj.value();
return;
cell size = object_size(obj.value());
object* new_obj = allot_object(obj.type(), size);
memcpy(new_obj, obj.untagged(), size);
new_obj->set_hashcode(0);
return tag_dynamic(new_obj);
ctx->replace(tag_dynamic(new_obj));
}
// Allocates memory
void factor_vm::primitive_clone() { ctx->replace(clone_object(ctx->peek())); }
// Allocates memory
void factor_vm::primitive_size() {
ctx->replace(from_unsigned_cell(object_size(ctx->peek())));

View File

@ -183,7 +183,6 @@ struct factor_vm {
void primitive_set_special_object();
void primitive_identity_hashcode();
void primitive_compute_identity_hashcode();
cell clone_object(cell obj_);
void primitive_clone();
void primitive_become();