@@ -96,7 +96,7 @@ object ASMConverters {
96
96
case class FrameEntry (`type` : Int , local : List [Any ], stack : List [Any ]) extends Instruction { def opcode : Int = - 1 }
97
97
case class LineNumber (line : Int , start : Label ) extends Instruction { def opcode : Int = - 1 }
98
98
99
- case class MethodHandle (tag : Int , owner : String , name : String , desc : String )
99
+ case class MethodHandle (tag : Int , owner : String , name : String , desc : String , itf : Boolean )
100
100
101
101
case class ExceptionHandler (start : Label , end : Label , handler : Label , desc : Option [String ])
102
102
case class LocalVariable (name : String , desc : String , signature : Option [String ], start : Label , end : Label , index : Int )
@@ -149,7 +149,7 @@ object ASMConverters {
149
149
case _ => a // can be: Class, method Type, primitive constant
150
150
})(collection.breakOut)
151
151
152
- private def convertMethodHandle (h : asm.Handle ): MethodHandle = MethodHandle (h.getTag, h.getOwner, h.getName, h.getDesc)
152
+ private def convertMethodHandle (h : asm.Handle ): MethodHandle = MethodHandle (h.getTag, h.getOwner, h.getName, h.getDesc, h.isInterface )
153
153
154
154
private def convertHandlers (method : t.MethodNode ): List [ExceptionHandler ] = {
155
155
method.tryCatchBlocks.asScala.map(h => ExceptionHandler (applyLabel(h.start), applyLabel(h.end), applyLabel(h.handler), Option (h.`type`)))(collection.breakOut)
@@ -229,7 +229,7 @@ object ASMConverters {
229
229
case x => x.asInstanceOf [Object ]
230
230
}
231
231
232
- def unconvertMethodHandle (h : MethodHandle ): asm.Handle = new asm.Handle (h.tag, h.owner, h.name, h.desc)
232
+ def unconvertMethodHandle (h : MethodHandle ): asm.Handle = new asm.Handle (h.tag, h.owner, h.name, h.desc, h.itf )
233
233
def unconvertBsmArgs (a : List [Object ]): Array [Object ] = a.map({
234
234
case h : MethodHandle => unconvertMethodHandle(h)
235
235
case o => o
0 commit comments