How to filter results of a virtual method?

Jim Laskey jlaskey at me.com
Fri Jan 28 06:54:18 PST 2011


Unfortunate.

On 2011-01-28, at 10:43 AM, Rémi Forax wrote:

>  Le 28/01/2011 15:31, Jim Laskey a écrit :
>> That appears to be true.
> 
> Not exactly (with the latest spec):
> 
>   exactInvoker(target.type()).bindTo(target)<==>  target
> 
> if target.isVarargsCollector() == false.
> 
> Rémi
> 
>> On 2011-01-27, at 11:09 PM, Kirill Shirokov wrote:
>> 
>>> By the way, why exactInvoker() is needed? Isn't the following true?
>>> 
>>> exactInvoker(target.type()).bindTo(target) == target
>>> 
>>> Kirill
>>> 
>>> On 01/27/2011 12:01 AM, Jim Laskey wrote:
>>>> I think it's a simple issue.  Drop should use 1 instead of 0.
>>>> 
>>>> 
>>>>     public static
>>>>     MethodHandle filterReturnValue(MethodHandle target, MethodHandle filter) {
>>>>         MethodType targetType = target.type();
>>>>         MethodType filterType = filter.type();
>>>>         if (filterType.parameterCount() != 1
>>>>             || filterType.parameterType(0) != targetType.returnType())
>>>>             System.err.println("target and filter types do not match");
>>>>         // FIXME: Too many nodes here.
>>>>         MethodHandle returner = dropArguments(filter, 0, targetType.parameterList());<<<    0 should be 1
>>>>         return foldArguments(returner, exactInvoker(target.type()).bindTo(target));
>>>>     }
>>>> 
>>>> Cheers,
>>>> 
>>>> -- Jim
>>> _______________________________________________
>>> mlvm-dev mailing list
>>> mlvm-dev at openjdk.java.net
>>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>> _______________________________________________
>> mlvm-dev mailing list
>> mlvm-dev at openjdk.java.net
>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
> 
> _______________________________________________
> mlvm-dev mailing list
> mlvm-dev at openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev



More information about the mlvm-dev mailing list