hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantPool.java
equal
deleted
inserted
replaced
585 return result; |
585 return result; |
586 } |
586 } |
587 } |
587 } |
588 |
588 |
589 @Override |
589 @Override |
590 public JavaField lookupField(int cpi, int opcode) { |
590 public JavaField lookupField(int cpi, ResolvedJavaMethod method, int opcode) { |
591 final int index = rawIndexToConstantPoolIndex(cpi, opcode); |
591 final int index = rawIndexToConstantPoolIndex(cpi, opcode); |
592 final int nameAndTypeIndex = getNameAndTypeRefIndexAt(index); |
592 final int nameAndTypeIndex = getNameAndTypeRefIndexAt(index); |
593 final int nameIndex = getNameRefIndexAt(nameAndTypeIndex); |
593 final int nameIndex = getNameRefIndexAt(nameAndTypeIndex); |
594 String name = lookupUtf8(nameIndex); |
594 String name = lookupUtf8(nameIndex); |
595 final int typeIndex = getSignatureRefIndexAt(nameAndTypeIndex); |
595 final int typeIndex = getSignatureRefIndexAt(nameAndTypeIndex); |
601 |
601 |
602 if (holder instanceof HotSpotResolvedObjectTypeImpl) { |
602 if (holder instanceof HotSpotResolvedObjectTypeImpl) { |
603 long[] info = new long[2]; |
603 long[] info = new long[2]; |
604 HotSpotResolvedObjectTypeImpl resolvedHolder; |
604 HotSpotResolvedObjectTypeImpl resolvedHolder; |
605 try { |
605 try { |
606 resolvedHolder = compilerToVM().resolveFieldInPool(this, index, (byte) opcode, info); |
606 resolvedHolder = compilerToVM().resolveFieldInPool(this, index, (HotSpotResolvedJavaMethodImpl) method, (byte) opcode, info); |
607 } catch (Throwable t) { |
607 } catch (Throwable t) { |
608 /* |
608 /* |
609 * If there was an exception resolving the field we give up and return an unresolved |
609 * If there was an exception resolving the field we give up and return an unresolved |
610 * field. |
610 * field. |
611 */ |
611 */ |