@@ -71,20 +71,9 @@ class PHP_CodeCoverage_Filter
7171 protected $ whitelistedFiles = array ();
7272
7373 /**
74- * Prefills the blacklist with source files used by PHPUnit
75- * and PHP_CodeCoverage.
74+ * @var boolean
7675 */
77- public function __construct ()
78- {
79- $ this ->addDirectoryContainingClassToBlacklist ('File_Iterator ' );
80- $ this ->addDirectoryContainingClassToBlacklist ('PHP_CodeCoverage ' );
81- $ this ->addDirectoryContainingClassToBlacklist ('PHP_Invoker ' );
82- $ this ->addDirectoryContainingClassToBlacklist ('PHP_Timer ' );
83- $ this ->addDirectoryContainingClassToBlacklist ('PHP_Token ' );
84- $ this ->addDirectoryContainingClassToBlacklist ('PHPUnit_Framework_TestCase ' , 2 );
85- $ this ->addDirectoryContainingClassToBlacklist ('Text_Template ' );
86- $ this ->addDirectoryContainingClassToBlacklist ('Symfony\Component\Yaml\Yaml ' );
87- }
76+ protected $ blacklistPrefilled = FALSE ;
8877
8978 /**
9079 * Adds a directory to the blacklist (recursively).
@@ -278,6 +267,10 @@ public function isFiltered($filename, $ignoreWhitelist = FALSE)
278267 return !isset ($ this ->whitelistedFiles [$ filename ]);
279268 }
280269
270+ if (!$ this ->blacklistPrefilled ) {
271+ $ this ->prefillBlacklist ();
272+ }
273+
281274 return isset ($ this ->blacklistedFiles [$ filename ]);
282275 }
283276
@@ -312,6 +305,23 @@ public function hasWhitelist()
312305 return !empty ($ this ->whitelistedFiles );
313306 }
314307
308+ /**
309+ * @since Method available since Release 1.2.3
310+ */
311+ protected function prefillBlacklist ()
312+ {
313+ $ this ->addDirectoryContainingClassToBlacklist ('File_Iterator ' );
314+ $ this ->addDirectoryContainingClassToBlacklist ('PHP_CodeCoverage ' );
315+ $ this ->addDirectoryContainingClassToBlacklist ('PHP_Invoker ' );
316+ $ this ->addDirectoryContainingClassToBlacklist ('PHP_Timer ' );
317+ $ this ->addDirectoryContainingClassToBlacklist ('PHP_Token ' );
318+ $ this ->addDirectoryContainingClassToBlacklist ('PHPUnit_Framework_TestCase ' , 2 );
319+ $ this ->addDirectoryContainingClassToBlacklist ('Text_Template ' );
320+ $ this ->addDirectoryContainingClassToBlacklist ('Symfony\Component\Yaml\Yaml ' );
321+
322+ $ this ->blacklistPrefilled = TRUE ;
323+ }
324+
315325 /**
316326 * @param string $className
317327 * @param integer $parent
0 commit comments