_Jv_LookupInterfaceMethod

Bryce McKinlay bryce@albatross.co.nz
Wed Dec 1 19:02:00 GMT 1999


Per Bothner wrote:
> Alex is right. (I am a bit rusty ...)
> I meant `TREE_TYPE (method)' should give you the `IFACE'.

Cheers, that seems to work. Now, with the code:
 i = 1;
 for (meth = TYPE_METHODS (iface); ; meth = TREE_CHAIN (meth), i++)
 {
 if (meth == method)
 {
	 idx = build_int_2 (i, 0);
	 break;
	}
 if (meth == NULL_TREE)
 fatal ("internal error");
 }
I'm getting the "internal error". Debugging shows:
(gdb) p debug_tree (meth)
 <record_type 0x82219f8 Interface allocated from permanent_obstack
 permanent type_2 type_4 DI
 size <integer_cst 0x8221d40 type <integer_type 0x81fe24c> constant permanent
 64>
 align 32 symtab 0 alias set -1
 fields <field_decl 0x8221cc4
 type <record_type 0x8203a94 java.lang.Object allocated from permanent_ob
stack
 permanent type_2 type_4 DI
 size <integer_cst 0x82050b8 constant permanent 64>
 align 32 symtab 18 alias set -1 fields <field_decl 0x8204f7c vtable>
 pointer_to_this <pointer_type 0x8203bec> chain <type_decl 0x8203b54 
java.lang.Object>>
 allocated from permanent_obstack
 permanent ignored DI file Interface.java line 0 size <integer_cst 0x8205
0b8 64>
 align 32
 bitpos <integer_cst 0x82046a4 constant permanent 0> arguments <integer_c
st 0x82046a4 0>>
 pointer_to_this <pointer_type 0x8221b10> chain <type_decl 0x8221a80 Interfac
e>
and:
(gdb) p debug_tree (iface)
 <method_type 0x8221bac
 type <integer_type 0x81fe7b4 int allocated from permanent_obstack
 permanent SI
 size <integer_cst 0x81fe3fc constant permanent 32>
 align 32 symtab 1 alias set -1 precision 32
 min <integer_cst 0x81fe814 constant permanent -2147483648>
 max <integer_cst 0x81fe82c constant permanent 2147483647>
 chain <type_decl 0x81fe868 int>>
 allocated from permanent_obstack
 permanent DI
 size <integer_cst 0x81fe33c type <integer_type 0x81fe2ac> constant permanent
 64>
 align 32 symtab 0 alias set -1 method basetype <record_type 0x82219f8 Interf
ace>
 arg-types <tree_list 0x8221c0c allocated from permanent_obstack
 permanent
 value <pointer_type 0x8221b10 type <record_type 0x82219f8 Interface>
 allocated from permanent_obstack
 unsigned permanent SI size <integer_cst 0x81fe3fc 32>
 align 32 symtab 0 alias set -1>
 chain <tree_list 0x8207564 allocated from permanent_obstack
 permanent value <void_type 0x81fef08 void>>>>
?
regards
 [ bryce ]


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /