src/share/classes/sun/tools/java/BinaryConstantPool.java

Print this page
rev 10195 : 8048267: Replace uses of 'new Long()' with appropriate alternative across core classes
Reviewed-by: chegar, psandoz
Contributed-by: otaviojava@java.net


  49      */
  50     BinaryConstantPool(DataInputStream in) throws IOException {
  51         // JVM 4.1 ClassFile.constant_pool_count
  52         types = new byte[in.readUnsignedShort()];
  53         cpool = new Object[types.length];
  54         for (int i = 1 ; i < cpool.length ; i++) {
  55             int j = i;
  56             // JVM 4.4 cp_info.tag
  57             switch(types[i] = in.readByte()) {
  58               case CONSTANT_UTF8:
  59                 cpool[i] = in.readUTF();
  60                 break;
  61 
  62               case CONSTANT_INTEGER:
  63                 cpool[i] = new Integer(in.readInt());
  64                 break;
  65               case CONSTANT_FLOAT:
  66                 cpool[i] = new Float(in.readFloat());
  67                 break;
  68               case CONSTANT_LONG:
  69                 cpool[i++] = new Long(in.readLong());
  70                 break;
  71               case CONSTANT_DOUBLE:
  72                 cpool[i++] = new Double(in.readDouble());
  73                 break;
  74 
  75               case CONSTANT_CLASS:
  76               case CONSTANT_STRING:
  77                 // JVM 4.4.3 CONSTANT_String_info.string_index
  78                 // or JVM 4.4.1 CONSTANT_Class_info.name_index
  79                 cpool[i] = new Integer(in.readUnsignedShort());
  80                 break;
  81 
  82               case CONSTANT_FIELD:
  83               case CONSTANT_METHOD:
  84               case CONSTANT_INTERFACEMETHOD:
  85               case CONSTANT_NAMEANDTYPE:
  86                 // JVM 4.4.2 CONSTANT_*ref_info.class_index & name_and_type_index
  87                 cpool[i] = new Integer((in.readUnsignedShort() << 16) | in.readUnsignedShort());
  88                 break;
  89 




  49      */
  50     BinaryConstantPool(DataInputStream in) throws IOException {
  51         // JVM 4.1 ClassFile.constant_pool_count
  52         types = new byte[in.readUnsignedShort()];
  53         cpool = new Object[types.length];
  54         for (int i = 1 ; i < cpool.length ; i++) {
  55             int j = i;
  56             // JVM 4.4 cp_info.tag
  57             switch(types[i] = in.readByte()) {
  58               case CONSTANT_UTF8:
  59                 cpool[i] = in.readUTF();
  60                 break;
  61 
  62               case CONSTANT_INTEGER:
  63                 cpool[i] = new Integer(in.readInt());
  64                 break;
  65               case CONSTANT_FLOAT:
  66                 cpool[i] = new Float(in.readFloat());
  67                 break;
  68               case CONSTANT_LONG:
  69                 cpool[i++] = in.readLong();
  70                 break;
  71               case CONSTANT_DOUBLE:
  72                 cpool[i++] = new Double(in.readDouble());
  73                 break;
  74 
  75               case CONSTANT_CLASS:
  76               case CONSTANT_STRING:
  77                 // JVM 4.4.3 CONSTANT_String_info.string_index
  78                 // or JVM 4.4.1 CONSTANT_Class_info.name_index
  79                 cpool[i] = new Integer(in.readUnsignedShort());
  80                 break;
  81 
  82               case CONSTANT_FIELD:
  83               case CONSTANT_METHOD:
  84               case CONSTANT_INTERFACEMETHOD:
  85               case CONSTANT_NAMEANDTYPE:
  86                 // JVM 4.4.2 CONSTANT_*ref_info.class_index & name_and_type_index
  87                 cpool[i] = new Integer((in.readUnsignedShort() << 16) | in.readUnsignedShort());
  88                 break;
  89