Permalink
Browse files

minor #10317 [YAML] Improve performance of getNextEmbedBlock (alexpott)

This PR was merged into the 2.3 branch.

Discussion
----------

[YAML] Improve performance of getNextEmbedBlock

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

By removing unnecessary preg_match and function calls - isCurrentLineEmpty() contains a call to isCurrentLineBlank() - therefore this function is called twice every time this condition is hit. The preg_match appears to legacy handling of blank lines.

This improves the performance of the Drupal 8 installer.
![image](https://f.cloud.github.com/assets/769634/2241426/69effb0c-9cd1-11e3-9145-e4fabd2ec870.png)

Commits
-------

995a033 Improve performance of getNextEmbedBlock by removing unnecessary preg_match and function calls.
  • Loading branch information...
2 parents 6b0b504 + 995a033 commit eed7a864d8e874292fbfc6fd18c09196036da15e @fabpot fabpot committed Feb 24, 2014
Showing with 6 additions and 8 deletions.
  1. +6 −8 src/Symfony/Component/Yaml/Parser.php
View
14 src/Symfony/Component/Yaml/Parser.php
@@ -323,18 +323,16 @@ private function getNextEmbedBlock($indentation = null)
break;
}
- if ($removeComments && $this->isCurrentLineEmpty() || $this->isCurrentLineBlank()) {
- if ($this->isCurrentLineBlank()) {
- $data[] = substr($this->currentLine, $newIndent);
- }
+ if ($this->isCurrentLineBlank()) {
+ $data[] = substr($this->currentLine, $newIndent);
+ continue;
+ }
+ if ($removeComments && $this->isCurrentLineComment()) {
continue;
}
- if (preg_match('#^(?P<text> *)$#', $this->currentLine, $match)) {
- // empty line
- $data[] = $match['text'];
- } elseif ($indent >= $newIndent) {
+ if ($indent >= $newIndent) {
$data[] = substr($this->currentLine, $newIndent);
} elseif (0 == $indent) {
$this->moveToPreviousLine();

0 comments on commit eed7a86

Please sign in to comment.