Prepared by: | twisti on Fri May 18 12:18:30 PDT 2012 |
---|---|
Workspace: | /home/twisti/hsx/hotspot-comp/7170053 |
Compare against: | /net/hs-usca-06.sfbay.sun.com/export/home2/16/twisti/hsx/hotspot-comp/hotspot |
Summary of changes: | 1 line changed: 0 ins; 0 del; 1 mod; 907 unchg |
Patch of changes: | 7170053.patch |
Printable review: | 7170053.pdf |
Author comments: |
7170053: crash in C2 when using -XX:+CountCompiledCalls Reviewed-by: kvn, twisti Contributed-by: Krystal Mok <sajia@taobao.com> C2 may crash when compiling methods with -XX:+CountCompiledCalls turned on. The cause is in Parse::count_compiled_calls(), where it made a TypeInstPtr from a ciMethod: const TypeInstPtr* addr_type = TypeInstPtr::make(method()); Since the klass of a ciMethod is a ciMethodKlass, which isn't a ciInstanceKlass, an assertion is hit later in Compile::flatten_alias_type(), where it's expecting a TypeInstPtr to have a ciInstanceKlass: ciInstanceKlass *k = to->klass()->as_instance_klass(); The fix is to use TypeOopPtr::make_from_constant(method()) instead of TypeInstPtr::make(method()). |
Bug id: | Bug Database |
Legend: |
Modified file Deleted file New file |
Cdiffs
Udiffs
Wdiffs
Sdiffs
Frames
Old
New
Patch
Raw
src/share/vm/opto/doCall.cpp
1 line changed: 0 ins; 0 del; 1 mod; 907 unchg
This code review page was prepared using /home/twisti/bin/webrev (vers 23.18-hg-never).