How to retrieve the receiver object of method call

Peng Du imdupeng at gmail.com
Thu Apr 8 14:11:39 PDT 2010


On 04/08/2010 04:02 PM, Tom Rodriguez wrote:
> In what context are you trying to find the receiver for compiled code?  The only place where you are guaranteed to be able to find it is at a call site in the generated code of the caller.  In other contexts you'd have to jump through some hoops to find it as local 0 and even then we might not consider it to be live so you might not be able to find it.  You'd have to use some code like the vframeStream or vframeArray logic to find the root method on the compiled method and look at local 0.
Thanks, Tom

In my case, it is inside the callee that I need to get its receiver. What if
the current method is guaranteed not to be inlined? Can I find the receiver
by directly looking at the callee's local 0, instead of walking vframes?

Thanks

-Peng
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-dev/attachments/20100408/f33f393a/attachment.html 


More information about the hotspot-dev mailing list