[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ft-devel] [GSoC] Extending the CF2 interpreter
From: |
Werner LEMBERG |
Subject: |
Re: [ft-devel] [GSoC] Extending the CF2 interpreter |
Date: |
Wed, 28 Jun 2017 14:58:07 +0200 (CEST) |
> A heads up that I've pushed a new branch ewaldhew-wip to savannah
> for ongoing work. I'll keep it based on the clean branch, and that
> on master.
OK, thanks.
> I had realised that the Type 1 and CFF builders contain practically
> the same data, [...] and I now believe there is no problem as long
> as these are correctly merged.
Yeah :-)
> I also want to bring your attention to the notes regarding `seac'
> and `callothersubr''s duplicated operations. (in Todo)
>
> For the former, following the other, implied `seac' in `endchar'
> that applies to Type 2 charstrings, i.e., retrieving charstring data
> and making the recursive call in the interpreter itself, will avoid
> the long chain of calls between the `psaux' and `type1' modules
> (which also uses a bunch of new objects - possible performance hit).
> I'm not sure if this is possible without first doing the objects
> change.
Please go for the easiest solution – the `seac' emulation in Type 2
charstrings is of limited use today because its restrictions are very
limiting (i.e., only glyph names used in `StandardEncoding'). In
other words, clean code is preferable to speed improvements.
> For the latter, those OtherSubrs are precisely the escaped
> operations in CFF charstrings. I simply duplicated the code as I
> don't know if gotos are worth it. However, they are in the same
> section of code so perhaps it won't be too confusing. (Comments will
> be added to clarify) What do you think?
Again, clean code is the preferred way to go I believe. If necessary,
it should be not too difficult to optimize hot spots later on.
Werner