libgcj verifier handling of uninitialized types

Tom Tromey tromey@redhat.com
Tue Jan 15 16:26:00 GMT 2002


>>>>> "Per" == Per Bothner <per@bothner.com> writes:

Per>        // An initialized type and an uninitialized type are not
Per>        // compatible.
Per>        if (isinitialized () != k.isinitialized ())
Per> 	return false;

Per> Is this really correct?  Even if one of them is an interface?

A couple of the names in `enum type_val' are poorly chosen.
`initialized' in this context refers to the result of a `new' which
has had <init> invoked on it.

I think this check is correct, because in general we want to reject
uses of uninitialized objects.  We explicitly check for them in those
cases where they are valid (<init> invocation and putfield).

Tom



More information about the Java mailing list