Request for review (S): 7020118
tom.rodriguez at oracle.com
Tue Feb 22 13:32:57 PST 2011
On Feb 21, 2011, at 1:03 PM, Keith McGuigan wrote:
> Fix for 7020118: Alter frame assignability to allow for exception handler coverage of invokespecial <init>.
> Webrev: http://cr.openjdk.java.net/~kamg/7020118/webrev.00/
> This fix to the verifier makes it possible to create an exception handler that covers the entirety of an <init> method, by specifying "Top" types in the stackmap in place of "UninitializedThis". NetBeans profiler would like to generate such handlers, but the current implementation doesn't allow it.
> Thanks for any review.
minor typo: "This a rare situation"
Do you need to guard the stack bounds more carefully? They don't have to be of a similar length. In the exception case, target will always be 1 and the current stack should always be more than one because of the invokespecial. I don't see anything that keeps this from being called in other contexts though. Maybe it's impossible for this path to be used in other contexts because of the flag_this_uninit check? There appear to be no range checks even in debug mode, so are the out of bounds values guaranteed to be top?
Other than that it seems to implement what's described in the spec bug report so I guess it's good.
> - Keith
More information about the hotspot-runtime-dev