RFR(XS): 4965252: JvmtiExport::post_raw_field_modification jni ref handling is odd

David Holmes david.holmes at oracle.com
Wed May 15 22:12:53 PDT 2013


Hi Rickard,

On 15/05/2013 7:37 PM, Rickard Bäckman wrote:
> can I please have this change reviewed?
>
> My interpretation is that this isn't really a bug, since the parameter sig_type is never set to [.

Right - it looks like a bug visually but turns out to be dead code. FYI 
the  "sig_type == '['" was added to the if under 4639363 - no idea why. 
I don't see [ ever being used for sigtype.

> The suggested change is to remove the check for [ in the if and add an assert. I also created a boolean
> to track handle creation to simplify cleanup.

Not sure the boolean was worth the effort - the existing check for L 
suffices. :)

Even the assert seems overly conservative given the single caller :)

Still trying to decide what was meant in the bug report about the lack 
of an "enclosing handle block" ??

Good to go if it hasn't already :)

Cheers,
David


>
> The caller of this method is InterpreterRuntime::post_field_modification
> which sets the sig_type to:
>
>    switch(cp_entry->flag_state()) {
>      case btos: sig_type = 'Z'; break;
>      case ctos: sig_type = 'C'; break;
>      case stos: sig_type = 'S'; break;
>      case itos: sig_type = 'I'; break;
>      case ftos: sig_type = 'F'; break;
>      case atos: sig_type = 'L'; break;
>      case ltos: sig_type = 'J'; break;
>      case dtos: sig_type = 'D'; break;
>      default:  ShouldNotReachHere(); return;
>    }
>
> Testing done: nsk.jvmti.testlist with fastdebug build.
>
> Webrev: http://cr.openjdk.java.net/~rbackman/4965252/
>
> Thanks
> /R
>
>
>


More information about the hotspot-runtime-dev mailing list