fix conc instruction
parent
2a017a336c
commit
f7ba70b8b2
|
@ -583,10 +583,6 @@ static void compileblockmain(codegen_state &gs, int wordtype) {
|
||||||
throw error{gs.ts, "too many @s"};
|
throw error{gs.ts, "too many @s"};
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (concs + 2 > MAX_ARGUMENTS) {
|
|
||||||
gs.code.push_back(BC_INST_CONC_W | BC_RET_STRING | (concs << 8));
|
|
||||||
concs = 1;
|
|
||||||
}
|
|
||||||
if (compileblockstr(gs, start, esc)) {
|
if (compileblockstr(gs, start, esc)) {
|
||||||
concs++;
|
concs++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -917,7 +917,8 @@ std::uint32_t *vm_exec(
|
||||||
((op & BC_INST_OP_MASK) == BC_INST_CONC) ? " " : ""
|
((op & BC_INST_OP_MASK) == BC_INST_CONC) ? " " : ""
|
||||||
);
|
);
|
||||||
args.resize(args.size() - numconc, any_value{cs});
|
args.resize(args.size() - numconc, any_value{cs});
|
||||||
force_arg(args.emplace_back(cs), op & BC_INST_RET_MASK);
|
args.emplace_back(cs).set_str(buf);
|
||||||
|
force_arg(args.back(), op & BC_INST_RET_MASK);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue