Mercurial > hg > graal-jvmci-8
diff src/share/vm/oops/klassVtable.hpp @ 6934:4735d2c84362
7200776: Implement default methods in interfaces
Summary: Add generic type analysis and default method selection algorithms
Reviewed-by: coleenp, acorn
author | kamg |
---|---|
date | Thu, 11 Oct 2012 12:25:42 -0400 |
parents | d8ce2825b193 |
children | 8d9fc28831cc |
line wrap: on
line diff
--- a/src/share/vm/oops/klassVtable.hpp Thu Nov 01 13:05:47 2012 +0100 +++ b/src/share/vm/oops/klassVtable.hpp Thu Oct 11 12:25:42 2012 -0400 @@ -84,11 +84,11 @@ bool is_initialized(); // computes vtable length (in words) and the number of miranda methods - static void compute_vtable_size_and_num_mirandas(int &vtable_length, int &num_miranda_methods, - Klass* super, Array<Method*>* methods, - AccessFlags class_flags, Handle classloader, - Symbol* classname, Array<Klass*>* local_interfaces, - TRAPS); + static void compute_vtable_size_and_num_mirandas( + int* vtable_length, int* num_new_mirandas, + GrowableArray<Method*>* all_mirandas, Klass* super, + Array<Method*>* methods, AccessFlags class_flags, Handle classloader, + Symbol* classname, Array<Klass*>* local_interfaces, TRAPS); // RedefineClasses() API support: // If any entry of this vtable points to any of old_methods, @@ -125,12 +125,17 @@ // support for miranda methods bool is_miranda_entry_at(int i); - void fill_in_mirandas(int& initialized); + void fill_in_mirandas(int* initialized); static bool is_miranda(Method* m, Array<Method*>* class_methods, Klass* super); - static void add_new_mirandas_to_list(GrowableArray<Method*>* list_of_current_mirandas, Array<Method*>* current_interface_methods, Array<Method*>* class_methods, Klass* super); - static void get_mirandas(GrowableArray<Method*>* mirandas, Klass* super, Array<Method*>* class_methods, Array<Klass*>* local_interfaces); - static int get_num_mirandas(Klass* super, Array<Method*>* class_methods, Array<Klass*>* local_interfaces); - + static void add_new_mirandas_to_lists( + GrowableArray<Method*>* new_mirandas, + GrowableArray<Method*>* all_mirandas, + Array<Method*>* current_interface_methods, Array<Method*>* class_methods, + Klass* super); + static void get_mirandas( + GrowableArray<Method*>* new_mirandas, + GrowableArray<Method*>* all_mirandas, Klass* super, + Array<Method*>* class_methods, Array<Klass*>* local_interfaces); void verify_against(outputStream* st, klassVtable* vt, int index); inline InstanceKlass* ik() const;