Ah, I see that I've done a mistake, below is a corrected patch
(untested).  However, I think that the current method is flawed in
general since arguments to opcodes are completely ignored by
`SKIP_Code'.  For example, it is not possible to decide whether the
bytecode is

   SVTCA_x
   PUSHB_1
     24
   RS
   IF

or

   SVTCA_x
   PUSHB_1
     39
   RS
   IF

It seems to me that we really have to compare the *complete* bytecode
(including the arguments) within `Ins_FDEF'.

So, I've applied the updated patch you provided. The adjusted opcode sequences for the spacing functions broke Segoe UI Semibold (maybe others too), but I agree that what you did looks correct for those. This, along with the point you mentioned above about not being able to detect the pushed value, makes me think that this piece needs more work before it gets pushed out to a release. I do want to keep one or two of them in there however. I will trim down the code to patterns known to be OK, and push off work on the others until after the release.

Does this make sense to you?






_______________________________________________
Freetype-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/freetype-devel

Reply via email to