Tue, 31 Jan 2012 07:18:03 -0800
7140924: SIGSEGV in compiled code for sun.awt.X11.XDecoratedPeer.updateMinSizeHints
Summary: Use unknown_obj instead of empty_map for NULL or Constant Pool object constants in bytecode Escape Analyzer.
Reviewed-by: iveresov, never
src/share/vm/ci/bcEscapeAnalyzer.cpp | file | annotate | diff | comparison | revisions |
1.1 --- a/src/share/vm/ci/bcEscapeAnalyzer.cpp Mon Jan 30 19:37:14 2012 -0800 1.2 +++ b/src/share/vm/ci/bcEscapeAnalyzer.cpp Tue Jan 31 07:18:03 2012 -0800 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. 1.6 + * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -359,7 +359,7 @@ 1.11 case Bytecodes::_nop: 1.12 break; 1.13 case Bytecodes::_aconst_null: 1.14 - state.apush(empty_map); 1.15 + state.apush(unknown_obj); 1.16 break; 1.17 case Bytecodes::_iconst_m1: 1.18 case Bytecodes::_iconst_0: 1.19 @@ -392,6 +392,8 @@ 1.20 if (tag.is_long() || tag.is_double()) { 1.21 // Only longs and doubles use 2 stack slots. 1.22 state.lpush(); 1.23 + } else if (tag.basic_type() == T_OBJECT) { 1.24 + state.apush(unknown_obj); 1.25 } else { 1.26 state.spush(); 1.27 }