Mercurial > hg > graal-jvmci-8
comparison src/share/vm/prims/methodHandles.hpp @ 12264:b2e698d2276c
8014013: CallInfo structure no longer accurately reports the result of a LinkResolver operation
Summary: Enhance method resolution and resulting data structures, plus some refactoring.
Reviewed-by: twisti, acorn, jrose
author | drchase |
---|---|
date | Fri, 13 Sep 2013 22:38:02 -0400 |
parents | b7fa10a3a69a |
children | c4b78cbea876 |
comparison
equal
deleted
inserted
replaced
12261:2c98370f2611 | 12264:b2e698d2276c |
---|---|
47 static bool _enabled; | 47 static bool _enabled; |
48 | 48 |
49 // Adapters. | 49 // Adapters. |
50 static MethodHandlesAdapterBlob* _adapter_code; | 50 static MethodHandlesAdapterBlob* _adapter_code; |
51 | 51 |
52 // utility functions for reifying names and types | |
53 static oop field_name_or_null(Symbol* s); | |
54 static oop field_signature_type_or_null(Symbol* s); | |
55 | |
52 public: | 56 public: |
53 // working with member names | 57 // working with member names |
54 static Handle resolve_MemberName(Handle mname, TRAPS); // compute vmtarget/vmindex from name/type | 58 static Handle resolve_MemberName(Handle mname, TRAPS); // compute vmtarget/vmindex from name/type |
55 static void expand_MemberName(Handle mname, int suppress, TRAPS); // expand defc/name/type if missing | 59 static void expand_MemberName(Handle mname, int suppress, TRAPS); // expand defc/name/type if missing |
56 static Handle new_MemberName(TRAPS); // must be followed by init_MemberName | 60 static Handle new_MemberName(TRAPS); // must be followed by init_MemberName |
57 static oop init_MemberName(Handle mname_h, Handle target_h); // compute vmtarget/vmindex from target | 61 static oop init_MemberName(Handle mname_h, Handle target_h); // compute vmtarget/vmindex from target |
58 static oop init_method_MemberName(Handle mname_h, Method* m, bool do_dispatch, | 62 static oop init_field_MemberName(Handle mname_h, fieldDescriptor& fd, bool is_setter = false); |
59 KlassHandle receiver_limit_h); | 63 static oop init_method_MemberName(Handle mname_h, CallInfo& info); |
60 static oop init_field_MemberName(Handle mname_h, KlassHandle field_holder_h, | |
61 AccessFlags mods, oop type, oop name, | |
62 intptr_t offset, bool is_setter = false); | |
63 static Handle init_method_MemberName(Handle mname_h, CallInfo& info, TRAPS); | |
64 static Handle init_field_MemberName(Handle mname_h, FieldAccessInfo& info, TRAPS); | |
65 static int method_ref_kind(Method* m, bool do_dispatch_if_possible = true); | 64 static int method_ref_kind(Method* m, bool do_dispatch_if_possible = true); |
66 static int find_MemberNames(KlassHandle k, Symbol* name, Symbol* sig, | 65 static int find_MemberNames(KlassHandle k, Symbol* name, Symbol* sig, |
67 int mflags, KlassHandle caller, | 66 int mflags, KlassHandle caller, |
68 int skip, objArrayHandle results); | 67 int skip, objArrayHandle results); |
69 // bit values for suppress argument to expand_MemberName: | 68 // bit values for suppress argument to expand_MemberName: |