src/share/vm/classfile/verificationType.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/classfile

src/share/vm/classfile/verificationType.hpp

Print this page




 233     { return is_uninitialized() && bci() == BciForThis; }
 234 
 235   VerificationType to_category2_2nd() const {
 236     assert(is_category2(), "Must be a double word");
 237     return VerificationType(is_long() ? Long_2nd : Double_2nd);
 238   }
 239 
 240   u2 bci() const {
 241     assert(is_uninitialized(), "Must be uninitialized type");
 242     return ((_u._data & BciMask) >> 1 * BitsPerByte);
 243   }
 244 
 245   Symbol* name() const {
 246     assert(is_reference() && !is_null(), "Must be a non-null reference");
 247     return _u._sym;
 248   }
 249 
 250   bool equals(const VerificationType& t) const {
 251     return (_u._data == t._u._data ||
 252       (is_reference() && t.is_reference() && !is_null() && !t.is_null() &&
 253        name() == t.name()));
 254   }
 255 
 256   bool operator ==(const VerificationType& t) const {
 257     return equals(t);
 258   }
 259 
 260   bool operator !=(const VerificationType& t) const {
 261     return !equals(t);
 262   }
 263 
 264   // The whole point of this type system - check to see if one type
 265   // is assignable to another.  Returns true if one can assign 'from' to
 266   // this.
 267   bool is_assignable_from(
 268       const VerificationType& from, ClassVerifier* context,
 269       bool from_field_is_protected, TRAPS) const {
 270     if (equals(from) || is_bogus()) {
 271       return true;
 272     } else {
 273       switch(_u._data) {




 233     { return is_uninitialized() && bci() == BciForThis; }
 234 
 235   VerificationType to_category2_2nd() const {
 236     assert(is_category2(), "Must be a double word");
 237     return VerificationType(is_long() ? Long_2nd : Double_2nd);
 238   }
 239 
 240   u2 bci() const {
 241     assert(is_uninitialized(), "Must be uninitialized type");
 242     return ((_u._data & BciMask) >> 1 * BitsPerByte);
 243   }
 244 
 245   Symbol* name() const {
 246     assert(is_reference() && !is_null(), "Must be a non-null reference");
 247     return _u._sym;
 248   }
 249 
 250   bool equals(const VerificationType& t) const {
 251     return (_u._data == t._u._data ||
 252       (is_reference() && t.is_reference() && !is_null() && !t.is_null() &&
 253        name()->equals(t.name())));
 254   }
 255 
 256   bool operator ==(const VerificationType& t) const {
 257     return equals(t);
 258   }
 259 
 260   bool operator !=(const VerificationType& t) const {
 261     return !equals(t);
 262   }
 263 
 264   // The whole point of this type system - check to see if one type
 265   // is assignable to another.  Returns true if one can assign 'from' to
 266   // this.
 267   bool is_assignable_from(
 268       const VerificationType& from, ClassVerifier* context,
 269       bool from_field_is_protected, TRAPS) const {
 270     if (equals(from) || is_bogus()) {
 271       return true;
 272     } else {
 273       switch(_u._data) {


src/share/vm/classfile/verificationType.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File