mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 19:44:41 +02:00
6772368: REGRESSION:tomcat crashed twice with JDK 7
Call make_block_at() with the original handler limits. Reviewed-by: never
This commit is contained in:
parent
f210928e73
commit
5e66955173
1 changed files with 5 additions and 4 deletions
|
@ -284,6 +284,11 @@ ciMethodBlocks::ciMethodBlocks(Arena *arena, ciMethod *meth): _method(meth),
|
||||||
//
|
//
|
||||||
int ex_start = handler->start();
|
int ex_start = handler->start();
|
||||||
int ex_end = handler->limit();
|
int ex_end = handler->limit();
|
||||||
|
// ensure a block at the start of exception range and start of following code
|
||||||
|
(void) make_block_at(ex_start);
|
||||||
|
if (ex_end < _code_size)
|
||||||
|
(void) make_block_at(ex_end);
|
||||||
|
|
||||||
if (eb->is_handler()) {
|
if (eb->is_handler()) {
|
||||||
// Extend old handler exception range to cover additional range.
|
// Extend old handler exception range to cover additional range.
|
||||||
int old_ex_start = eb->ex_start_bci();
|
int old_ex_start = eb->ex_start_bci();
|
||||||
|
@ -295,10 +300,6 @@ ciMethodBlocks::ciMethodBlocks(Arena *arena, ciMethod *meth): _method(meth),
|
||||||
eb->clear_exception_handler(); // Reset exception information
|
eb->clear_exception_handler(); // Reset exception information
|
||||||
}
|
}
|
||||||
eb->set_exception_range(ex_start, ex_end);
|
eb->set_exception_range(ex_start, ex_end);
|
||||||
// ensure a block at the start of exception range and start of following code
|
|
||||||
(void) make_block_at(ex_start);
|
|
||||||
if (ex_end < _code_size)
|
|
||||||
(void) make_block_at(ex_end);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue