Вспомогательный класс ASM для кэширования всех инструкций

Итак, я пытаюсь реализовать преобразование кода метода с отслеживанием состояния, он начинается с моего MethodVisitor, чувствуя специальную инструкцию A, а затем все следующие инструкции необходимо кэшировать до тех пор, пока посетитель не встретит специальную инструкцию вызова для метода, который возвращает определенный результат, то мне нужно ввести некоторый код перед инструкцией A, а затем вывести все инструкции, кэшированные в кэше инструкций. Есть ли класс помощи, который поможет мне выслушать все визиты с инструкциями и может применить их при необходимости?


person Gelin Luo    schedule 19.01.2015    source источник


Ответы (1)


В случае, если вы используете только основной API, вы должны реализовать кэширование самостоятельно (AFAIK). В вашем случае лучше использовать Tree API (см. в руководстве), где у вас есть доступ к списку со всеми инструкциями из данного метода. См. http://www.geekyarticles.com/2011/10/manipulating-java-class-files-with-asm_13.html, например, как использовать Tree API.

person Grzesuav    schedule 20.01.2015
comment
В яблочко! Я использовал Tree API вместе с Core API. - person Gelin Luo; 21.01.2015