|
|
|
@ -356,10 +356,8 @@ enum fh_error w_user_word(struct fh_thread_s *fh, const struct fh_word_s *w0) |
|
|
|
|
case FH_INSTR_TYPESTR: |
|
|
|
|
strl = instr->data; |
|
|
|
|
if (instr->kind == FH_INSTR_ALLOCSTR) { |
|
|
|
|
TRY(fh_heap_reserve(fh, strl, &addr)); |
|
|
|
|
LOG("Exec: alloc-str \"%.*s\"", strl, fh_str_at(fh, fh->execptr)); |
|
|
|
|
fh_heap_copy(fh, addr, fh->execptr, strl); |
|
|
|
|
TRY(ds_push(fh, addr)); |
|
|
|
|
TRY(ds_push(fh, fh->execptr)); // give pointer directly into the definition
|
|
|
|
|
TRY(ds_push(fh, strl)); |
|
|
|
|
} else { |
|
|
|
|
LOG("Exec: type-str \"%.*s\"", strl, fh_str_at(fh, fh->execptr)); |
|
|
|
|