File tree Expand file tree Collapse file tree 2 files changed +17
-4
lines changed
jacodb-core/src/main/kotlin/org/jacodb/impl/cfg Expand file tree Collapse file tree 2 files changed +17
-4
lines changed Original file line number Diff line number Diff line change @@ -23,6 +23,7 @@ import org.jacodb.api.cfg.*
2323import org.jacodb.impl.cfg.util.*
2424import org.objectweb.asm.Handle
2525import org.objectweb.asm.Opcodes
26+ import org.objectweb.asm.Opcodes.H_GETSTATIC
2627import org.objectweb.asm.Type
2728import org.objectweb.asm.tree.*
2829
@@ -562,7 +563,11 @@ class MethodNodeBuilder(
562563 tag,
563564 declaringClass.jvmClassName,
564565 name,
565- " (${argTypes.joinToString(" " ) { it.jvmTypeName }} )${returnType.jvmTypeName} " ,
566+ if (argTypes.isEmpty() && tag <= H_GETSTATIC ) {
567+ returnType.jvmTypeName
568+ } else {
569+ " (${argTypes.joinToString(" " ) { it.jvmTypeName }} )${returnType.jvmTypeName} "
570+ },
566571 isInterface
567572 )
568573 private val JcRawMethodConstant .asAsmType: Type
Original file line number Diff line number Diff line change @@ -1110,8 +1110,16 @@ class RawInstListBuilder(
11101110 tag,
11111111 owner.typeName(),
11121112 name,
1113- Type .getArgumentTypes(desc).map { it.descriptor.typeName() },
1114- Type .getReturnType(desc).descriptor.typeName(),
1113+ if (desc.contains(" (" )) {
1114+ Type .getArgumentTypes(desc).map { it.descriptor.typeName() }
1115+ } else {
1116+ listOf ()
1117+ },
1118+ if (desc.contains(" (" )) {
1119+ Type .getReturnType(desc).descriptor.typeName()
1120+ } else {
1121+ Type .getReturnType(" (;)$desc " ).descriptor.typeName()
1122+ },
11151123 isInterface
11161124 )
11171125
@@ -1125,7 +1133,6 @@ class RawInstListBuilder(
11251133
11261134 private fun buildInvokeDynamicInsn (insnNode : InvokeDynamicInsnNode ) {
11271135 val desc = insnNode.desc
1128- val bsmMethod = insnNode.bsm.bsmHandleArg
11291136 val bsmArgs = insnNode.bsmArgs.map {
11301137 when (it) {
11311138 is Number -> bsmNumberArg(it)
@@ -1136,6 +1143,7 @@ class RawInstListBuilder(
11361143 }
11371144 }.reversed()
11381145 val args = Type .getArgumentTypes(desc).map { pop() }.reversed()
1146+ val bsmMethod = insnNode.bsm.bsmHandleArg
11391147 val expr = JcRawDynamicCallExpr (
11401148 bsmMethod,
11411149 bsmArgs,
You can’t perform that action at this time.
0 commit comments