105 u2 length;
106 u2 name_cp_index;
107 u2 descriptor_cp_index;
108 u2 signature_cp_index;
109 u2 slot;
110 };
111
112 // Utitily class describing elements in exception table
113 class ExceptionTableElement VALUE_OBJ_CLASS_SPEC {
114 public:
115 u2 start_pc;
116 u2 end_pc;
117 u2 handler_pc;
118 u2 catch_type_index;
119 };
120
121 // Utility class describing elements in method parameters
122 class MethodParametersElement VALUE_OBJ_CLASS_SPEC {
123 public:
124 u2 name_cp_index;
125 // This has to happen, otherwise it will cause SIGBUS from a
126 // misaligned u4 on some architectures (ie SPARC)
127 // because MethodParametersElements are only aligned mod 2
128 // within the ConstMethod container u2 flags_hi;
129 u2 flags_hi;
130 u2 flags_lo;
131 };
132
133
134 class ConstMethod : public MetaspaceObj {
135 friend class VMStructs;
136
137 public:
138 typedef enum { NORMAL, OVERPASS } MethodType;
139
140 private:
141 enum {
142 _has_linenumber_table = 1,
143 _has_checked_exceptions = 2,
144 _has_localvariable_table = 4,
145 _has_exception_table = 8,
146 _has_generic_signature = 16,
147 _has_method_parameters = 32,
148 _is_overpass = 64
149 };
150
|
105 u2 length;
106 u2 name_cp_index;
107 u2 descriptor_cp_index;
108 u2 signature_cp_index;
109 u2 slot;
110 };
111
112 // Utitily class describing elements in exception table
113 class ExceptionTableElement VALUE_OBJ_CLASS_SPEC {
114 public:
115 u2 start_pc;
116 u2 end_pc;
117 u2 handler_pc;
118 u2 catch_type_index;
119 };
120
121 // Utility class describing elements in method parameters
122 class MethodParametersElement VALUE_OBJ_CLASS_SPEC {
123 public:
124 u2 name_cp_index;
125 u2 flags;
126 };
127
128
129 class ConstMethod : public MetaspaceObj {
130 friend class VMStructs;
131
132 public:
133 typedef enum { NORMAL, OVERPASS } MethodType;
134
135 private:
136 enum {
137 _has_linenumber_table = 1,
138 _has_checked_exceptions = 2,
139 _has_localvariable_table = 4,
140 _has_exception_table = 8,
141 _has_generic_signature = 16,
142 _has_method_parameters = 32,
143 _is_overpass = 64
144 };
145
|