ASMを使用してフィールドアクセス(putfieldとgetfield)を監視しています。(putfieldの場合)私の問題は、スタックの最上位が基本値(X)で、2番目の最上位がオブジェクト参照(Y)である場合、2番目のオブジェクト参照を使用してメソッドを呼び出すJava命令を挿入するにはどうすればよいですか( Y)その1つの引数として、私のメソッドから戻った後、2つ(XとY)は失われませんか?</ p>
要約すると、JavaバイトコードレベルでJavaのスタックの最上位値に影響を与えることなく(アクセス後)、2番目の最上位オブジェクト参照にアクセスするにはどうすればよいですか?
dupを使用したいのですが、スタックの最上位値しか処理できません。したがって、値がなく、直接複製できるため、getfieldで機能します。
それを行うためのより良い方法はありますか?
ありがとう。