MCPcopy Index your code
hub / github.com/clojure/clojure / readConstantDynamic

Method readConstantDynamic

src/jvm/clojure/asm/ClassReader.java:3498–3519  ·  view source on GitHub ↗

Reads a CONSTANT_Dynamic constant pool entry in #b. @param constantPoolEntryIndex the index of a CONSTANT_Dynamic entry in the class's constant pool table. @param charBuffer the buffer to be used to read the string. This buffer must be sufficiently large. It is not automatically res

(
      final int constantPoolEntryIndex, final char[] charBuffer)

Source from the content-addressed store, hash-verified

3496 * @return the ConstantDynamic corresponding to the specified CONSTANT_Dynamic entry.
3497 */
3498 private ConstantDynamic readConstantDynamic(
3499 final int constantPoolEntryIndex, final char[] charBuffer) {
3500 ConstantDynamic constantDynamic = (ConstantDynamic) cpInfoValues[constantPoolEntryIndex];
3501 if (constantDynamic != null) {
3502 return constantDynamic;
3503 }
3504 int cpInfoOffset = cpInfoOffsets[constantPoolEntryIndex];
3505 int nameAndTypeCpInfoOffset = cpInfoOffsets[readUnsignedShort(cpInfoOffset + 2)];
3506 String name = readUTF8(nameAndTypeCpInfoOffset, charBuffer);
3507 String descriptor = readUTF8(nameAndTypeCpInfoOffset + 2, charBuffer);
3508 int bootstrapMethodOffset = bootstrapMethodOffsets[readUnsignedShort(cpInfoOffset)];
3509 Handle handle = (Handle) readConst(readUnsignedShort(bootstrapMethodOffset), charBuffer);
3510 Object[] bootstrapMethodArguments = new Object[readUnsignedShort(bootstrapMethodOffset + 2)];
3511 bootstrapMethodOffset += 4;
3512 for (int i = 0; i < bootstrapMethodArguments.length; i++) {
3513 bootstrapMethodArguments[i] = readConst(readUnsignedShort(bootstrapMethodOffset), charBuffer);
3514 bootstrapMethodOffset += 2;
3515 }
3516 constantDynamic = new ConstantDynamic(name, descriptor, handle, bootstrapMethodArguments);
3517 cpInfoValues[constantPoolEntryIndex] = constantDynamic;
3518 return constantDynamic;
3519 }
3520
3521 /**
3522 * Reads a numeric or string constant pool entry in {@link #b}. <i>This method is intended for

Callers 1

readConstMethod · 0.95

Calls 3

readUnsignedShortMethod · 0.95
readUTF8Method · 0.95
readConstMethod · 0.95

Tested by

no test coverage detected