Lines Matching refs:member
44 * to a class member.
48 final MemberName member;
51 private DirectMethodHandle(MethodType mtype, LambdaForm form, MemberName member) {
53 if (!member.isResolved())
56 if (member.getDeclaringClass().isInterface() && !member.isAbstract()) {
58 MemberName m = new MemberName(Object.class, member.getName(), member.getMethodType(), member.getReferenceKind());
61 member = m;
65 this.member = member;
70 static DirectMethodHandle make(Class<?> receiver, MemberName member) {
71 MethodType mtype = member.getMethodOrFieldType();
72 if (!member.isStatic()) {
73 if (!member.getDeclaringClass().isAssignableFrom(receiver) || member.isConstructor())
74 throw new InternalError(member.toString());
77 if (!member.isField()) {
78 LambdaForm lform = preparedLambdaForm(member);
79 return new DirectMethodHandle(mtype, lform, member);
81 LambdaForm lform = preparedFieldLambdaForm(member);
82 if (member.isStatic()) {
83 long offset = MethodHandleNatives.staticFieldOffset(member);
84 Object base = MethodHandleNatives.staticFieldBase(member);
85 return new StaticAccessor(mtype, lform, member, base, offset);
87 long offset = MethodHandleNatives.objectFieldOffset(member);
89 return new Accessor(mtype, lform, member, (int)offset);
93 static DirectMethodHandle make(MemberName member) {
94 if (member.isConstructor())
95 return makeAllocator(member);
96 return make(member.getDeclaringClass(), member);
118 return new DirectMethodHandle(mt, lf, member);
123 return "/DMH="+member.toString();
130 return member;
135 // If the member needs dispatching, do so.
146 // If the member needs dispatching, do so.
157 switch (member.getReferenceKind()) {
160 // Pre-dispatch the member.
162 MemberName concrete = new MemberName(concreteClass, member.getName(), member.getMethodType(), REF_invokeSpecial);
278 return ((DirectMethodHandle)mh).member;
287 return dmh.member;
291 boolean shouldBeInitialized(MemberName member) {
292 switch (member.getReferenceKind()) {
299 // No need to initialize the class on this kind of member.
302 Class<?> cls = member.getDeclaringClass();
336 if (checkInitialized(member)) {
338 if (member.isField())
339 updateForm(preparedFieldLambdaForm(member));
341 updateForm(preparedLambdaForm(member));
344 private static boolean checkInitialized(MemberName member) {
345 Class<?> defc = member.getDeclaringClass();
399 private Accessor(MethodType mtype, LambdaForm form, MemberName member,
401 super(mtype, form, member);
402 this.fieldType = member.getFieldType();
422 // is either member.getDeclaringClass or a subclass.
437 private StaticAccessor(MethodType mtype, LambdaForm form, MemberName member,
439 super(mtype, form, member);
440 this.fieldType = member.getFieldType();
472 return member.getReturnType().cast(obj);
663 assert(InvokerBytecodeGenerator.isStaticallyInvocable(nf.member)) : nf;