OSDN Ticket Archive


Ticket #39806

iOS版 コード分析対応

登録: 2019-11-28 01:23 最終更新: 2019-11-30 11:54

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

詳細

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

参考チケット

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

チケットの履歴

2019-11-28 01:23 更新者: yknk
  • 新しいチケット "iOS版 コード分析対応" が作成されました
2019-11-30 11:53 更新者: 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-11-30 11:53 更新者: yknk
コメント

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

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

MIDITrail/MTDashboard.mm(301)[_GetCounterPos]: 	unsigned int cw, ch = 0;
MIDITrail/MTDashboard.mm(302)[_GetCounterPos]: 	unsigned int tw, th = 0;
MIDITrail/MTDashboard.mm(355)[_GetCounterFPSPos]: 	unsigned int cw, ch = 0;
MIDITrail/MTDashboard.mm(356)[_GetCounterFPSPos]: 	unsigned int tw, th = 0;
MIDITrail/MTDashboardLive.mm(205)[_GetCounterPos]: 	unsigned int cw, ch = 0;
MIDITrail/MTDashboardLive.mm(206)[_GetCounterPos]: 	unsigned int tw, th = 0;
MIDITrail/MTDashboardLive.mm(259)[_GetCounterFPSPos]: 	unsigned int cw, ch = 0;
MIDITrail/MTDashboardLive.mm(260)[_GetCounterFPSPos]: 	unsigned int tw, th = 0;
MIDITrail/MTGridBox.mm(390)[_CreateVertexOfPortSplitLine]: 	unsigned int i, j = 0;
MIDITrail/MTNoteDesign.mm(211)[GetNoteBoxVirtexPos]: 	float bh, bw = 0.0f;
MIDITrail/MTNoteDesign.mm(242)[GetActiveNoteBoxVirtexPos]: 	float bh, bw = 0.0f;
MIDITrail/MTNoteDesign.mm(277)[GetNoteBoxVirtexPosLive]: 	float bh, bw = 0.0f;
MIDITrail/MTNoteDesign.mm(306)[GetGridBoxVirtexPos]: 	float x, bh, bw = 0.0f;
MIDITrail/MTNoteDesign.mm(341)[GetGridBoxVirtexPosLive]: 	float x, bh, bw = 0.0f;
MIDITrail/MTNoteDesign.mm(566)[GetActiveNoteBoxColor]: 	float r,g,b,a = 0.0f;
MIDITrail/MTNoteRipple.mm(372)[_SetVertexPosition]: 	float rh, rw = 0.0f;
MIDITrail/MTPianoKeyboard.mm(1678)[_RotateKey]: 	float centerY, centerZ = 0.0f;
MIDITrail/MTPianoKeyboardDesign.mm(612)[GetActiveKeyColor]: 	float r,g,b,a = 0.0f;
MIDITrail/MTPianoKeyboardDesign.mm(871)[GetKeyboardBasePos]: 	float ox, oy, oz = 0.0f;

2019-11-30 11:54 更新者: yknk
コメント

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

grep結果の続き。

MIDITrail/MTScenePianoRoll3D.mm(550)[GetDefaultViewParam]: 	float phi, theta = 0.0f;
MIDITrail/MTScenePianoRoll3D.mm(590)[GetViewParam]: 	float phi, theta = 0.0f;
MIDITrail/MTScenePianoRoll3D.mm(904)[_LoadConfViewpoint]: 	float x, y, z = 0.0f;
MIDITrail/MTScenePianoRoll3D.mm(905)[_LoadConfViewpoint]: 	float phi, theta = 0.0f;
MIDITrail/MTScenePianoRoll3DLive.mm(528)[GetDefaultViewParam]: 	float phi, theta = 0.0f;
MIDITrail/MTScenePianoRoll3DLive.mm(568)[GetViewParam]: 	float phi, theta = 0.0f;
MIDITrail/MTScenePianoRoll3DLive.mm(872)[_LoadConfViewpoint]: 	float x, y, z = 0.0f;
MIDITrail/MTScenePianoRoll3DLive.mm(873)[_LoadConfViewpoint]: 	float phi, theta = 0.0f;
MIDITrail/MTScenePianoRollRain.mm(515)[GetDefaultViewParam]: 	float phi, theta = 0.0f;
MIDITrail/MTScenePianoRollRain.mm(544)[GetViewParam]: 	float phi, theta = 0.0f;
MIDITrail/MTScenePianoRollRain.mm(861)[_LoadConfViewpoint]: 	float x, y, z = 0.0f;
MIDITrail/MTScenePianoRollRain.mm(862)[_LoadConfViewpoint]: 	float phi, theta = 0.0f;
MIDITrail/MTScenePianoRollRain2D.mm(65)[GetDefaultViewParam]: 	float phi, theta = 0.0f;
MIDITrail/MTScenePianoRollRain2DLive.mm(65)[GetDefaultViewParam]: 	float phi, theta = 0.0f;
MIDITrail/MTScenePianoRollRainLive.mm(491)[GetDefaultViewParam]: 	float phi, theta = 0.0f;
MIDITrail/MTScenePianoRollRainLive.mm(520)[GetViewParam]: 	float phi, theta = 0.0f;
MIDITrail/MTScenePianoRollRainLive.mm(827)[_LoadConfViewpoint]: 	float x, y, z = 0.0f;
MIDITrail/MTScenePianoRollRainLive.mm(828)[_LoadConfViewpoint]: 	float phi, theta = 0.0f;
MIDITrail/MTStars.mm(159)[_CreateVertexOfStars]: 	float x, y, z = 0.0f;
MIDITrail/MTStars.mm(160)[_CreateVertexOfStars]: 	float cr, cg, cb = 0.0f;

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

添付ファイルリスト

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