Hi Daniel!
On Saturday, 9. March 2002 01:29, you wrote: > With version 5: I have this class that fails the JDK verifier but passes > JustIce: > > CLASSPATH=/tmp/bcel-5.0/bcel.jar:~/Nice/share/java/nice.jar java -verify > nice.getopt.package > Exception in thread "main" java.lang.VerifyError: (class: > nice/getopt/package, method: parse signature: > (Ljava/lang/String;[Ljava/lang/String;Lnice/lang/Sequence;)Lnice/lang/Seque >nce;) Incompatible argument to function > Please do me a favor and help me make JustIce better! I really mean it. As a first step, thank you for your bug report. The offending instruction in "parse" is at offset 54, it expects a java.lang.Object[] but there's only a java.lang.Object on the stack. The checks are already there, but they are disabled. Please enable them (in InstConstraintVisitor.java search for TODO and when I say something about some Staerk-et-al approach (four! occurences) just remove the '//' comments). Then continue to use JustIce. I believe it rejects more classes with the checks enabled than it should - which is the reason why I disabled the checks. However, you might feel that this is not quite the truth and the checks _SHOULD_ be enabled by default. I would change it in the next release then. There is a chance that you'll find JustIce should be left disabled because it rejects too much after they're enabled. If this is the case, I would of course still like JustIce to find the problem that the Sun Verifier found. I have an idea about this (it's not really tricky: the verifier generalizes its knowledge along the inheritance hierarchy in the course of its execution - but you can never generalize an array to be a non-array which is what I'd write in the new code). Thanks for making JustIce better! Enver PS: I hope you don't mind I cc'd the BCEL users list; I think it might be of general interest or some other people might like to help. PPS: people on the user list should reply to me directly. -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
