src/share/vm/ci/ciField.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File cik Cdiff src/share/vm/ci/ciField.cpp

src/share/vm/ci/ciField.cpp

Print this page

        

*** 164,174 **** } initialize_from(fd); // Either (a) it is marked shared, or else (b) we are done bootstrapping. ! assert(is_shared() || ciObjectFactory::is_initialized(), "bootstrap classes must not create & cache unshared fields"); } static bool trust_final_non_static_fields(ciInstanceKlass* holder) { if (holder == NULL) --- 164,174 ---- } initialize_from(fd); // Either (a) it is marked shared, or else (b) we are done bootstrapping. ! assert(_holder->is_shared() || ciObjectFactory::is_initialized(), "bootstrap classes must not create & cache unshared fields"); } static bool trust_final_non_static_fields(ciInstanceKlass* holder) { if (holder == NULL)
*** 283,293 **** GUARDED_VM_ENTRY(return compute_type_impl();) } ciType* ciField::compute_type_impl() { ciKlass* type = CURRENT_ENV->get_klass_by_name_impl(_holder, _signature, false); ! if (!type->is_primitive_type() && is_shared()) { // We must not cache a pointer to an unshared type, in a shared field. bool type_is_also_shared = false; if (type->is_type_array_klass()) { type_is_also_shared = true; // int[] etc. are explicitly bootstrapped } else if (type->is_instance_klass()) { --- 283,293 ---- GUARDED_VM_ENTRY(return compute_type_impl();) } ciType* ciField::compute_type_impl() { ciKlass* type = CURRENT_ENV->get_klass_by_name_impl(_holder, _signature, false); ! if (!type->is_primitive_type() && _holder->is_shared()) { // We must not cache a pointer to an unshared type, in a shared field. bool type_is_also_shared = false; if (type->is_type_array_klass()) { type_is_also_shared = true; // int[] etc. are explicitly bootstrapped } else if (type->is_instance_klass()) {
*** 329,339 **** LinkResolver::resolve_field(result, c_pool, _cp_index, Bytecodes::java_code(bc), true, false, KILL_COMPILE_ON_FATAL_(false)); // update the hit-cache, unless there is a problem with memory scoping: ! if (accessing_klass->is_shared() || !is_shared()) _known_to_link_with = accessing_klass; return true; } --- 329,339 ---- LinkResolver::resolve_field(result, c_pool, _cp_index, Bytecodes::java_code(bc), true, false, KILL_COMPILE_ON_FATAL_(false)); // update the hit-cache, unless there is a problem with memory scoping: ! if (accessing_klass->is_shared() || !_holder->is_shared()) _known_to_link_with = accessing_klass; return true; }
src/share/vm/ci/ciField.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File