Hi.
I'm using the bytecode verifier included in the BCEL (JustIce).
It seems that JustIce accepts some codes that the native verifier rejects.
In particular, it seems that the verifier does not check if the value returned
by a method is a subtype of the type displayed in the method signature.
I also downloaded from CVS the latest version of the BCEL but the problem
persists.

Am I missing something?

Thanks in advance,
        Luca

an example of a toy-class, that native verifier rejects and JustIce not, follows
in Jasmin-syntax:
(the method m returns this as an integer !!)
--------------------------------------------------



;; Produced by JasminVisitor (BCEL)
;; http://bcel.sourceforge.net/
;; Tue Sep 16 18:10:25 CEST 2003

.source prova.java
.class public prova
.super java/lang/Object

.field public i I
.field public p Lprova;

.method public <init>()V
.limit stack 2
.limit locals 1
.var 0 is this Lprova; from Label0 to Label1

Label0:
.line 1
        aload_0
        invokespecial java/lang/Object/<init>()V
.line 2
        aload_0
        iconst_0
        putfield prova.i I
.line 3
        aload_0
        aconst_null
        putfield prova.p Lprova;
Label1:
.line 1
        return

.end method

.method public m()I
.limit stack 3
.limit locals 1
.var 0 is this Lprova; from Label0 to Label1

Label0:
.line 5
        aload_0
        dup
        getfield prova.i I
        iconst_1
        iadd
        putfield prova.i I
.line 6
        aload_0

Label1:
        areturn

.end method

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to