Parcourir la source

Specialize Rule2Literal->equals(Rule2Literal) for speedup

Markus Staab il y a 6 ans
Parent
commit
7a4937bbcc
1 fichiers modifiés avec 13 ajouts et 0 suppressions
  1. 13 0
      src/Composer/DependencyResolver/Rule2Literals.php

+ 13 - 0
src/Composer/DependencyResolver/Rule2Literals.php

@@ -65,6 +65,19 @@ class Rule2Literals extends Rule
      */
     public function equals(Rule $rule)
     {
+        // specialized fast-case
+        if ($rule instanceof self) {
+            if ($this->literal1 !== $rule->literal1) {
+                return false;
+            }
+
+            if ($this->literal2 !== $rule->literal2) {
+                return false;
+            }
+
+            return true;
+        }
+
         $literals = $rule->getLiterals();
         if (2 != count($literals)) {
             return false;