src/share/vm/ci/ciMethod.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/ci/ciMethod.cpp	Wed Sep  4 10:22:20 2013
--- new/src/share/vm/ci/ciMethod.cpp	Wed Sep  4 10:22:19 2013

*** 284,294 **** --- 284,297 ---- // Get the position of this method's entry in the itable, if any. int ciMethod::itable_index() { check_is_loaded(); assert(holder()->is_linked(), "must be linked"); VM_ENTRY_MARK; ! return klassItable::compute_itable_index(get_Method()); ! Method* m = get_Method(); + if (!m->has_itable_index()) + return Method::nonvirtual_vtable_index; + return m->itable_index(); } #endif // SHARK // ------------------------------------------------------------------
*** 1135,1144 **** --- 1138,1151 ---- } // ------------------------------------------------------------------ // ciMethod::check_call bool ciMethod::check_call(int refinfo_index, bool is_static) const { + // This method is used only in C2 from InlineTree::ok_to_inline, + // and is only used under -Xcomp or -XX:CompileTheWorld. + // It appears to fail when applied to an invokeinterface call site. + // FIXME: Remove this method and resolve_method_statically; refactor to use the other LinkResolver entry points. VM_ENTRY_MARK; { EXCEPTION_MARK; HandleMark hm(THREAD); constantPoolHandle pool (THREAD, get_Method()->constants());

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