You are here

public function Twig_Compiler::addDebugInfo in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/twig/twig/lib/Twig/Compiler.php \Twig_Compiler::addDebugInfo()

Adds debugging information.

Parameters

Twig_NodeInterface $node The related twig node:

Return value

Twig_Compiler The current compiler instance

File

vendor/twig/twig/lib/Twig/Compiler.php, line 208

Class

Twig_Compiler
Compiles a node to PHP code.

Code

public function addDebugInfo(Twig_NodeInterface $node) {
  if ($node
    ->getLine() != $this->lastLine) {
    $this
      ->write(sprintf("// line %d\n", $node
      ->getLine()));

    // when mbstring.func_overload is set to 2
    // mb_substr_count() replaces substr_count()
    // but they have different signatures!
    if ((int) ini_get('mbstring.func_overload') & 2) {

      // this is much slower than the "right" version
      $this->sourceLine += mb_substr_count(mb_substr($this->source, $this->sourceOffset), "\n");
    }
    else {
      $this->sourceLine += substr_count($this->source, "\n", $this->sourceOffset);
    }
    $this->sourceOffset = strlen($this->source);
    $this->debugInfo[$this->sourceLine] = $node
      ->getLine();
    $this->lastLine = $node
      ->getLine();
  }
  return $this;
}