The following is the review comment from Ken:
Kenneth Russell wrote:
> I don't think object-type early return values are being handled correctly. It
> looks like the assembly code expects object-type early return values to be in
> the vm_result field of the JavaThread (which I think is a much better
> solution than trying to keep them in the jvalue) but neither
> JvmtiEnvBase::force_early_return nor JavaThread::set_earlyret_value seems to
> special-case T_OBJECT. Furthermore I would be leery of trying to overload
> vm_result because I think you might take a safepoint in a routine which is
> trying to return an object to a stub via vm_result and then the early return
> value would be overwritten. I think you should probably add a new field to
> the JavaThread which is your early return oop result and scan that field in
> oops_do. I would like to see that field added to the JvmtiThreadState instead
> but it doesn't look like that is scanned for oops during GC. Maybe it should be.
>
> -Ken
This issue has to be fixed in Mustang.
###@###.### 2005-05-10 01:11:41 GMT