Skip to content

Don't insert frames when expanding ASM pseudo instructions if EXPAND_FRAMES is not set.

ASM pseudo instructions are used when jump instructions need to be resized in large methods. To convert them to normal instructions, a new ClassReader->ClassWriter roundtrip is performed, with the EXPAND_ASM_INSNS flag and with the EXPAND_FRAMES flag if the class already had frames (see ClassWriter#toByteArray). If EXPAND_FRAMES is false this means the class had initially no frames, despite the fact that it has jump instructions (otherwise there could not be any ASM pseudo insns to replace). Therefore, in this case, we should not attempt to insert frames in ClassReader.

Closes #317800 (closed)

Merge request reports