diff --git a/src/Composer/DependencyResolver/Rule.php b/src/Composer/DependencyResolver/Rule.php index 37db43745..a19c121c2 100644 --- a/src/Composer/DependencyResolver/Rule.php +++ b/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; } diff --git a/tests/Composer/Test/DependencyResolver/RuleTest.php b/tests/Composer/Test/DependencyResolver/RuleTest.php index 6688b24aa..4382987eb 100644 --- a/tests/Composer/Test/DependencyResolver/RuleTest.php +++ b/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()