SWFEditor 0.57 をリリースしました

以下の条件で発生する可能性のある seg.fault の不具合修正です。

  • グラフィックシンボルで10個以上の画像をまとめた(画像のみを普通のシンボルでまとめた場合も同様)SWF に以下の操作を行った場合。
    • setShapeAdjustMode で NONE 以外を指定した後で、replace*Data(画像系なら何でも)を実行した場合。
    • 画像を10個持つグラフィックシンボル(Shape Tag) に対して getTagDetail を実行した場合。
  • ボタンシンボルで10個以上の画像をまとめた SWF に対して、purgeUselessContents を実行した場合。

Windows での build の対応もあります。

不具合の理由

  • 各々の画像が10個を超えた時に realloc でメモリ領域を拡張しますが、その時にサイズに sizeof type を掛けなかった為、拡張サイズが不足していました。ワイルドポインタ系の為、問題が発生したり、しなかったりします。
  • しかも問題が起こった時には、libc で落ちたりするので gdb で追えず、valgrind に頼りました。valgrind 万歳。

TODO

  • グラフィックシンボルで複数の画像がまとめられた場合に、setShapeAdjustMode で NONE 以外を指定して、どれか画像一つでも replace*Data を実行すると、その他の画像も巻き添えになる不具合があります。はやめに直します。