小编Luk*_*ytz的帖子

VerifyError:反向分支/ JVM规范4.10.2.4上存在未初始化的对象

JVM规格4.10.2.4版本7,最后一段说:

如果未初始化对象的特殊类型与除自身之外的特殊类型合并,则有效指令序列不得在操作数堆栈上或在向后分支的目标上的局部变量中具有未初始化对象

这是验证者拒绝的一个例子 - 我怀疑它应该被接受:

public scala.Tuple2<scala.runtime.Null$, scala.runtime.Null$> apply(boolean);
  flags: ACC_PUBLIC
  Code:
    stack=4, locals=2, args_size=2
       0: new           #12                 // class scala/Tuple2
       3: dup           
       4: aconst_null   
       5: iload_1       
       6: ifne          5
       9: aconst_null   
      10: invokespecial #16                 // Method scala/Tuple2."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
      13: areturn       
    LocalVariableTable:
      Start  Length  Slot  Name   Signature
             0      14     0  this   LC;
             0      14     1     x   Z
    StackMapTable: number_of_entries = 1
         frame_type = 255 /* full_frame */
        offset_delta = 5
        locals = [ class C, int ]
        stack = …
Run Code Online (Sandbox Code Playgroud)

jvm scala jvm-crash

46
推荐指数
1
解决办法
3819
查看次数

标签 统计

jvm ×1

jvm-crash ×1

scala ×1