From 63e1ecfabcbb4433284f9c91a54c703ca31c50e1 Mon Sep 17 00:00:00 2001 From: Joep Roebroek Date: Thu, 22 Dec 2016 22:32:19 +0100 Subject: [PATCH 1/3] Fix issue #488 Since I am new to the project and codebase, I am unsure if my fix is correct, but tested it using the method in issue #488 and it works. My concerns are however, as follows: why does this issue occur in PHP7, but not in PHP5? --- src/CodeCoverage.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/CodeCoverage.php b/src/CodeCoverage.php index 35dab3d61..20cebde7f 100644 --- a/src/CodeCoverage.php +++ b/src/CodeCoverage.php @@ -370,6 +370,14 @@ public function append(array $data, $id = null, $append = true, $linesToBeCovere if (empty($this->data[$file][$k]) || !in_array($id, $this->data[$file][$k])) { $this->data[$file][$k][] = $id; } + } else if ($v == Driver::LINE_NOT_EXECUTED) { + if (!isset($this->data[$file][$k])) { + $this->data[$file][$k] = []; + } + } else if ($v == Driver::LINE_NOT_EXECUTABLE) { + if (!isset($this->data[$file][$k])) { + $this->data[$file][$k] = null; + } } } } From 073a127d7fa1c524d16e757cc158be8605a3d32e Mon Sep 17 00:00:00 2001 From: Joep Roebroek Date: Fri, 23 Dec 2016 00:33:59 +0100 Subject: [PATCH 2/3] Improved fix for #488 --- src/CodeCoverage.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/CodeCoverage.php b/src/CodeCoverage.php index 20cebde7f..5a1c09259 100644 --- a/src/CodeCoverage.php +++ b/src/CodeCoverage.php @@ -690,11 +690,14 @@ private function applyIgnoredLinesFilter(array &$data) private function initializeFilesThatAreSeenTheFirstTime(array $data) { foreach ($data as $file => $lines) { - if ($this->filter->isFile($file) && !isset($this->data[$file])) { - $this->data[$file] = []; - + if ($this->filter->isFile($file)) { + if (!isset($this->data[$file])) { + $this->data[$file] = []; + } foreach ($lines as $k => $v) { - $this->data[$file][$k] = $v == -2 ? null : []; + if (!isset($this->data[$file][$k])) { + $this->data[$file][$k] = $v == -2 ? null : []; + } } } } From 66f29b95f4098d73c53b83585dc49b0e7a7bcf18 Mon Sep 17 00:00:00 2001 From: Joep Roebroek Date: Fri, 23 Dec 2016 00:36:17 +0100 Subject: [PATCH 3/3] Remove previous fix for #488 --- src/CodeCoverage.php | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/CodeCoverage.php b/src/CodeCoverage.php index 5a1c09259..54e78cee7 100644 --- a/src/CodeCoverage.php +++ b/src/CodeCoverage.php @@ -370,14 +370,6 @@ public function append(array $data, $id = null, $append = true, $linesToBeCovere if (empty($this->data[$file][$k]) || !in_array($id, $this->data[$file][$k])) { $this->data[$file][$k][] = $id; } - } else if ($v == Driver::LINE_NOT_EXECUTED) { - if (!isset($this->data[$file][$k])) { - $this->data[$file][$k] = []; - } - } else if ($v == Driver::LINE_NOT_EXECUTABLE) { - if (!isset($this->data[$file][$k])) { - $this->data[$file][$k] = null; - } } } }