OSDN Ticket Archive


Ticket #39282

macOS版 コード分析対応

登録: 2019-06-02 01:08 最終更新: 2019-06-03 23:48

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

詳細

Windows版のコード分析で抽出された問題を修正する。

参考チケット

  • #39229 Win版 コード分析対応

チケットの履歴

2019-06-02 01:08 更新者: yknk
  • 新しいチケット "macOS版 コード分析対応" が作成されました
2019-06-02 01:08 更新者: yknk
コメント

対策 1:ローカル変数初期化漏れ

ローカル変数の初期化漏れが多数検出された。初期化漏れの事例は以下の通り。

float x, y, z = 0.0f;
この場合zは0.0fで初期化されるが、x,yは初期化されないままとなる。 以下のように、変数ごとに初期化しなければならない。
float x = 0.0f;
float y = 0.0f;
float z = 0.0f;
メソッド内でローカル変数に必ず値を設定しているため、動作上問題は発生しないが、 修正しておく。

初期化漏れを洗い出すために、以下の正規表現でgrepした。

,\s*[a-zA_Z0-9]+\s*=

2019-06-02 01:10 更新者: yknk
コメント

対策 1:ローカル変数初期化漏れ(続き)

grep結果は以下の通り。変数単位で初期化するように修正した。

MTDashboard.mm(250)[_GetCounterPos]: 	unsigned int cw, ch = 0;
MTDashboard.mm(251)[_GetCounterPos]: 	unsigned int tw, th = 0;
MTDashboardLive.mm(168)[_GetCounterPos]: 	unsigned int cw, ch = 0;
MTDashboardLive.mm(169)[_GetCounterPos]: 	unsigned int tw, th = 0;
MTGridBox.mm(390)[_CreateVertexOfPortSplitLine]: 	unsigned int i, j = 0;
MTNoteDesign.mm(206)[GetNoteBoxVirtexPos]: 	float bh, bw = 0.0f;
MTNoteDesign.mm(237)[GetActiveNoteBoxVirtexPos]: 	float bh, bw = 0.0f;
MTNoteDesign.mm(272)[GetNoteBoxVirtexPosLive]: 	float bh, bw = 0.0f;
MTNoteDesign.mm(301)[GetGridBoxVirtexPos]: 	float x, bh, bw = 0.0f;
MTNoteDesign.mm(336)[GetGridBoxVirtexPosLive]: 	float x, bh, bw = 0.0f;
MTNoteDesign.mm(568)[GetActiveNoteBoxColor]: 	float r,g,b,a = 0.0f;
MTNoteRipple.mm(372)[_SetVertexPosition]: 	float rh, rw = 0.0f;
MTPianoKeyboard.mm(1705)[_RotateKey]: 	float centerY, centerZ = 0.0f;
MTPianoKeyboardDesign.mm(653)[GetActiveKeyColor]: 	float r,g,b,a = 0.0f;
MTPianoKeyboardDesign.mm(911)[GetKeyboardBasePos]: 	float ox, oy, oz = 0.0f;

2019-06-02 01:10 更新者: yknk
コメント

対策 1:ローカル変数初期化漏れ(続き)

grep結果の続き。

MTScenePianoRoll3D.mm(496)[GetDefaultViewParam]: 	float phi, theta = 0.0f;
MTScenePianoRoll3D.mm(536)[GetViewParam]: 	float phi, theta = 0.0f;
MTScenePianoRoll3D.mm(767)[_LoadConfViewpoint]: 	float x, y, z = 0.0f;
MTScenePianoRoll3D.mm(768)[_LoadConfViewpoint]: 	float phi, theta = 0.0f;
MTScenePianoRoll3DLive.mm(474)[GetDefaultViewParam]: 	float phi, theta = 0.0f;
MTScenePianoRoll3DLive.mm(514)[GetViewParam]: 	float phi, theta = 0.0f;
MTScenePianoRoll3DLive.mm(732)[_LoadConfViewpoint]: 	float x, y, z = 0.0f;
MTScenePianoRoll3DLive.mm(733)[_LoadConfViewpoint]: 	float phi, theta = 0.0f;
MTScenePianoRollRain.mm(472)[GetDefaultViewParam]: 	float phi, theta = 0.0f;
MTScenePianoRollRain.mm(501)[GetViewParam]: 	float phi, theta = 0.0f;
MTScenePianoRollRain.mm(735)[_LoadConfViewpoint]: 	float x, y, z = 0.0f;
MTScenePianoRollRain.mm(736)[_LoadConfViewpoint]: 	float phi, theta = 0.0f;
MTScenePianoRollRain2D.mm(65)[GetDefaultViewParam]: 	float phi, theta = 0.0f;
MTScenePianoRollRain2DLive.mm(65)[GetDefaultViewParam]: 	float phi, theta = 0.0f;
MTScenePianoRollRainLive.mm(447)[GetDefaultViewParam]: 	float phi, theta = 0.0f;
MTScenePianoRollRainLive.mm(476)[GetViewParam]: 	float phi, theta = 0.0f;
MTScenePianoRollRainLive.mm(697)[_LoadConfViewpoint]: 	float x, y, z = 0.0f;
MTScenePianoRollRainLive.mm(698)[_LoadConfViewpoint]: 	float phi, theta = 0.0f;
MTStars.mm(152)[_CreateVertexOfStars]: 	float x, y, z = 0.0f;
MTStars.mm(153)[_CreateVertexOfStars]: 	float cr, cg, cb = 0.0f;

2019-06-03 23:48 更新者: yknk
  • 解決法なし から 修正済み に更新されました
  • 状況オープン から 完了 に更新されました

添付ファイルリスト

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