浏览代码

PHP 5.3.2 segmentation fault fix

For some reason, using the SqlFixedArray causes a Segmentation Fault during
an install or update.  Changing to a simple array fixes this issue, but in
turn uses more memory.  Which is why there is the version test.
Justin Rainbow 13 年之前
父节点
当前提交
7eda0a8823
共有 1 个文件被更改,包括 5 次插入1 次删除
  1. 5 1
      src/Composer/DependencyResolver/Solver.php

+ 5 - 1
src/Composer/DependencyResolver/Solver.php

@@ -937,7 +937,11 @@ class Solver
             $this->installedMap[$package->getId()] = $package;
         }
 
-        $this->decisionMap = new \SplFixedArray($this->pool->getMaxId() + 1);
+        if (version_compare(PHP_VERSION, '5.3.2', '>')) {
+            $this->decisionMap = new \SplFixedArray($this->pool->getMaxId() + 1);
+        } else {
+            $this->decisionMap = array_fill(0, $this->pool->getMaxId() + 1, 0);
+        }
 
         foreach ($this->jobs as $job) {
             switch ($job['cmd']) {