adapter pushes too many parameters
Christian Thalinger
Christian.Thalinger at Sun.COM
Wed Sep 16 03:38:09 PDT 2009
John Rose wrote:
> On Sep 16, 2009, at 3:13 AM, Christian Thalinger wrote:
>
>> I just wanted to write a testcase with an invokedynamic that takes 6
>> arguments, like:
>>
>> sum += InvokeDynamic.<int>unknown(i, i, i, i, i, i);
>>
>> and I get:
>>
>> java.lang.IllegalArgumentException: bad adapter
>> (conversion=0xfffab300): adapter pushes too many parameters
>
> I don't see why that expression must create an adapter that pushes
> lots of parameters. It must be created by your bootstrap method?
I forgot to mention that the call site is a GWT.
>
>> Increasing the MethodHandlePushLimit results in:
>>
>> java.lang.InternalError: too many bound parameters
>
> There's a limit on interpreter stack expansion in the current
> implementation, MHPL. The rationale is that we don't want to push too
> many extra arguments without running through a method entry, with its
> associated stack overflow check.
>
> However, this might be overcautious. Even if you were to insert the
> maximum number (255 arguments) that probably would not render the next
> overflow check invalid. You might try commenting out the check, if
> it's keeping you from other work.
>
> But, I think increasing the MHPL should allow the additional number of
> bound params to be pushed. So that final error looks like a plain bug.
I will try to comment it out.
-- Christian
More information about the mlvm-dev
mailing list