* verify.cc (type::isnull): New method.
(require_array_type): Handle case where array is null.
(verify_instructions_0) [op_arraylength]: Likewise.
From-SVN: r49555
+2002-02-06 Tom Tromey <tromey@redhat.com>
+
+ * verify.cc (type::isnull): New method.
+ (require_array_type): Handle case where array is null.
+ (verify_instructions_0) [op_arraylength]: Likewise.
+
2002-02-05 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
* configure.in: Set up PLATFORMOBJS not PLATFORM_SPECIFIC_SOURCES.
return false;
}
+ bool isnull () const
+ {
+ return key == null_type;
+ }
+
bool isinterface (_Jv_BytecodeVerifier *verifier)
{
resolve (verifier);
// compatible with type ELEMENT. Returns the actual element type.
type require_array_type (type array, type element)
{
+ // An odd case. Here we just pretend that everything went ok.
+ if (array.isnull ())
+ return element;
+
if (! array.isarray ())
verify_fail ("array required");
case op_arraylength:
{
type t = pop_type (reference_type);
- if (! t.isarray ())
+ if (! t.isarray () && ! t.isnull ())
verify_fail ("array type expected");
push_type (int_type);
}