Just one more thought...
In lines:
358 } else if (stale 0 k.get() == null) {
359 stale = i; // remember 1st stale entry index
360 }
...an index to 1st stale entry is remembered while scanning the array so
that at the end,
On Dec 6, 2014, at 1:30 PM, Peter Levart peter.lev...@gmail.com wrote:
Now what scares me (might be that I don't have an intimacy with LambdaForm
class like you do). There is a situation where you publish LambdaForm
instances via data race.
One form of LambdaForm.transformCache is an array
Peter,
Thanks for looking into that and for you initial prototype!
So WeakReferences did not hold LambdaForms long enough even with strong
back-reference from LambdaForm to the lambda form 'this' was derived
from? So final derived LambdaForms (leaves) are not kept referenced from
the code? Or
Peter,
First, just a nit. I think that in LambdaFormEditor:
289 private LambdaForm putInCache(Transform key, LambdaForm form) {
290 key = key.withResult(form);
291 for (int pass = 0; ; pass++) {
292 Object c = lambdaForm.transformCache;
293
http://cr.openjdk.java.net/~vlivanov/8066746/webrev.00/
https://bugs.openjdk.java.net/browse/JDK-8066746
Recent changes (8057656 [1]) broke MHs.explicitCastArguments for
VarargsCollector case. It introduced an equivalence check between
MHs.explicitCastArguments and MethodHandle.asType() which
Reviewed. — John
On Dec 8, 2014, at 3:47 PM, Vladimir Ivanov vladimir.x.iva...@oracle.com
wrote:
http://cr.openjdk.java.net/~vlivanov/8066746/webrev.00/
https://bugs.openjdk.java.net/browse/JDK-8066746
Recent changes (8057656 [1]) broke MHs.explicitCastArguments for
VarargsCollector