Browse Source

Merge pull request #4234 from naderman/rule-hash-int-size

Reduce rule hash size
Jordi Boggiano 9 years ago
parent
commit
acc11f63c5

+ 2 - 10
src/Composer/DependencyResolver/Rule.php

@@ -43,8 +43,6 @@ class Rule
 
     protected $job;
 
-    protected $ruleHash;
-
     public function __construct(array $literals, $reason, $reasonData, $job = null)
     {
         // sort all packages ascending by id
@@ -55,17 +53,15 @@ class Rule
         $this->reasonData = $reasonData;
 
         $this->disabled = false;
-
         $this->job = $job;
-
         $this->type = -1;
 
-        $this->ruleHash = substr(md5(implode(',', $this->literals)), 0, 5);
     }
 
     public function getHash()
     {
-        return $this->ruleHash;
+        $data = unpack('ihash', md5(implode(',', $this->literals), true));
+        return $data['hash'];
     }
 
     public function setId($id)
@@ -114,10 +110,6 @@ class Rule
      */
     public function equals(Rule $rule)
     {
-        if ($this->ruleHash !== $rule->ruleHash) {
-            return false;
-        }
-
         if (count($this->literals) != count($rule->literals)) {
             return false;
         }

+ 2 - 1
tests/Composer/Test/DependencyResolver/RuleTest.php

@@ -30,7 +30,8 @@ class RuleTest extends TestCase
     {
         $rule = new Rule(array(123), 'job1', null);
 
-        $this->assertEquals(substr(md5('123'), 0, 5), $rule->getHash());
+        $hash = unpack('ihash', md5('123', true));
+        $this->assertEquals($hash['hash'], $rule->getHash());
     }
 
     public function testSetAndGetId()