1.1 --- a/src/share/vm/oops/instanceKlass.hpp Mon Jun 12 13:58:09 2017 -0400 1.2 +++ b/src/share/vm/oops/instanceKlass.hpp Fri Jun 30 23:45:31 2017 -0700 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. 1.6 + * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -527,18 +527,36 @@ 1.11 Method* find_instance_method(Symbol* name, Symbol* signature); 1.12 static Method* find_instance_method(Array<Method*>* methods, Symbol* name, Symbol* signature); 1.13 1.14 + // find a local method (returns NULL if not found) 1.15 + Method* find_local_method(Symbol* name, Symbol* signature, 1.16 + OverpassLookupMode overpass_mode, 1.17 + StaticLookupMode static_mode, 1.18 + PrivateLookupMode private_mode) const; 1.19 + 1.20 + // find a local method from given methods array (returns NULL if not found) 1.21 + static Method* find_local_method(Array<Method*>* methods, 1.22 + Symbol* name, Symbol* signature, 1.23 + OverpassLookupMode overpass_mode, 1.24 + StaticLookupMode static_mode, 1.25 + PrivateLookupMode private_mode); 1.26 + 1.27 // true if method matches signature and conforms to skipping_X conditions. 1.28 - static bool method_matches(Method* m, Symbol* signature, bool skipping_overpass, bool skipping_static); 1.29 + static bool method_matches(Method* m, Symbol* signature, bool skipping_overpass, bool skipping_static, bool skipping_private); 1.30 1.31 - // find a local method index in default_methods (returns -1 if not found) 1.32 - static int find_method_index(Array<Method*>* methods, Symbol* name, Symbol* signature, bool skipping_overpass, bool skipping_static); 1.33 + // find a local method index in methods or default_methods (returns -1 if not found) 1.34 + static int find_method_index(Array<Method*>* methods, 1.35 + Symbol* name, Symbol* signature, 1.36 + OverpassLookupMode overpass_mode, 1.37 + StaticLookupMode static_mode, 1.38 + PrivateLookupMode private_mode); 1.39 + 1.40 1.41 // lookup operation (returns NULL if not found) 1.42 - Method* uncached_lookup_method(Symbol* name, Symbol* signature, MethodLookupMode mode) const; 1.43 + Method* uncached_lookup_method(Symbol* name, Symbol* signature, OverpassLookupMode overpass_mode) const; 1.44 1.45 // lookup a method in all the interfaces that this class implements 1.46 // (returns NULL if not found) 1.47 - Method* lookup_method_in_all_interfaces(Symbol* name, Symbol* signature, MethodLookupMode mode) const; 1.48 + Method* lookup_method_in_all_interfaces(Symbol* name, Symbol* signature, DefaultsLookupMode defaults_mode) const; 1.49 1.50 // lookup a method in local defaults then in all interfaces 1.51 // (returns NULL if not found) 1.52 @@ -1094,8 +1112,15 @@ 1.53 Klass* array_klass_impl(bool or_null, TRAPS); 1.54 1.55 // find a local method (returns NULL if not found) 1.56 - Method* find_method_impl(Symbol* name, Symbol* signature, bool skipping_overpass) const; 1.57 - static Method* find_method_impl(Array<Method*>* methods, Symbol* name, Symbol* signature, bool skipping_overpass, bool skipping_static); 1.58 + Method* find_method_impl(Symbol* name, Symbol* signature, 1.59 + OverpassLookupMode overpass_mode, 1.60 + StaticLookupMode static_mode, 1.61 + PrivateLookupMode private_mode) const; 1.62 + static Method* find_method_impl(Array<Method*>* methods, 1.63 + Symbol* name, Symbol* signature, 1.64 + OverpassLookupMode overpass_mode, 1.65 + StaticLookupMode static_mode, 1.66 + PrivateLookupMode private_mode); 1.67 1.68 // Free CHeap allocated fields. 1.69 void release_C_heap_structures();