< prev index next >

src/share/vm/code/dependencies.cpp

Print this page

        

*** 115,127 **** check_ctxk(ctxk); assert_common_1(no_finalizable_subclasses, ctxk); } void Dependencies::assert_call_site_target_value(ciCallSite* call_site, ciMethodHandle* method_handle) { ! ciKlass* ctxk = call_site->get_context(); ! check_ctxk(ctxk); ! assert_common_3(call_site_target_value, ctxk, call_site, method_handle); } // Helper function. If we are adding a new dep. under ctxk2, // try to find an old dep. under a broader* ctxk1. If there is // --- 115,125 ---- check_ctxk(ctxk); assert_common_1(no_finalizable_subclasses, ctxk); } void Dependencies::assert_call_site_target_value(ciCallSite* call_site, ciMethodHandle* method_handle) { ! assert_common_2(call_site_target_value, call_site, method_handle); } // Helper function. If we are adding a new dep. under ctxk2, // try to find an old dep. under a broader* ctxk1. If there is //
*** 173,183 **** } } } } } else { - assert(dep_implicit_context_arg(dept) == 0, "sanity"); if (note_dep_seen(dept, x0) && note_dep_seen(dept, x1)) { // look in this bucket for redundant assertions const int stride = 2; for (int i = deps->length(); (i -= stride) >= 0; ) { ciBaseObject* y0 = deps->at(i+0); --- 171,180 ----
*** 387,397 **** 1, // concrete_with_no_concrete_subtype ctxk 2, // unique_concrete_method ctxk, m 3, // unique_concrete_subtypes_2 ctxk, k1, k2 3, // unique_concrete_methods_2 ctxk, m1, m2 1, // no_finalizable_subclasses ctxk ! 3 // call_site_target_value ctxk, call_site, method_handle }; const char* Dependencies::dep_name(Dependencies::DepType dept) { if (!dept_in_mask(dept, all_types)) return "?bad-dep?"; return _dep_name[dept]; --- 384,394 ---- 1, // concrete_with_no_concrete_subtype ctxk 2, // unique_concrete_method ctxk, m 3, // unique_concrete_subtypes_2 ctxk, k1, k2 3, // unique_concrete_methods_2 ctxk, m1, m2 1, // no_finalizable_subclasses ctxk ! 2 // call_site_target_value call_site, method_handle }; const char* Dependencies::dep_name(Dependencies::DepType dept) { if (!dept_in_mask(dept, all_types)) return "?bad-dep?"; return _dep_name[dept];
*** 1513,1532 **** if (changes != NULL) search_at = changes->new_type(); // just look at the new bit return find_finalizable_subclass(search_at); } ! Klass* Dependencies::check_call_site_target_value(Klass* recorded_ctxk, oop call_site, oop method_handle, CallSiteDepChange* changes) { assert(call_site->is_a(SystemDictionary::CallSite_klass()), "sanity"); assert(!oopDesc::is_null(method_handle), "sanity"); - Klass* call_site_ctxk = MethodHandles::get_call_site_context(call_site); - assert(!Klass::is_null(call_site_ctxk), "call site context should be initialized already"); - if (recorded_ctxk != call_site_ctxk) { - // Stale context - return recorded_ctxk; - } if (changes == NULL) { // Validate all CallSites if (java_lang_invoke_CallSite::target(call_site) != method_handle) return call_site->klass(); // assertion failed } else { --- 1510,1524 ---- if (changes != NULL) search_at = changes->new_type(); // just look at the new bit return find_finalizable_subclass(search_at); } ! Klass* Dependencies::check_call_site_target_value(oop call_site, oop method_handle, CallSiteDepChange* changes) { assert(call_site->is_a(SystemDictionary::CallSite_klass()), "sanity"); + assert(!oopDesc::is_null(call_site), "sanity"); assert(!oopDesc::is_null(method_handle), "sanity"); if (changes == NULL) { // Validate all CallSites if (java_lang_invoke_CallSite::target(call_site) != method_handle) return call_site->klass(); // assertion failed } else {
*** 1597,1607 **** Dependencies::check_valid_dependency_type(type()); Klass* witness = NULL; switch (type()) { case call_site_target_value: ! witness = check_call_site_target_value(context_type(), argument_oop(1), argument_oop(2), changes); break; default: witness = NULL; break; } --- 1589,1599 ---- Dependencies::check_valid_dependency_type(type()); Klass* witness = NULL; switch (type()) { case call_site_target_value: ! witness = check_call_site_target_value(argument_oop(0), argument_oop(1), changes); break; default: witness = NULL; break; }
< prev index next >