> 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

Reply via email to