hotspot/src/share/vm/classfile/classFileParser.cpp
changeset 8296 b1c2163e4e59
parent 8076 96d498ec7ae1
child 8653 8797d788a4f1
equal deleted inserted replaced
8295:a2b2a8a3aaee 8296:b1c2163e4e59
   329   guarantee_property(
   329   guarantee_property(
   330     length >= 1, "Illegal constant pool size %u in class file %s",
   330     length >= 1, "Illegal constant pool size %u in class file %s",
   331     length, CHECK_(nullHandle));
   331     length, CHECK_(nullHandle));
   332   constantPoolOop constant_pool =
   332   constantPoolOop constant_pool =
   333                       oopFactory::new_constantPool(length,
   333                       oopFactory::new_constantPool(length,
   334                                                    methodOopDesc::IsSafeConc,
   334                                                    oopDesc::IsSafeConc,
   335                                                    CHECK_(nullHandle));
   335                                                    CHECK_(nullHandle));
   336   constantPoolHandle cp (THREAD, constant_pool);
   336   constantPoolHandle cp (THREAD, constant_pool);
   337 
   337 
   338   cp->set_partially_loaded();    // Enables heap verify to work on partial constantPoolOops
   338   cp->set_partially_loaded();    // Enables heap verify to work on partial constantPoolOops
   339   ConstantPoolCleaner cp_in_error(cp); // set constant pool to be cleaned up.
   339   ConstantPoolCleaner cp_in_error(cp); // set constant pool to be cleaned up.
  1927     guarantee_property(access_flags.is_native() || access_flags.is_abstract() || parsed_code_attribute,
  1927     guarantee_property(access_flags.is_native() || access_flags.is_abstract() || parsed_code_attribute,
  1928                       "Absent Code attribute in method that is not native or abstract in class file %s", CHECK_(nullHandle));
  1928                       "Absent Code attribute in method that is not native or abstract in class file %s", CHECK_(nullHandle));
  1929   }
  1929   }
  1930 
  1930 
  1931   // All sizing information for a methodOop is finally available, now create it
  1931   // All sizing information for a methodOop is finally available, now create it
  1932   methodOop m_oop  = oopFactory::new_method(
  1932   methodOop m_oop  = oopFactory::new_method(code_length, access_flags, linenumber_table_length,
  1933     code_length, access_flags, linenumber_table_length,
  1933                                             total_lvt_length, checked_exceptions_length,
  1934     total_lvt_length, checked_exceptions_length,
  1934                                             oopDesc::IsSafeConc, CHECK_(nullHandle));
  1935     methodOopDesc::IsSafeConc, CHECK_(nullHandle));
       
  1936   methodHandle m (THREAD, m_oop);
  1935   methodHandle m (THREAD, m_oop);
  1937 
  1936 
  1938   ClassLoadingService::add_class_method_size(m_oop->size()*HeapWordSize);
  1937   ClassLoadingService::add_class_method_size(m_oop->size()*HeapWordSize);
  1939 
  1938 
  1940   // Fill in information from fixed part (access_flags already set)
  1939   // Fill in information from fixed part (access_flags already set)