|
|
@@ -299,7 +299,11 @@ struct loop_context { |
|
|
|
|
|
|
|
static l2_word loop_callback(struct l2_vm *vm, l2_word retval, l2_word cont) { |
|
|
|
struct l2_vm_value *val = &vm->values[retval]; |
|
|
|
if (l2_value_get_type(val) == L2_VAL_TYPE_ATOM && val->atom == vm->values[vm->kstop].atom) { |
|
|
|
if (l2_value_get_type(val) == L2_VAL_TYPE_ERROR) { |
|
|
|
return retval; |
|
|
|
} else if ( |
|
|
|
l2_value_get_type(val) == L2_VAL_TYPE_ATOM && |
|
|
|
val->atom == vm->values[vm->kstop].atom) { |
|
|
|
return vm->knone; |
|
|
|
} else { |
|
|
|
return cont; |
|
|
@@ -353,7 +357,7 @@ static l2_word while_callback(struct l2_vm *vm, l2_word retval, l2_word cont_id) |
|
|
|
cont->extra.cont_call = ctx->body; |
|
|
|
return cont_id; |
|
|
|
} else { |
|
|
|
return retval; |
|
|
|
return vm->knone; |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (l2_value_get_type(ret) == L2_VAL_TYPE_ERROR) { |