< prev index next >

src/hotspot/share/classfile/classFileParser.cpp

Print this page

        

*** 4072,4081 **** --- 4072,4082 ---- const bool has_nonstatic_value_fields = nonstatic_value_type_count > 0; if (is_value_type() && (!has_nonstatic_fields)) { // There are a number of fixes required throughout the type system and JIT throwValueTypeLimitation(THREAD_AND_LOCATION, "Value Types do not support zero instance size yet"); + return; } // Prepare list of oops for oop map generation. // // "offset" and "count" lists are describing the set of contiguous oop
*** 4529,4539 **** info->static_field_size = static_field_size; info->nonstatic_field_size = nonstatic_field_size; info->has_nonstatic_fields = has_nonstatic_fields; } ! void ClassFileParser::set_precomputed_flags(InstanceKlass* ik) { assert(ik != NULL, "invariant"); const Klass* const super = ik->super(); // Check if this klass has an empty finalize method (i.e. one with return bytecode only), --- 4530,4540 ---- info->static_field_size = static_field_size; info->nonstatic_field_size = nonstatic_field_size; info->has_nonstatic_fields = has_nonstatic_fields; } ! void ClassFileParser::set_precomputed_flags(InstanceKlass* ik, TRAPS) { assert(ik != NULL, "invariant"); const Klass* const super = ik->super(); // Check if this klass has an empty finalize method (i.e. one with return bytecode only),
*** 4562,4571 **** --- 4563,4576 ---- #endif // Check if this klass supports the java.lang.Cloneable interface if (SystemDictionary::Cloneable_klass_loaded()) { if (ik->is_subtype_of(SystemDictionary::Cloneable_klass())) { + if (ik->is_value()) { + throwValueTypeLimitation(THREAD_AND_LOCATION, "Value Types do not support Cloneable"); + return; + } ik->set_is_cloneable(); } } // Check if this klass has a vanilla default constructor
*** 5738,5748 **** if (oop_map_blocks->nonstatic_oop_map_count > 0) { oop_map_blocks->copy(ik->start_of_nonstatic_oop_maps()); } // Fill in has_finalizer, has_vanilla_constructor, and layout_helper ! set_precomputed_flags(ik); // check if this class can access its super class check_super_class_access(ik, CHECK); // check if this class can access its superinterfaces --- 5743,5753 ---- if (oop_map_blocks->nonstatic_oop_map_count > 0) { oop_map_blocks->copy(ik->start_of_nonstatic_oop_maps()); } // Fill in has_finalizer, has_vanilla_constructor, and layout_helper ! set_precomputed_flags(ik, CHECK); // check if this class can access its super class check_super_class_access(ik, CHECK); // check if this class can access its superinterfaces
< prev index next >