src/share/vm/classfile/classFileParser.cpp

changeset 8572
e828a0e2a4bc
parent 8454
9d07e8518392
parent 8567
65029655928a
child 8604
04d83ba48607
child 8679
fff265b31090
equal deleted inserted replaced
8538:c171546c49b5 8572:e828a0e2a4bc
3971 create_combined_annotations(CHECK_(nullHandle)); 3971 create_combined_annotations(CHECK_(nullHandle));
3972 3972
3973 // Make sure this is the end of class file stream 3973 // Make sure this is the end of class file stream
3974 guarantee_property(cfs->at_eos(), "Extra bytes at the end of class file %s", CHECK_(nullHandle)); 3974 guarantee_property(cfs->at_eos(), "Extra bytes at the end of class file %s", CHECK_(nullHandle));
3975 3975
3976 if (_class_name == vmSymbols::java_lang_Object()) {
3977 check_property(_local_interfaces == Universe::the_empty_klass_array(),
3978 "java.lang.Object cannot implement an interface in class file %s",
3979 CHECK_(nullHandle));
3980 }
3976 // We check super class after class file is parsed and format is checked 3981 // We check super class after class file is parsed and format is checked
3977 if (super_class_index > 0 && super_klass.is_null()) { 3982 if (super_class_index > 0 && super_klass.is_null()) {
3978 Symbol* sk = cp->klass_name_at(super_class_index); 3983 Symbol* sk = cp->klass_name_at(super_class_index);
3979 if (access_flags.is_interface()) { 3984 if (access_flags.is_interface()) {
3980 // Before attempting to resolve the superclass, check for class format 3985 // Before attempting to resolve the superclass, check for class format

mercurial