2009-06-04 5 views
0

CFFフォントデータを解析するルーチンを書きました。CFFフォントデータを解析するときのスタック上の余分な項目

時々、hvcurvetovvcurvetoコマンドを処理するときにスタック上に余分なアイテムがあります。

の2つのコマンドのスタックの深さは、一部のフォントのいずれかのために

 
4, 5, 12, 13, 20, 21, ... 

または

 
8, 9, 16, 17, 24, 25, ... 

する必要があります私は、余分なパラメータは何らかの理由があるあります10のスタックサイズを取得しています。

これは私が前のコマンドを処理したことを示していますか?またはCFFフォントに共通のスタック上に余分なコマンドがありますか?

カーブコマンドがサブルーチン内にあり、余分なパラメータがsubrに渡されているようです。

CFFPストリームの途中にヒントコマンドがあると、余分なパラメータがあるようです。

答えて

1

CFF仕様によれば、スタックには余分な項目があってはいけません。なぜなら、最初と最後のスタックマーカーが明確に存在しています。

ヒントマスクを正しく処理していないことが判明しました。これは、余分なパラメータを間違ってスタックに残しました。