256 Symbol* _exception_type; |
256 Symbol* _exception_type; |
257 char* _message; |
257 char* _message; |
258 |
258 |
259 ErrorContext _error_context; // contains information about an error |
259 ErrorContext _error_context; // contains information about an error |
260 |
260 |
261 // Used to detect illegal jumps over calls to super() nd this() in ctors. |
|
262 int32_t _furthest_jump; |
|
263 |
|
264 void verify_method(methodHandle method, TRAPS); |
261 void verify_method(methodHandle method, TRAPS); |
265 char* generate_code_data(methodHandle m, u4 code_length, TRAPS); |
262 char* generate_code_data(methodHandle m, u4 code_length, TRAPS); |
266 void verify_exception_handler_table(u4 code_length, char* code_data, |
263 void verify_exception_handler_table(u4 code_length, char* code_data, |
267 int& min, int& max, TRAPS); |
264 int& min, int& max, TRAPS); |
268 void verify_local_variable_table(u4 code_length, char* code_data, TRAPS); |
265 void verify_local_variable_table(u4 code_length, char* code_data, TRAPS); |
404 Symbol* create_temporary_symbol( |
401 Symbol* create_temporary_symbol( |
405 const Symbol* s, int begin, int end, TRAPS); |
402 const Symbol* s, int begin, int end, TRAPS); |
406 Symbol* create_temporary_symbol(const char *s, int length, TRAPS); |
403 Symbol* create_temporary_symbol(const char *s, int length, TRAPS); |
407 |
404 |
408 TypeOrigin ref_ctx(const char* str, TRAPS); |
405 TypeOrigin ref_ctx(const char* str, TRAPS); |
409 |
|
410 // Keep track of the furthest branch done in a method to make sure that |
|
411 // there are no branches over calls to super() or this() from inside of |
|
412 // a constructor. |
|
413 int32_t furthest_jump() { return _furthest_jump; } |
|
414 |
|
415 void set_furthest_jump(int32_t target) { |
|
416 _furthest_jump = target; |
|
417 } |
|
418 |
|
419 void update_furthest_jump(int32_t target) { |
|
420 if (target > _furthest_jump) _furthest_jump = target; |
|
421 } |
|
422 |
406 |
423 }; |
407 }; |
424 |
408 |
425 inline int ClassVerifier::change_sig_to_verificationType( |
409 inline int ClassVerifier::change_sig_to_verificationType( |
426 SignatureStream* sig_type, VerificationType* inference_type, TRAPS) { |
410 SignatureStream* sig_type, VerificationType* inference_type, TRAPS) { |