7140924: SIGSEGV in compiled code for sun.awt.X11.XDecoratedPeer.updateMinSizeHints
Use unknown_obj instead of empty_map for NULL or Constant Pool object constants in bytecode Escape Analyzer. Reviewed-by: iveresov, never
This commit is contained in:
parent
082b8cb318
commit
1b91bcb342
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -359,7 +359,7 @@ void BCEscapeAnalyzer::iterate_one_block(ciBlock *blk, StateInfo &state, Growabl
|
||||
case Bytecodes::_nop:
|
||||
break;
|
||||
case Bytecodes::_aconst_null:
|
||||
state.apush(empty_map);
|
||||
state.apush(unknown_obj);
|
||||
break;
|
||||
case Bytecodes::_iconst_m1:
|
||||
case Bytecodes::_iconst_0:
|
||||
@ -392,6 +392,8 @@ void BCEscapeAnalyzer::iterate_one_block(ciBlock *blk, StateInfo &state, Growabl
|
||||
if (tag.is_long() || tag.is_double()) {
|
||||
// Only longs and doubles use 2 stack slots.
|
||||
state.lpush();
|
||||
} else if (tag.basic_type() == T_OBJECT) {
|
||||
state.apush(unknown_obj);
|
||||
} else {
|
||||
state.spush();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user