src/share/vm/code/dependencies.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File JDK-8034839 Cdiff src/share/vm/code/dependencies.cpp

src/share/vm/code/dependencies.cpp

Print this page

        

*** 723,779 **** // e.g. evol_method. return NULL; } // ----------------- DependencySignature -------------------------------------- ! bool DependencySignature::equals(const DependencySignature& sig) const { ! if (type() != sig.type()) { return false; } ! if (args_count() != sig.args_count()) { return false; } - - for (int i = 0; i < sig.args_count(); i++) { - if (arg(i) != sig.arg(i)) { - return false; - } - } - return true; - } - - - // ----------------- DependencySignatureBuffer -------------------------------------- - DependencySignatureBuffer::DependencySignatureBuffer() { - _signatures = NEW_RESOURCE_ARRAY(GrowableArray<DependencySignature*>*, Dependencies::TYPE_LIMIT); - memset(_signatures, 0, sizeof(DependencySignature*) * Dependencies::TYPE_LIMIT); - } - - /* Check if arguments are identical. Two dependency signatures are considered - * identical, if the type as well as all argument identifiers are identical. - * If the dependency has not already been checked, the dependency signature is - * added to the checked dependencies of the same type. The function returns - * false, which causes the dependency to be checked in the caller. - */ - bool DependencySignatureBuffer::add_if_missing(const DependencySignature& sig) { - const int index = sig.type(); - GrowableArray<DependencySignature*>* buffer = _signatures[index]; - if (buffer == NULL) { - buffer = new GrowableArray<DependencySignature*>(); - _signatures[index] = buffer; } - - // Check if we have already checked the dependency - for (int i = 0; i < buffer->length(); i++) { - DependencySignature* checked_signature = buffer->at(i); - if (checked_signature->equals(sig)) { return true; - } - } - buffer->append((DependencySignature*)&sig); - return false; } /// Checking dependencies: --- 723,743 ---- // e.g. evol_method. return NULL; } // ----------------- DependencySignature -------------------------------------- ! bool DependencySignature::equals(DependencySignature* sig) const { ! if ((type() != sig->type()) || (args_count() != sig->args_count())) { return false; } ! for (int i = 0; i < sig->args_count(); i++) { ! if (arg(i) != sig->arg(i)) { return false; } } return true; } /// Checking dependencies:
src/share/vm/code/dependencies.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File