I 다음 샘플 코드가 있습니다재 배열 LabelNodes는 원인이 자신의 자바 ASM에서 난장판 오프셋
GOTO L1654589030
Label L466002798
RETURN
Label L1654589030
ALOAD 0
INVOKESPECIAL java/lang/Object.<init>()V
GOTO L466002798
:
Label L1654589030
Line 3, L1654589030
ALOAD 0
INVOKESPECIAL java/lang/Object.<init>()V
RETURN
Label L466002798
내가 지시 및 라벨을 재정렬하고 두
GOTO
지침을 삽입, 기본 변환을 수행을
그러나 프레임이 ASM에 의해 계산 될 때, ArrayIndexOutOfBoundsException
을 org.objectweb.asm.ClassReader.createDebugLabel
에 던졌습니다. createDebugLabel
에서 ASM은 오프셋 65539
에서 레이블에 액세스하려고 시도하므로 충돌합니다. 나는 LabelNode
을 up
으로 새 것으로 바꿔서이 문제를 해결할 수는 있지만, 다시 말하면 모든 지시 사항을 업데이트해야 할 것입니다. 문제가 발생하는 이유는 무엇입니까?
EDIT1 |CheckClassAdapter
반환 다음 덤프 :
<init>()V
00000 Main : : GOTO L0
00001 Main : : L1
00002 Main : : FRAME FULL [com/company/Main] []
00003 Main : : RETURN
00004 Main : : L0
00005 Main : : FRAME FULL [U] []
00006 Main : : ALOAD 0
00007 Main : Main : INVOKESPECIAL java/lang/Object.<init>()V
00008 Main : : GOTO L1
FRAME FULL
가 안된다,하지만 난 그것을 어떻게 해결할 수 있습니까? 이 해결