ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

デバッグログ出力呼び出しの三項演算子

2007-11-21 21:54:18 | PG(Java)

Javaのデバッグログ出力メソッドを削除するライブラリーで、メソッド呼び出しの引数の中で三項演算子を使っている場合に変換できなかったので、修正してみた。

このライブラリーは メソッド呼び出しのスタック使用量に相当する引数のPUSHを削除しているので、スタック計算が重要になっている。しかし、三項演算子はIFやGOTO命令で分岐しているのだが、そこでジャンプした先(GOTOの直後の命令)のスタック使用量を正しく計算できていなかった。これが敗因。
ジャンプする命令は 他にもSWITCHとかTABLEとかいう感じのがあるみたいなんだけど、たぶんメソッドの引数を計算する時には出てこないと思うので、対応は省略。
メソッドを呼び出す為の引数をスタックに積む以外は、何らかの処理が終わった後にスタックが増減している要因は無いんじゃないかと思うんだよね。だからif文だろうがswitch文だろうが、メソッド呼び出し以外の命令の開始時点のスタック使用量は、たぶん0。という前提でロジックを端折ったので、もし違ってたらまた直さなきゃ(汗)…そうなると複雑そうなので、直せるかどうか分からないけど(爆)


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ソーサルカンパニーリプレイ... | トップ | NWノベル『柊蓮司と宝玉の少女』 »
最新の画像もっと見る

コメントを投稿

PG(Java)」カテゴリの最新記事