comparison agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java @ 2468:6c97c830fb6f

Merge
author jrose
date Sat, 09 Apr 2011 21:16:12 -0700
parents 1d1603768966 ed69575596ac
children 6a991dcb52bb
comparison
equal deleted inserted replaced
2439:0930dc920c18 2468:6c97c830fb6f
329 /** Lookup for multi-operand (InvokeDynamic) entries. */ 329 /** Lookup for multi-operand (InvokeDynamic) entries. */
330 public short[] getBootstrapSpecifierAt(int i) { 330 public short[] getBootstrapSpecifierAt(int i) {
331 if (Assert.ASSERTS_ENABLED) { 331 if (Assert.ASSERTS_ENABLED) {
332 Assert.that(getTagAt(i).isInvokeDynamic(), "Corrupted constant pool"); 332 Assert.that(getTagAt(i).isInvokeDynamic(), "Corrupted constant pool");
333 } 333 }
334 if (getTagAt(i).value() == JVM_CONSTANT_InvokeDynamicTrans)
335 return null;
336 int bsmSpec = extractLowShortFromInt(this.getIntAt(i)); 334 int bsmSpec = extractLowShortFromInt(this.getIntAt(i));
337 TypeArray operands = getOperands(); 335 TypeArray operands = getOperands();
338 if (operands == null) return null; // safety first 336 if (operands == null) return null; // safety first
339 int basePos = VM.getVM().buildIntFromShorts(operands.getShortAt(bsmSpec * 2 + 0), 337 int basePos = VM.getVM().buildIntFromShorts(operands.getShortAt(bsmSpec * 2 + 0),
340 operands.getShortAt(bsmSpec * 2 + 1)); 338 operands.getShortAt(bsmSpec * 2 + 1));
366 case JVM_CONSTANT_InterfaceMethodref: return "JVM_CONSTANT_InterfaceMethodref"; 364 case JVM_CONSTANT_InterfaceMethodref: return "JVM_CONSTANT_InterfaceMethodref";
367 case JVM_CONSTANT_NameAndType: return "JVM_CONSTANT_NameAndType"; 365 case JVM_CONSTANT_NameAndType: return "JVM_CONSTANT_NameAndType";
368 case JVM_CONSTANT_MethodHandle: return "JVM_CONSTANT_MethodHandle"; 366 case JVM_CONSTANT_MethodHandle: return "JVM_CONSTANT_MethodHandle";
369 case JVM_CONSTANT_MethodType: return "JVM_CONSTANT_MethodType"; 367 case JVM_CONSTANT_MethodType: return "JVM_CONSTANT_MethodType";
370 case JVM_CONSTANT_InvokeDynamic: return "JVM_CONSTANT_InvokeDynamic"; 368 case JVM_CONSTANT_InvokeDynamic: return "JVM_CONSTANT_InvokeDynamic";
371 case JVM_CONSTANT_InvokeDynamicTrans: return "JVM_CONSTANT_InvokeDynamic/transitional";
372 case JVM_CONSTANT_Invalid: return "JVM_CONSTANT_Invalid"; 369 case JVM_CONSTANT_Invalid: return "JVM_CONSTANT_Invalid";
373 case JVM_CONSTANT_UnresolvedClass: return "JVM_CONSTANT_UnresolvedClass"; 370 case JVM_CONSTANT_UnresolvedClass: return "JVM_CONSTANT_UnresolvedClass";
374 case JVM_CONSTANT_UnresolvedClassInError: return "JVM_CONSTANT_UnresolvedClassInError"; 371 case JVM_CONSTANT_UnresolvedClassInError: return "JVM_CONSTANT_UnresolvedClassInError";
375 case JVM_CONSTANT_ClassIndex: return "JVM_CONSTANT_ClassIndex"; 372 case JVM_CONSTANT_ClassIndex: return "JVM_CONSTANT_ClassIndex";
376 case JVM_CONSTANT_UnresolvedString: return "JVM_CONSTANT_UnresolvedString"; 373 case JVM_CONSTANT_UnresolvedString: return "JVM_CONSTANT_UnresolvedString";
426 case JVM_CONSTANT_InterfaceMethodref: 423 case JVM_CONSTANT_InterfaceMethodref:
427 case JVM_CONSTANT_NameAndType: 424 case JVM_CONSTANT_NameAndType:
428 case JVM_CONSTANT_MethodHandle: 425 case JVM_CONSTANT_MethodHandle:
429 case JVM_CONSTANT_MethodType: 426 case JVM_CONSTANT_MethodType:
430 case JVM_CONSTANT_InvokeDynamic: 427 case JVM_CONSTANT_InvokeDynamic:
431 case JVM_CONSTANT_InvokeDynamicTrans:
432 visitor.doInt(new IntField(new NamedFieldIdentifier(nameForTag(ctag)), indexOffset(index), true), true); 428 visitor.doInt(new IntField(new NamedFieldIdentifier(nameForTag(ctag)), indexOffset(index), true), true);
433 break; 429 break;
434 } 430 }
435 } 431 }
436 } 432 }
590 if (DEBUG) debugMessage("CP[" + ci + "] = N&T name = " + nameIndex 586 if (DEBUG) debugMessage("CP[" + ci + "] = N&T name = " + nameIndex
591 + ", type = " + signatureIndex); 587 + ", type = " + signatureIndex);
592 break; 588 break;
593 } 589 }
594 590
595 case JVM_CONSTANT_InvokeDynamicTrans:
596 case JVM_CONSTANT_InvokeDynamic: { 591 case JVM_CONSTANT_InvokeDynamic: {
597 dos.writeByte(cpConstType); 592 dos.writeByte(cpConstType);
598 int value = getIntAt(ci); 593 int value = getIntAt(ci);
599 short bsmIndex = (short) extractLowShortFromInt(value); 594 short bsmIndex = (short) extractLowShortFromInt(value);
600 short nameAndTypeIndex = (short) extractHighShortFromInt(value); 595 short nameAndTypeIndex = (short) extractHighShortFromInt(value);