diff options
author | Tom Tromey <tromey@redhat.com> | 2001-12-04 06:37:53 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2001-12-04 06:37:53 +0000 |
commit | 64d3a1b48e4a3b46bfdfcd44b9d141deb0bf3b87 (patch) | |
tree | 032cf042fe4b123003d1e37679a4281f05c4c8d8 /libjava/defineclass.cc | |
parent | 2ca2d9ee0f4845d32453142ed3466dd7116906c7 (diff) | |
download | gcc-64d3a1b48e4a3b46bfdfcd44b9d141deb0bf3b87.zip gcc-64d3a1b48e4a3b46bfdfcd44b9d141deb0bf3b87.tar.gz gcc-64d3a1b48e4a3b46bfdfcd44b9d141deb0bf3b87.tar.bz2 |
defineclass.cc (handleMethodsEnd): Invoke verifier here...
* defineclass.cc (handleMethodsEnd): Invoke verifier here...
(handleCodeAttribute): ... not here.
* verify.cc (_Jv_BytecodeVerifier::state::state): Use `copy', not
structure assignment.
From-SVN: r47591
Diffstat (limited to 'libjava/defineclass.cc')
-rw-r--r-- | libjava/defineclass.cc | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/libjava/defineclass.cc b/libjava/defineclass.cc index 3a6eaba..31a4662 100644 --- a/libjava/defineclass.cc +++ b/libjava/defineclass.cc @@ -500,10 +500,10 @@ void _Jv_ClassReader::read_methods () check_tag (name_index, JV_CONSTANT_Utf8); prepare_pool_entry (descriptor_index, JV_CONSTANT_Utf8); - + handleMethod (i, access_flags, name_index, descriptor_index); - + for (int j = 0; j < attributes_count; j++) { read_one_method_attribute (i); @@ -1282,10 +1282,6 @@ void _Jv_ClassReader::handleCodeAttribute code_length); def->interpreted_methods[method_index] = method; - - // FIXME: Shouldn't this be done after loading completes? -// if (verify) -// _Jv_VerifyMethod (method); } void _Jv_ClassReader::handleExceptionTableEntry @@ -1332,9 +1328,17 @@ void _Jv_ClassReader::handleMethodsEnd () { if (def->interpreted_methods[i] == 0) throw_class_format_error ("method with no code"); + + if (verify) + { + _Jv_InterpMethod *m; + m = (reinterpret_cast<_Jv_InterpMethod *> + (def->interpreted_methods[i])); + // FIXME: enable once verifier is more fully tested. + // _Jv_VerifyMethod (m); + } } } - } void _Jv_ClassReader::throw_class_format_error (char *msg) |