ClassName 関数に構造体配列を指定するとクラッシュする
2020/10/05
構造体配列を保持する Any 型の変数を ClassName 関数で使用すると PowerBuilder IDE やアプリケーションがクラッシュする事象が報告されています。
Bug ID | 5073 | ||||||
---|---|---|---|---|---|---|---|
Product | PowerBuilder EN/JP | ||||||
ステータス | Appeon にて検証中 | ||||||
発生バージョン | EN | 12.6以前 | 2017 | 2017 R2 | 2017 R3 | 2019 | 2019 R2 |
JP | 12.6以前 | - | 2017 R2 | 2017 R3 | - | - |
※ :発生バージョン :解決済み、未発生 :未確認
詳細
可変長配列の構造体配列を保持する Any 型の変数を ClassName 関数で使用すると PowerBuilder IDE や作成したアプリケーションがクラッシュします。
例えば String 型のみを持つ簡単な構造体を作成し、スクリプト内で変数を構造体の配列として宣言します。その上でこの変数を “Any データ型” 変数に割り当てた状態で、ClassName (Any データ型) 関数を呼び出すと PowerBuilder IDE がクラッシュします。
例
str_sample lstr_array[] Any la_array String ls_classname la_array = lstr_array[] ls_classname = ClassName(la_array)
回避策
- 可変長配列を設定する
- Any 型に宣言する変数も可変長配列を設定してください。今回の例では Any la_array を Any la_array[] として宣言します。