@@ -48,44 +48,18 @@ public function start()
4848 */
4949 public function stop ()
5050 {
51- $ sourceLines = $ this -> fetchSourceLines ();
51+ $ dbgData = phpdbg_end_oplog ();
5252
53- $ dbgData = phpdbg_end_oplog (array ('show_unexecuted ' => true ));
54- $ data = $ this ->detectExecutedLines ($ sourceLines , $ dbgData );
55-
56- return $ data ;
57- }
58-
59- /**
60- * Fetches all lines loaded at the time of calling, each source line marked as not executed.
61- *
62- * @return string
63- */
64- private function fetchSourceLines ()
65- {
66- $ sourceLines = array ();
67-
68- foreach (get_included_files () as $ file ) {
69- foreach (token_get_all (file_get_contents ($ file )) as $ token ) {
70-
71- if (is_array ($ token )) {
72- list ($ name , $ data , $ lineNo ) = $ token ;
73-
74- switch ($ name ) {
75- case T_COMMENT :
76- case T_DOC_COMMENT :
77- case T_WHITESPACE :
78- // comments and whitespaces can never be executed, therefore skip them.
79- break ;
80- default : {
81- $ sourceLines [$ file ][$ lineNo ] = self ::LINE_NOT_EXECUTED ;
82- }
83- }
84- }
53+ $ sourceLines = phpdbg_get_executable ();
54+ foreach ($ sourceLines as &$ lines ) {
55+ foreach ($ lines as &$ line ) {
56+ $ line = self ::LINE_NOT_EXECUTED ;
8557 }
8658 }
8759
88- return $ sourceLines ;
60+ $ data = $ this ->detectExecutedLines ($ sourceLines , $ dbgData );
61+
62+ return $ data ;
8963 }
9064
9165 /**
@@ -98,8 +72,8 @@ private function fetchSourceLines()
9872 private function detectExecutedLines (array $ sourceLines , array $ dbgData )
9973 {
10074 foreach ($ dbgData as $ file => $ coveredLines ) {
101- foreach ($ coveredLines as $ lineNo => $ numExecuted ) {
102- $ sourceLines [$ file ][$ lineNo ] = $ numExecuted > 0 ? self ::LINE_EXECUTED : self :: LINE_NOT_EXECUTED ;
75+ foreach ($ coveredLines as $ lineNo => $ numExecuted ) {
76+ $ sourceLines [$ file ][$ lineNo ] = self ::LINE_EXECUTED ;
10377 }
10478 }
10579
0 commit comments