src/share/vm/classfile/classFileParser.cpp

Print this page




1003   BAD_ALLOCATION_TYPE = -1
1004 };
1005 
1006 static FieldAllocationType _basic_type_to_atype[2 * (T_CONFLICT + 1)] = {
1007   BAD_ALLOCATION_TYPE, // 0
1008   BAD_ALLOCATION_TYPE, // 1
1009   BAD_ALLOCATION_TYPE, // 2
1010   BAD_ALLOCATION_TYPE, // 3
1011   NONSTATIC_BYTE ,     // T_BOOLEAN  =  4,
1012   NONSTATIC_SHORT,     // T_CHAR     =  5,
1013   NONSTATIC_WORD,      // T_FLOAT    =  6,
1014   NONSTATIC_DOUBLE,    // T_DOUBLE   =  7,
1015   NONSTATIC_BYTE,      // T_BYTE     =  8,
1016   NONSTATIC_SHORT,     // T_SHORT    =  9,
1017   NONSTATIC_WORD,      // T_INT      = 10,
1018   NONSTATIC_DOUBLE,    // T_LONG     = 11,
1019   NONSTATIC_OOP,       // T_OBJECT   = 12,
1020   NONSTATIC_OOP,       // T_ARRAY    = 13,
1021   BAD_ALLOCATION_TYPE, // T_VOID     = 14,
1022   BAD_ALLOCATION_TYPE, // T_ADDRESS  = 15,
1023   BAD_ALLOCATION_TYPE, // T_NARROWOOP= 16,
1024   BAD_ALLOCATION_TYPE, // T_METADATA = 17,
1025   BAD_ALLOCATION_TYPE, // T_CONFLICT = 18,

1026   BAD_ALLOCATION_TYPE, // 0
1027   BAD_ALLOCATION_TYPE, // 1
1028   BAD_ALLOCATION_TYPE, // 2
1029   BAD_ALLOCATION_TYPE, // 3
1030   STATIC_BYTE ,        // T_BOOLEAN  =  4,
1031   STATIC_SHORT,        // T_CHAR     =  5,
1032   STATIC_WORD,          // T_FLOAT    =  6,
1033   STATIC_DOUBLE,       // T_DOUBLE   =  7,
1034   STATIC_BYTE,         // T_BYTE     =  8,
1035   STATIC_SHORT,        // T_SHORT    =  9,
1036   STATIC_WORD,         // T_INT      = 10,
1037   STATIC_DOUBLE,       // T_LONG     = 11,
1038   STATIC_OOP,          // T_OBJECT   = 12,
1039   STATIC_OOP,          // T_ARRAY    = 13,
1040   BAD_ALLOCATION_TYPE, // T_VOID     = 14,
1041   BAD_ALLOCATION_TYPE, // T_ADDRESS  = 15,
1042   BAD_ALLOCATION_TYPE, // T_NARROWOOP= 16,
1043   BAD_ALLOCATION_TYPE, // T_METADATA = 17,
1044   BAD_ALLOCATION_TYPE, // T_CONFLICT = 18,

1045 };
1046 
1047 static FieldAllocationType basic_type_to_atype(bool is_static, BasicType type) {
1048   assert(type >= T_BOOLEAN && type < T_VOID, "only allowable values");
1049   FieldAllocationType result = _basic_type_to_atype[type + (is_static ? (T_CONFLICT + 1) : 0)];
1050   assert(result != BAD_ALLOCATION_TYPE, "bad type");
1051   return result;
1052 }
1053 
1054 class FieldAllocationCount: public ResourceObj {
1055  public:
1056   u2 count[MAX_FIELD_ALLOCATION_TYPE];
1057 
1058   FieldAllocationCount() {
1059     for (int i = 0; i < MAX_FIELD_ALLOCATION_TYPE; i++) {
1060       count[i] = 0;
1061     }
1062   }
1063 
1064   FieldAllocationType update(bool is_static, BasicType type) {




1003   BAD_ALLOCATION_TYPE = -1
1004 };
1005 
1006 static FieldAllocationType _basic_type_to_atype[2 * (T_CONFLICT + 1)] = {
1007   BAD_ALLOCATION_TYPE, // 0
1008   BAD_ALLOCATION_TYPE, // 1
1009   BAD_ALLOCATION_TYPE, // 2
1010   BAD_ALLOCATION_TYPE, // 3
1011   NONSTATIC_BYTE ,     // T_BOOLEAN     =  4,
1012   NONSTATIC_SHORT,     // T_CHAR        =  5,
1013   NONSTATIC_WORD,      // T_FLOAT       =  6,
1014   NONSTATIC_DOUBLE,    // T_DOUBLE      =  7,
1015   NONSTATIC_BYTE,      // T_BYTE        =  8,
1016   NONSTATIC_SHORT,     // T_SHORT       =  9,
1017   NONSTATIC_WORD,      // T_INT         = 10,
1018   NONSTATIC_DOUBLE,    // T_LONG        = 11,
1019   NONSTATIC_OOP,       // T_OBJECT      = 12,
1020   NONSTATIC_OOP,       // T_ARRAY       = 13,
1021   BAD_ALLOCATION_TYPE, // T_VOID        = 14,
1022   BAD_ALLOCATION_TYPE, // T_ADDRESS     = 15,
1023   BAD_ALLOCATION_TYPE, // T_NARROWOOP   = 16,
1024   BAD_ALLOCATION_TYPE, // T_METADATA    = 17,
1025   BAD_ALLOCATION_TYPE, // T_NARROWKLASS = 18,
1026   BAD_ALLOCATION_TYPE, // T_CONFLICT    = 19,
1027   BAD_ALLOCATION_TYPE, // 0
1028   BAD_ALLOCATION_TYPE, // 1
1029   BAD_ALLOCATION_TYPE, // 2
1030   BAD_ALLOCATION_TYPE, // 3
1031   STATIC_BYTE ,        // T_BOOLEAN     =  4,
1032   STATIC_SHORT,        // T_CHAR        =  5,
1033   STATIC_WORD,         // T_FLOAT       =  6,
1034   STATIC_DOUBLE,       // T_DOUBLE      =  7,
1035   STATIC_BYTE,         // T_BYTE        =  8,
1036   STATIC_SHORT,        // T_SHORT       =  9,
1037   STATIC_WORD,         // T_INT         = 10,
1038   STATIC_DOUBLE,       // T_LONG        = 11,
1039   STATIC_OOP,          // T_OBJECT      = 12,
1040   STATIC_OOP,          // T_ARRAY       = 13,
1041   BAD_ALLOCATION_TYPE, // T_VOID        = 14,
1042   BAD_ALLOCATION_TYPE, // T_ADDRESS     = 15,
1043   BAD_ALLOCATION_TYPE, // T_NARROWOOP   = 16,
1044   BAD_ALLOCATION_TYPE, // T_METADATA    = 17,
1045   BAD_ALLOCATION_TYPE, // T_NARROWKLASS = 18,
1046   BAD_ALLOCATION_TYPE, // T_CONFLICT    = 19,
1047 };
1048 
1049 static FieldAllocationType basic_type_to_atype(bool is_static, BasicType type) {
1050   assert(type >= T_BOOLEAN && type < T_VOID, "only allowable values");
1051   FieldAllocationType result = _basic_type_to_atype[type + (is_static ? (T_CONFLICT + 1) : 0)];
1052   assert(result != BAD_ALLOCATION_TYPE, "bad type");
1053   return result;
1054 }
1055 
1056 class FieldAllocationCount: public ResourceObj {
1057  public:
1058   u2 count[MAX_FIELD_ALLOCATION_TYPE];
1059 
1060   FieldAllocationCount() {
1061     for (int i = 0; i < MAX_FIELD_ALLOCATION_TYPE; i++) {
1062       count[i] = 0;
1063     }
1064   }
1065 
1066   FieldAllocationType update(bool is_static, BasicType type) {