< prev index next >

src/hotspot/share/classfile/stackMapFrame.cpp

Print this page
@@ -79,11 +79,11 @@
    SignatureStream ss(m->signature());
    int init_local_num = 0;
    if (!m->is_static()) {
      init_local_num++;
      // add one extra argument for instance method
-     if (m->name() == vmSymbols::object_initializer_name() &&
+     if (m->is_object_constructor() &&
         thisKlass.name() != vmSymbols::java_lang_Object()) {
        _locals[0] = VerificationType::uninitialized_this_type();
        _flags |= FLAG_THIS_UNINIT;
      } else {
        _locals[0] = thisKlass;

@@ -99,20 +99,24 @@
    _locals_size = init_local_num;
  
    switch (ss.type()) {
      case T_OBJECT:
      case T_ARRAY:
+     case T_INLINE_TYPE:
      {
        Symbol* sig = ss.as_symbol();
        if (!sig->is_permanent()) {
          // Create another symbol to save as signature stream unreferences
          // this symbol.
          Symbol *sig_copy =
            verifier()->create_temporary_symbol(sig);
          assert(sig_copy == sig, "symbols don't match");
          sig = sig_copy;
        }
+       if (ss.type() == T_INLINE_TYPE) {
+         return VerificationType::inline_type(sig);
+       }
        return VerificationType::reference_type(sig);
      }
      case T_INT:     return VerificationType::integer_type();
      case T_BYTE:    return VerificationType::byte_type();
      case T_CHAR:    return VerificationType::char_type();
< prev index next >