This is the mail archive of the
kawa@sources.redhat.com
mailing list for the Kawa project.
Verification error in gnu.kawa.slib.printf
- To: kawa at sourceware dot cygnus dot com
- Subject: Verification error in gnu.kawa.slib.printf
- From: David Chase <chase at world dot std dot com>
- Date: Tue, 27 Feb 2001 11:19:28 -0500
I've checked this 3 different ways, and believe that it
is in fact a verification error.
Method #1:
java (1.3) -verify
Exception in thread "main" java.lang.VerifyError:
(class: gnu/kawa/slib/printf,
method: stdio$ClIprintf$V
signature:(Ljava/lang/Object;Ljava/lang/Object;Lgnu/kawa/util/LList;)Ljava/lang/Object;)
Incompatible type for getting or setting field
That was certainly informative, wasn't it?
Method #2:
BulletTrain (beta version I am testing, messages sanitized):
java.lang.VerifyError:
gnu.kawa.slib.printf
stdio$ClIprintf$V
(Ljava.lang.Object;Ljava.lang.Object;Lgnu.kawa.util.LList;)Ljava.lang.Object;
(1552a,458l):: incompatible type popped from stack,
expecting 'C=Lgnu.kawa.slib.genwrite;',
found 'C=Ljava.lang.Boolean;'
Note: (1552a,458l) means bytecode 1552, "line" 458.
Method #3:
Dumping the bytecodes:
1511 ifeq 1520
1514 getstatic #125 <Field java.lang.Boolean TRUE>
1517 goto 1523
1520 getstatic #112 <Field java.lang.Boolean FALSE>
1523 astore 18
1525 aload 18
1527 getstatic #112 <Field java.lang.Boolean FALSE>
1530 if_acmpne 1547
1533 aload 17
1535 getstatic #376 <Field gnu.text.Char Lit30>
1538 invokestatic #132 <Method boolean apply(java.lang.Object, java.lang.Object)>
1541 ifeq 2085
1544 goto 1547
1547 aconst_null
1548 aconst_null
1549 aload 18
1551 swap
1552 putfield #382 <Field gnu.expr.ModuleMethod genericWrite>
Indeed, a Boolean was stored in local #18, and that is what
is causing the problem.
David Chase