らんだむな記憶

blogというものを体験してみようか!的なー

mergeFonts(2)

あー、分かった。要は単純なケースしかサポートしてないんだな。

mergeFonts -cid cidfontinfo merged.cid src1.map src1.ufo src2.map src2.ufo

のようなことをしてCIDフォントが作れるんかなぁと思ったがそうではないようだ。そもそもクラッシュする箇所をコメントアウトしたところで、merged.cidという名のUFOができてしまう(!)
ということで、いまのところ(或いはずっと?)CIDフォントを作り出す機能はないようだが、中途半端にcidfontinfoから情報としてFullNameが持ってこられた状態になると、

int ufoEndFont(ufoCtx h)
{
    if ( h->stm.src )
        h->cb.stm.close(&h->cb.stm, h->stm.src);
    memFree(h,  h->top.FullName.ptr);
    return ufoSuccess;
}

memFreeでクラッシュする。たぶんcidfontinfoのreaderだか何だかが読み出したバッファを共有しているとか、staticなバッファを参照しているとかそういうのなんだろう。
まぁともかく上記のようなことはできず、

mergeFonts merged.ufo src1.ufo src2.ufo

のような単純な使用にとどめておきなさいと。