general_error(ERROR_EXPIRED, obj, false_object);
if (to_boolean(ptr->base))
type_error(ALIEN_TYPE, obj);
- else
- return (char*)ptr->address;
+ return (char*)ptr->address;
}
case F_TYPE:
return NULL;
data_root<object> delegate(delegate_, this);
data_root<alien> new_alien(allot<alien>(sizeof(alien)), this);
- if (delegate.type() == ALIEN_TYPE) {
+ if (TAG(delegate_) == ALIEN_TYPE) {
tagged<alien> delegate_alien = delegate.as<alien>();
displacement += delegate_alien->displacement;
new_alien->base = delegate_alien->base;
// Allocates memory
void factor_vm::primitive_dlopen() {
data_root<byte_array> path(ctx->pop(), this);
- path.untag_check(this);
+ check_tagged(path);
data_root<dll> library(allot<dll>(sizeof(dll)), this);
library->path = path.value();
ffi_dlopen(library.untagged());
void factor_vm::primitive_dlsym() {
data_root<object> library(ctx->pop(), this);
data_root<byte_array> name(ctx->peek(), this);
- name.untag_check(this);
+ check_tagged(name);
symbol_char* sym = name->data<symbol_char>();
void factor_vm::primitive_dlsym_raw() {
data_root<object> library(ctx->pop(), this);
data_root<byte_array> name(ctx->peek(), this);
- name.untag_check(this);
+ check_tagged(name);
symbol_char* sym = name->data<symbol_char>();