RFR (XS): Crash when running with -XX:+PrintInlining

Schoesser, Andreas andreas.schoesser at sap.com
Tue Jul 2 09:11:13 PDT 2013


Hi Roland,

I fixed this in an older version of OpenJDK which used this declaration of GrowableArray::at()
  E at(int i) const { ...
which returns a copy and didn't realize that the declaration changed in the current OpenJDK version:
  E& at(int i) const { ... :-(
which does not return a copy.

So, you're right, in the current OpenJDK version, this issue is already fixed (using a more general solution :) and my patch is not necessary any more...

Sorry for the confusion!

Best regards,
Andreas

-----Original Message-----
From: Roland Westrelin [mailto:roland.westrelin at oracle.com] 
Sent: Dienstag, 2. Juli 2013 17:33
To: Schoesser, Andreas
Cc: hotspot-compiler-dev at openjdk.java.net
Subject: Re: RFR (XS): Crash when running with -XX:+PrintInlining

Hi Andreas,

Thank you for the bug report and suggested fix.

> - In Compile::print_inlining_skip(), the CallGenerator is not annotated at the actual _print_inlining_list array entry (type "PrintInliningBuffer") but at a copy of the entry which gets discarded.

This:
_print_inlining_list->at(_print_inlining).set_cg(cg);
only modifies a copy?

It's strange because at() is declared as:

  E& at(int i) {

so at() returns a reference and the element of the list should be modified in place, right?

There's a second at() definition:

  E const& at(int i) const {

which as I understand shouldn't be used here. What compiler are you seeing this with?

Roland.



More information about the hotspot-compiler-dev mailing list