View Issue Details
| Category | |||||
|---|---|---|---|---|---|
| 整備班:YAYA | |||||
| Severity | crash | Reproducibility | always | ||
| Status | assigned | ||||
| Summary | 0000665: 辞書内に存在しない関数を呼び出すコードがある場合、引数が指定されていると起動時にエラーとなり起動に失敗する。 | ||||
| Description | Windows 11 24H2 SSP/2.6.91 YAYA/Tc571-11 ISFUNC() を使用し関数の存在チェックを行ってから当該関数を呼び出すような辞書で、 対象の関数呼び出しに引数が指定されている場合、起動時に辞書エラーとなり起動に失敗します。 引数指定が無い場合は正常に起動できました。 tamaで確認したところ、「 E0071 : 存在しない関数を実行しようとしています.」が出力されていました。 サンプルコードを添付します。 適当なYAYAゴーストに投げ込んでください。 17行目のコメントアウトを外すと起動時にエラーとなります。 | ||||
| Tags | No tags attached. | ||||
| Attach Tags | |||||
| Attached Files | yaya_testcode.dic (1,280 bytes)
//******************************************************************************
// 存在しない関数呼び出しに引数指定があると起動時エラーとなる再現用コード。
// 本ファイルを適当なYAYAゴーストに投げ込んでください。
// 17行目のコメントアウトを外すと起動時にエラーとなります。
//******************************************************************************
TestFunc
{
//関数実行確認用
res.MainFunc = 'MainFuncは実行されませんでした。\n'
res.SubFunc = 'SubFuncは実行されませんでした。'
//存在しない関数名を探す
if ISFUNC('MainFunc'){
//関数が存在しないのでここは実行されない。
MainFunc() //実行されないので実行時エラーは起きない。
//MainFunc('Arg0') //引数指定がある場合、起動時エラーとなる。
//(コメントアウトを外すと再現できます)
}
else{
//ここは実行される
SubFunc()
}
SAVEVAR()
res.MainFunc
--
res.SubFunc
}
//MainFuncなんてなかった
//MainFunc
//{
// res.MainFunc = 'MainFuncが実行されました。\n'
//}
SubFunc
{
res.SubFunc = 'SubFuncが実行されました。'
}
| ||||
|
|
追加情報です。 問題の部分全体を括って、EVAL() 関数に入れることでとりあえず問題は発生しなくなりました。 なぜ、存在しない関数を呼ぶコードが必要なのかは、配布ファイルに含めないデバッグ用コードや、 製作しているゴースト毎の固有部分のファイル分離に使用しています。 |
|
|
これ、確かEVALで包むやりかたが正当で、引数がついた関数呼び出しが「読み込み時に」エラーになる仕様が正しかったはずです。 引数のない関数がエラーにならないのは、AYA4時代の互換機能かなにかだったと思います。 どちらもエラーが出るようにするのが、誤りの事前チェックとして望ましいと思います。 |
|
|
情報ありがとうございます。 過去の互換となると変更は難しそうですね。 引数有り無しどちらもエラーが出るなら気にしなかったのですが、引数付きだけエラーが出るので気になって調べてみたのですが有用な情報が得られず報告した次第です。 言われて見れば、確かに読込時点でのエラーチェックの方が安全だと思いますし、EVALすれば対応できるので仕様という事であればそのままでいいのかもしれません。 |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2025-01-17 01:11 | guest | New Issue | |
| 2025-01-17 01:11 | guest | File Added: yaya_testcode.dic | |
| 2025-01-19 02:37 | guest | Note Added: 0001535 | |
| 2025-01-20 16:58 | ponapalt | Assigned To | => ponapalt |
| 2025-01-20 16:58 | ponapalt | Status | new => assigned |
| 2025-01-20 17:02 | ponapalt | Note Added: 0001536 | |
| 2025-01-20 21:13 | guest | Note Added: 0001537 |