Is is something to do with the fact that <init> methods always have a void 
return type?

On Aug 30, 2012, at 3:35 PM, Remi Forax <fo...@univ-mlv.fr> wrote:

> The JVMS says the name must be a method name,
> http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-5.html#jvms-5.1
> 
> A symbolic reference to a call site specifier is derived from a 
> CONSTANT_InvokeDynamic_info structure (§4.4.10) in the binary representation 
> of a class or interface. Such a reference gives:
>       • a symbolic reference to a method handle, which will serve as a 
> bootstrap method for an invokedynamic instruction (§invokedynamic);
> 
>       • a sequence of symbolic references (to classes, method types, and 
> method handles), string literals, and runtime constants (i.e. primitive 
> numeric values), which will serve as static arguments to a bootstrap method;
> 
>       • a method name and method descriptor.
> 
> 
> so "<init>" should be possible, but I don't think the EG discuss this corner 
> case.
> 
> Rémi
> 
> On 08/30/2012 03:19 PM, Jochen Theodorou wrote:
>> Hi all,
>> 
>> I originally wrote that to the asm list, but nobody seems to know there. 
>> Anyway, for my generated bytecode the verifier complains with this message:
>> 
>> java.lang.ClassFormatError: Method "<init>" in class test has illegal 
>> signature "(Ljava/lang/Class;Ljava/util/Map;)Ljava/lang/Object;"
>> 
>> Now... there is not a single <init> method of that signature in the 
>> class test. What is new though (before it worked) is this indy call:
>> 
>> 
>>>     INVOKEDYNAMIC 
>>> <init>(Ljava/lang/Class;Ljava/util/Map;)Ljava/lang/Object; [
>>>       // handle kind 0x6 : INVOKESTATIC
>>>       
>>> org/codehaus/groovy/vmplugin/v7/IndyInterface.bootstrap((Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;)
>>>       // arguments: none
>>> 
>> And this call has the signature the verifier complains about. Is this an 
>> illegal invokedynamic call?
>> 
>> bye blackdrag
>> 
>> 
> 
> _______________________________________________
> mlvm-dev mailing list
> mlvm-dev@openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

_______________________________________________
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to