I'm also trying to figure out a way to do the following sorts of logic
using only MethodHandle transformations:
void blah(Object arg1, Object arg2) {
pre(arg1, arg2);
try {
return someOtherCall(arg1, arg2);
} finally {
post(arg1, arg2);
}
}
The pre logic isn't hard; I think you can do a foldArguments that
returns void, and nothing gets re-inserted into the argument list.
The post logic is another story. I can handle the finally in general
with MethodHandles.catchException, but I can't call post() and then
continue to propagate the return value of someOtherCall(). Even worse,
because of the issue in my other thread, I can't insert a
non-exceptional call to post() after someOtherCall() if it needs to
receive arguments (because filterReturn doesn't get arguments).
I'm worried I've found a hole in the capabilities of method handles,
since as far as I can tell there's no way to wrap a call and do both
pre *and* post-processing with the incoming arguments.
- Charlie
--
You received this message because you are subscribed to the Google Groups "JVM
Languages" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/jvm-languages?hl=en.