OSDN Ticket Archive


Ticket #33695

MTFont2Bmp::_writeGlyphToBmpBuf でエラー発生

登録: 2014-04-20 22:30 最終更新: 2014-04-20 23:57

報告者:
yknk
担当者:
yknk
チケットの種類:
バグ
状況:
完了
コンポーネント:
MIDITrail Ver.1.2.x for Windows
マイルストーン:
Version 1.2.1b for Windows (完了済み)
優先度:
5 - 中
重要度:
5 - 中
解決法:
修正済み
ファイル:
なし

詳細

フォーラムにてエラー発生の報告があった。

it doesn't work
https://sourceforge.jp/projects/miditrail/forums/23148/34137/

Windows 8 にて、MIDIファイルを開くときに下記エラーが発生するとのこと。

Program error
FUNC:MTFont2Bmp::_writeGlyphToBmpBuf
LINE:450
INFO:00000025 00000026

チケットの履歴

2014-04-20 22:30 更新者: yknk
  • 新しいチケット "MTFont2Bmp::_writeGlyphToBmpBuf でエラーが発生" が作成されました
2014-04-20 22:32 更新者: yknk
コメント

原因

Windows 8 (64bit) 日本語版で動作テストを実施したが、再現しなかった。

当該エラーは、文字列をビットマップ画像に変換する関数で発生している。

GetGlyphOutlineで得た1文字のビットマップを、文字列として横に並べるため バッファに書き込む処理で、書き込む位置がバッファの外側にはみ出すことを 検出したとき、当該エラーが発生する。

このエラーが発生は、GetGlyphOutlineが返した情報に不整合があることを意味する。

前述の通り、手元の環境では再現しないため、はみ出しを検出したときは、 エラーとせず単純にスキップする修正をして、ユーザに個別リリースした。 ユーザからは正常に動作した旨、回答があった。

2014-04-20 22:33 更新者: yknk
コメント

対策

MTFont2Bmp::_WriteGlyphToBmpBuf

文字のビットマップをバッファにコピーする際、 コピー先がバッファの領域外であることを検出したときは、 エラーとせず単純にスキップする。

本来なら警告ログを残したいところだが、 その仕組みがないのであきらめる。

2014-04-20 22:44 更新者: yknk
  • 概要が更新されました
2014-04-20 23:57 更新者: yknk
  • 解決法なし から 修正済み に更新されました
  • 状況オープン から 完了 に更新されました
  • チケット完了時刻2014-04-20 23:57 に更新されました

添付ファイルリスト

添付ファイルはありません