Skip to content

Commit b16048b

Browse files
committed
ClassReader relies on autoboxing for reuse of cached primitive values
Issue: SPR-12365
1 parent 051c5fb commit b16048b

File tree

1 file changed

+8
-13
lines changed

1 file changed

+8
-13
lines changed

spring-core/src/main/java/org/springframework/asm/ClassReader.java

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1830,24 +1830,19 @@ private int readAnnotationValue(int v, final char[] buf, final String name,
18301830
v += 2;
18311831
break;
18321832
case 'B': // pointer to CONSTANT_Byte
1833-
av.visit(name,
1834-
new Byte((byte) readInt(items[readUnsignedShort(v)])));
1833+
av.visit(name, (byte) readInt(items[readUnsignedShort(v)]));
18351834
v += 2;
18361835
break;
18371836
case 'Z': // pointer to CONSTANT_Boolean
1838-
av.visit(name,
1839-
readInt(items[readUnsignedShort(v)]) == 0 ? Boolean.FALSE
1840-
: Boolean.TRUE);
1837+
av.visit(name, readInt(items[readUnsignedShort(v)]) == 0 ? Boolean.FALSE : Boolean.TRUE);
18411838
v += 2;
18421839
break;
18431840
case 'S': // pointer to CONSTANT_Short
1844-
av.visit(name, new Short(
1845-
(short) readInt(items[readUnsignedShort(v)])));
1841+
av.visit(name, (short) readInt(items[readUnsignedShort(v)]));
18461842
v += 2;
18471843
break;
18481844
case 'C': // pointer to CONSTANT_Char
1849-
av.visit(name, new Character(
1850-
(char) readInt(items[readUnsignedShort(v)])));
1845+
av.visit(name, (char) readInt(items[readUnsignedShort(v)]));
18511846
v += 2;
18521847
break;
18531848
case 's': // pointer to CONSTANT_Utf8
@@ -2471,13 +2466,13 @@ public Object readConst(final int item, final char[] buf) {
24712466
int index = items[item];
24722467
switch (b[index - 1]) {
24732468
case ClassWriter.INT:
2474-
return new Integer(readInt(index));
2469+
return readInt(index);
24752470
case ClassWriter.FLOAT:
2476-
return new Float(Float.intBitsToFloat(readInt(index)));
2471+
return Float.intBitsToFloat(readInt(index));
24772472
case ClassWriter.LONG:
2478-
return new Long(readLong(index));
2473+
return readLong(index);
24792474
case ClassWriter.DOUBLE:
2480-
return new Double(Double.longBitsToDouble(readLong(index)));
2475+
return Double.longBitsToDouble(readLong(index));
24812476
case ClassWriter.CLASS:
24822477
return Type.getObjectType(readUTF8(index, buf));
24832478
case ClassWriter.STR:

0 commit comments

Comments
 (0)