src/hotspot/share/classfile/verificationType.hpp
changeset 58722 cba8afa5cfed
parent 53244 9807daeb47c4
equal deleted inserted replaced
58720:ae0af9fb3dbb 58722:cba8afa5cfed
   207   bool is_check() const { return (_u._data & TypeQuery) == TypeQuery; }
   207   bool is_check() const { return (_u._data & TypeQuery) == TypeQuery; }
   208 
   208 
   209   bool is_x_array(char sig) const {
   209   bool is_x_array(char sig) const {
   210     return is_null() || (is_array() && (name()->char_at(1) == sig));
   210     return is_null() || (is_array() && (name()->char_at(1) == sig));
   211   }
   211   }
   212   bool is_int_array() const { return is_x_array('I'); }
   212   bool is_int_array() const { return is_x_array(JVM_SIGNATURE_INT); }
   213   bool is_byte_array() const { return is_x_array('B'); }
   213   bool is_byte_array() const { return is_x_array(JVM_SIGNATURE_BYTE); }
   214   bool is_bool_array() const { return is_x_array('Z'); }
   214   bool is_bool_array() const { return is_x_array(JVM_SIGNATURE_BOOLEAN); }
   215   bool is_char_array() const { return is_x_array('C'); }
   215   bool is_char_array() const { return is_x_array(JVM_SIGNATURE_CHAR); }
   216   bool is_short_array() const { return is_x_array('S'); }
   216   bool is_short_array() const { return is_x_array(JVM_SIGNATURE_SHORT); }
   217   bool is_long_array() const { return is_x_array('J'); }
   217   bool is_long_array() const { return is_x_array(JVM_SIGNATURE_LONG); }
   218   bool is_float_array() const { return is_x_array('F'); }
   218   bool is_float_array() const { return is_x_array(JVM_SIGNATURE_FLOAT); }
   219   bool is_double_array() const { return is_x_array('D'); }
   219   bool is_double_array() const { return is_x_array(JVM_SIGNATURE_DOUBLE); }
   220   bool is_object_array() const { return is_x_array('L'); }
   220   bool is_object_array() const { return is_x_array(JVM_SIGNATURE_CLASS); }
   221   bool is_array_array() const { return is_x_array('['); }
   221   bool is_array_array() const { return is_x_array(JVM_SIGNATURE_ARRAY); }
   222   bool is_reference_array() const
   222   bool is_reference_array() const
   223     { return is_object_array() || is_array_array(); }
   223     { return is_object_array() || is_array_array(); }
   224   bool is_object() const
   224   bool is_object() const
   225     { return (is_reference() && !is_null() && name()->utf8_length() >= 1 &&
   225     { return (is_reference() && !is_null() && name()->utf8_length() >= 1 &&
   226               name()->char_at(0) != '['); }
   226               name()->char_at(0) != JVM_SIGNATURE_ARRAY); }
   227   bool is_array() const
   227   bool is_array() const
   228     { return (is_reference() && !is_null() && name()->utf8_length() >= 2 &&
   228     { return (is_reference() && !is_null() && name()->utf8_length() >= 2 &&
   229               name()->char_at(0) == '['); }
   229               name()->char_at(0) == JVM_SIGNATURE_ARRAY); }
   230   bool is_uninitialized() const
   230   bool is_uninitialized() const
   231     { return ((_u._data & Uninitialized) == Uninitialized); }
   231     { return ((_u._data & Uninitialized) == Uninitialized); }
   232   bool is_uninitialized_this() const
   232   bool is_uninitialized_this() const
   233     { return is_uninitialized() && bci() == BciForThis; }
   233     { return is_uninitialized() && bci() == BciForThis; }
   234 
   234 
   320   VerificationType get_component(ClassVerifier* context, TRAPS) const;
   320   VerificationType get_component(ClassVerifier* context, TRAPS) const;
   321 
   321 
   322   int dimensions() const {
   322   int dimensions() const {
   323     assert(is_array(), "Must be an array");
   323     assert(is_array(), "Must be an array");
   324     int index = 0;
   324     int index = 0;
   325     while (name()->char_at(index) == '[') index++;
   325     while (name()->char_at(index) == JVM_SIGNATURE_ARRAY) index++;
   326     return index;
   326     return index;
   327   }
   327   }
   328 
   328 
   329   void print_on(outputStream* st) const;
   329   void print_on(outputStream* st) const;
   330 
   330