> I think I found a few pop-push miscounts in the bytecode interpreter.
> Please review the patch below.
Thanks! I've applied the right changes :-)
> Also, not included in the patch, GETVARIATION should have negative
> opcode length, as it pushes variable amount.
No, `opcode_length' is for opcodes that move a variable amount of
bytecode data *in the data stream* to the stack. This is not the case
for GETVARIATION, since it moves just a single opcode (namely itself).
There is a single opcode that pushes a variable amount of data to the
stack, namely GETVARIATION, and it has to check the available stack
size by itself (which it already does).
> GETDATA seems to pop without pushing anything back.
Currently, it's exactly the opposite in FreeType's code: it pushes
without popping. Due to the findings of Hin-Tak we have to probably
change that, making it both popping and pushing a single element.
> RAW pushes without popping. ADJUST pops three without pushing.
OK.
> PUSHB and PUSHW seems to pop one too, which I do not quite get.
Where do you see that?
Werner
_______________________________________________
Freetype-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/freetype-devel